Introduccion A Arduino...
Introduccion A Arduino...
(http://diymakers.es/)
GUÍA ARDUINO
(25/11/13)
Arduino es una plataforma de hardware libre, basado en una placa con un microcontrolador y un software.
Diseñado para artistas, diseñadores y a cionados a la electrónica interesados en crear proyectos.
diymakers.es/guia-arduino/ 1/17
10/4/2020 Guía Arduino – DIYMakers
El Hardware consiste en una placa de desarrollo con un microcontrolador ATmega y pins de entradas y
salidas analógicas y digitales.
Para esta guía utilizaremos el modelo Arduino Uno Rev 3, que es la placa Arduino básica.
Hardware
Microcontrolador: Las placas Arduino usan el microcontrolador ATmega. Hay varios tipos, ATmega2560,
ATmega 32u4, ATmega328… El Arduino Uno REV 3 el ATmega 328.
Memoria:
-Memoria ash de 32KB (dentro del ATmega 328) 0,5KB de estos los usa el bootloader.
diymakers.es/guia-arduino/ 2/17
10/4/2020 Guía Arduino – DIYMakers
I/O (Entradas/Salidas): El Arduino Uno tiene 14 pins I/O digitales que operan a 5V (6 de estos tienen salida
PWM). Cada pin puede dar y recibir un máximo de 40mA. Algunos pins tienen características especiales:
-Serial: 0 (RX) y 1 (TX). Estos pins se usan para la comunicación serie. Están conectados al chip ATmega 16u2
para la conversión USB a TTL Serial data.
-PWM (Pulse-Width Modulation): 3,6,5,9,10,11. Proporcionan una salida PWM de 8 bits a 490Hz.
-SPI: 10(SS), 11(MOSI), 12(MISO), 13(SCK). Estos pins soportan la comunicación SPI.
-External Interrupts: 2 y 3. Estos pins se pueden con gurar para llamar una función del programa cuando
reciben una interrupción externa.
-LED: 13. Hay un LED conectado al pin 13. Cuando el pin tiene un valor HIGH, el LED se enciende. Cuando el
pin tiene un valor LOW, el led se apaga .
El Arduino Uno también tiene 6 entradas analógicas (A0 a A5). Cada pin tiene 10 bits(1024 valores) y
trabajan a 5V. También hay pins analógicos con características especiales:
-AREF: Voltaje de referencia de las entradas analógicas. Sirve para cambiar a través de programación el
voltaje máximo de entrada de los pins analógicos.
POWER: El Arduino Uno puede alimentarse a través de la conexión USB o con una alimentación externa DC
a través del conector jack o los pins Vin y GND. La placa aguanta un mínimo de 6V y un máximo de 20V,
aunque es recomendable alimentarla entre 7V – 12V para evitar dañar la placa.
Pins de alimentación:
-3.3V: Este pin proporciona 3,3V de salida del regulador de la placa y un máximo de 50mA.
Comunicación: El Arduino Uno puede comunicase con un ordenador, otra placa Arduino o otros
microcontroladores a través del puerto serie utilizando los pin 0(RX) y 1(TX). El chip ATmega 16u2 de la
placa convierte la comunicación serie a USB y aparece como un puerto virtual (COM) al ordenador. En la
placa hay dos leds (RX y TX) los cuales parpadean cuando hay una transmisión de datos vía Serial to USB
con el ordenador (pero no parpadean cuando hay una comunicación Serial con los pins 0 y 1).
diymakers.es/guia-arduino/ 3/17
10/4/2020 Guía Arduino – DIYMakers
Software
Arduino tiene su propio lenguaje de programación, muy parecido al lenguaje C. Los que tienen experiencia
en este verán que realmente se parecen bastante y les será más fácil programar.
Para programar el Arduino es necesario el programa IDE de Arduino, se puede descargar desde la página
de Arduino aquí (http://arduino.cc/en/Main/Software). Después de la descarga, encontrareis una carpeta
con varios archivos. En estos archivos hay el Arduino.exe que es la instalación del programa y una carpeta
que pone drivers que contiene los controladores para que el PC reconozca el Arduino.
Para instalar estos drivers en Windows tenéis que ir Inicio, Equipo, clic botón derecho, Propiedades. Aquí
dentro, en el margen izquierdo clic a Administrador de dispositivos. Si el Arduino está conectado a través
de USB aparecerá como un dispositivo desconocido. Hacer clic derecho a este e ir a Actualizar Software
Controlador. Luego se elige Buscar Software Controlador en el equipo y seleccionar la carpeta drivers de los
archivos descargados antes. Ahora la placa Arduino está lista para programarla.
diymakers.es/guia-arduino/ 4/17
10/4/2020 Guía Arduino – DIYMakers
diymakers.es/guia-arduino/ 5/17
10/4/2020 Guía Arduino – DIYMakers
A- Actualizar: El programa revisa el código que hemos escrito y si hay algún error nos lo remarca.
diymakers.es/guia-arduino/ 6/17
10/4/2020 Guía Arduino – DIYMakers
La primera vez que instalamos el programa tenemos que seleccionar la placa Arduino que vamos a
programar. Vamos a Herrmientas, Tarjeta y seleccionamos nuestro modelo de placa Arduino, en este caso
Arduino Uno.
Programación
Estructura de programación
La estructura básica del lenguaje de programación de Arduino es muy simple, se compone de dos partes.
Dichas dos partes son funciones: setup() y loop().
void setup()
void loop()
La función setup() es la encargada de la con guración del programa. Se invoca una sola vez al iniciar el
programa y sirve para inicializar los modos de trabajo de los pins y el puerto serial.
diymakers.es/guia-arduino/ 7/17
10/4/2020 Guía Arduino – DIYMakers
La función loop() contiene el programa que se ejecutará cíclicamente. Esta función es el núcleo de todo el
programa.
Variables
Una variable sirve para guardar un valor numérico que variara en el programa en función de la operación
que hagamos con ella. Las variables se pueden declarar en dos partes:
-Variables Globales: son variables que se declaran al inicio del programa (antes del setup()), y puede ser
utilizada en cualquier función del programa.
-Variables Locales: son variables declaradas dentro de una función y solo puede ser utilizada dentro
de dicha función.
-Byte: Almacena un valor numérico de 8 bits sin decimales en un rango entre 0 y 255.
-Int: Enteros almacena un valor numérico de 16 bits sin decimales en un rango entre 32767 a -32768.
-Long: Almacena valores enteros de 32 bits sin decimales en un rango entre 2147483647 a -2147483648.
-Float: Almacena valores de punto otante de 32 bits con decimales en un rango entre 3.4028235E +38 a
-3.4028235E +38.
-Char: Es un tipo de dato que ocupa un byte de memoria y almacena un valor de carácter. Los carácteres
literales se escriben con comillas simples: ‘A’ (para varios carácteres -strings- utiliza dobles comillas «ABC»).
Declaración de variables
Para declarar una variable se comienza por de nir su tipo (int, byte, oat, etc…), se asigna un nombre, y
nalmente asignándole un valor.
Aritmética
En el programa se pueden utilizar las operaciones aritméticas de suma, resta, multiplicación y división.
x=x+5;
y=y-10;
r=r*3;
t=t/6;
Operadores de comparación
Las comparaciones de variables se usan con frecuencia en las estructuras if para testear si una condición
es verdadera:
diymakers.es/guia-arduino/ 8/17
10/4/2020 Guía Arduino – DIYMakers
Operaciones lógicas
Las operaciones lógicas se usan para comparar dos expresiones para saber si es Verdadero o Falso.
Existen tres tipos: AND(&&), OR(||) y NOT(!).
if (x>0 || y>45)
if (x!=3)
Constantes
-HIGH/LOW: Estas constantes se utilizan para la escritura o lectura de los pins I/O. HIGH es 1 i LOW es 0.
-INPUT/OUTPUT: Estas constantes se usan de nir al comienzo del programa el modo de funcionamiento
de los pins de la placa con la instrucción pinMode. Los pins se pueden de nir como entrada (INPUT) o salida
(OUTPUT).
Estructuras de decisión
if (si)
if es una estructura de decisión que se utiliza para probar si una determinada condición se cumple. Si es
así, el programa ejecutará una acción.
if (x==25)
diymakers.es/guia-arduino/ 9/17
10/4/2020 Guía Arduino – DIYMakers
//Ejecutar acción
En este ejemplo si la variable x tiene un valor igual a 25, el código dentro de las llaves se ejecutará.
if…else (si…sino…)
if…else es una evolución de la estructura if, que consiste en sino se cumple la condición de if, haz otra
acción.
if (x>=200)
//Ejecutar acción A
else
//Ejecutar acción B
En este ejemplo si x es mayor o igual que 200, realiza la acción A. Sino es mayor o igual que 200, realiza
acción B.
for
La declaración for se usa para repetir bloques de sentencia encerradas entre llaves un número
determinado de veces.
//Ejecutar acción
La inicialización de una variable local se produce una sola vez y la condición se testea cada vez que se
termina la ejecución de la acción dentro del bucle. Si la condición sigue cumpliéndose, la acción del bucle
se vuelve a repetir. Cuando la condición no se cumpla, el bucle termina.
//Ejecutar acción
diymakers.es/guia-arduino/ 10/17
10/4/2020 Guía Arduino – DIYMakers
En este ejemplo declaramos una variable entera i con un valor igual a 0, la condición es probar que el valor
de la variable sea inferior a 10 y incrementa este valor en 1 cada vez que se ejecuta. Cuando i sea mayor
que 10, el ciclo se termina.
while
while es un bucle que se ejecuta continuamente mientras se cumpla la condición que hay entre paréntesis.
Para salir del ciclo while la condición debe cambiar. Para esto, puede hacerse dentro del bucle o a través
del cambio de valor de un sensor.
while (condición)
//Ejecutar acción
do… while
Este bucle funciona de la misma manera que while con la diferencia que la condición se prueba al nal del
bucle, por lo que la acción dentro del do se ejecutará al menos una vez.
do
//Ejecutar acción
while (condición);
delay(ms)
Serial
-Serial.begin(rate) Abre el puerto serie y ja la velocidad en baudios. Este código se tiene que poner en
setup()
-Serial.println (data) Imprime los datos en el puerto serie, seguido de un salto de línea.
-Serial.avaible() Esta función devuelve el estado del bu er del puerto serie y revela si hay algún dato
recibido a través de este.
diymakers.es/guia-arduino/ 11/17
10/4/2020 Guía Arduino – DIYMakers
-Serial.Read() Lee y captura un carácter (byte) del bu er. Es importante destacar que solo lee un solo
carácter.
-Serial.Write() Escribe caracteres a través del puerto serie. A diferencia de Serial.Read() puede más de un
carácter.
Programa de ejemplo
Vamos a crear un sencillo proyecto como ejemplo. Usaremos un pulsador y un led. Cada vez que
pulsemos el pulsador, el led parpadeará dos veces. Empecemos:
Material
-1 Led
-1 pulsador (switch)
-1 Resistencia de 10k
Montaje
diymakers.es/guia-arduino/ 12/17
10/4/2020 Guía Arduino – DIYMakers
diymakers.es/guia-arduino/ 13/17
10/4/2020 Guía Arduino – DIYMakers
-En el pin 6 ponemos el pulsador con una resistencia de 10k en modo pull-down, quiere decir que en la
entrada abra un 0 (0 voltios) y cuando pulsamos el pulsador hay un 1 (5 voltios).
-En el pin 7 pondremos un led con una resistencia de 680 ohmios para limitar el corriente.
Programa
diymakers.es/guia-arduino/ 14/17
10/4/2020 Guía Arduino – DIYMakers
Un par de correcciones:
diymakers.es/guia-arduino/ 15/17