Вы находитесь на странице: 1из 10

TALLER ARDUINO BÁSICO

Versión 1.0

Autor: Ángel Sánchez García
Introducción
En este primer taller se explicará el funcionamiento de la plataforma Arduino y los
conocimientos básicos para interactuar con diferentes dispositivos electrónicos desde dicha
plataforma.

El taller se desarrollará en base a diferentes ejemplos de código incluidos en el propio entorno
Arduino y a montajes en protoboard suministrados mediante esquemas realizados con el
programa Fritzing.

Se realizará un total de 5 montajes, cubriendo los aspectos fundamentales de la plataforma
Arduino, tales como: Entrada/Salida Digital, Entrada/Salida Analógica, Comunicaciones serie
con PC y Manejo de dispositivos varios: LCD, Buzzer...
Ejercicio 1: Cargando programas.
Para poner en marcha un programa en Arduino, el primer paso será abrir el entorno de
programación (IDE) en la ventana que aparece dispondremos de todas las herramientas para
crear y cargar nuestros programas.

El primer paso que realizaremos será acceder al menú Archivo, y después a Ejemplos ­>
01.Basics ­> Blink esto abrirá el ejemplo más básico y podremos ver el código fuente.

Observando el código nos encontramos:

En primer lugar, la declaración de una variable tipo int llamada led a la que se ha asignado el
valor 13, esta variable representará el pin de Arduino al que está conectado el LED interno.

A continuación, en la función setup, que se ejecuta una sola vez al comienzo del programa,
encontramos la función pinMode, que configura nuestro pin en modo salida.

Por último encontramos la función loop, que escribe primero un nivel alto y después un nivel
bajo en el pin del led, introduciendo retardos de 1000 milisegundos (1 segundo) entre cada
escritura. Esta función se repite continuamente mientras la placa Arduino esté conectada.

Para cargar el programa a la placa Arduino accederemos al menú Herramientas y en el
submenú tarjeta seleccionaremos la opción “Arduino UNO” que es el modelo utilizado en este
taller, a continuación, también en el menú herramientas, accederemos al submenú “Puerto
serial” y seleccionaremos el de nuestra Arduino. Si solo aparece uno ese será nuestro puerto, si
aparecen varios lo más probable es que sea el que tenga el número más alto.

Una vez seleccionados el modelo de placa y el puerto serie haremos click en el botón 

Después de unos segundos de compilación, los leds de la placa Arduino parpadearán
ráìdamente y a continuación nuestro programa empezará a funcionar, haciendo parpadear el
LED situado cerca del pin 13.

Se propone al alumno realizar el siguiente montaje en la protoboard:

Prestar especial atención a la colocación de los LEDs, el lado plano debe quedar hacia la
izquierda.

Una vez realizado el montaje modificar el ejemplo Blink para manejar los tres leds, creando
secuencias de iluminación como en un árbol de Navidad.
Ejemplo 2: Entrada y Salida analógica, comunicación
serie
En el ejemplo 2 vamos a mostrar como utilizar las entradas y salidas analógicas.

En el menú Archivo, Ejemplos seleccionaremos 03.Analog ­> AnalogInOutSerial

Analizando el código podremos observar que en primer lugar se definen dos pines, de entrada y
salida. El de entrada ha de soportar la entrada analógica, por lo que tendrá que ser alguno de la
tira de pines marcada como Analog. El de salida ha de soportar la función PWM, por lo que
debe de ser uno de los marcados con el símbolo ~

En la función setup, se inicializa el puerto serie a una velocidad de 9600 baudios.

En la función loop nos encontramos en primer lugar una lectura del pin analógico, mediante la
función “analogRead” que es almacenada en la variable sensorValue. A continuación este valor
se utiliza para calcular el valor de salida.

Para el cálculo del valor de salida se utiliza la función map, cuya misión es adaptar los rangos
de valores de diferentes variables. El ADC del chip ATMega de Arduino, que nos permite leer los
valores analógicos, tiene 10 bit de resolución, lo cual significa que a máxima tensión de entrada
(normalmente la alimentación del micro que en este caso es de 5V) entregará un valor de 1023.
Sin embargo, el módulo de generación de PWM funciona con un registro de 8 bit, por lo que su
valor máximo es de 255. La sentencia “outputValue = map(sensorValue, 0, 1023, 0, 255);
“ guarda en outputValue un número proporcional al valor de sensor Value, con un rango de
salida de 0 a 255, teniendo en cuenta que la entrada va de 0 a 1023.

Una vez calculado ese valor, se escribe en el pin de salida analógica mediante la función
analogWrite.

Además, se envía el valor junto con un texto que clarifique los datos enviados utilizando las
funciones Serial.print y Serial.println, de manera que se puedan visualizar en una terminal serie.
El montaje a realizar es el siguiente:

Añadiremos el potenciómetro al ejemplo anterior, además hay que conectar el LED que
queramos usar para este ejemplo al pin 9, en la imagen se ha conectado el LED rojo.

Al girar el potenciómetro en sentido horario el brillo del LED y los valores de entrada y salida
aumentarán y viceversa.

Para visualizar los valores haremos clic en el icono   en la parte superior derecha de la
ventana de Arduino, lo cual hará aparecer la ventana de la terminal serie de Arduino y nos
aseguraremos de que la velocidad seleccionada sea de 9600bps, igual que la configurada en el
programa de la placa.
Ejemplo 3: Leyendo valores del puerto serie
En el ejemplo anterior se descubrió como escribir valores en el puerto serie, en este próximo
ejemplo aprenderemos a leer datos enviados desde el PC.

Cargaremos el ejemplo 04.Communication ­> Dimmer

Observando el código veremos que la primera parte es muy similar al ejemplo anterior, solo que
no se declara el pin de entrada porque en este ejemplo no se usa y dentro de la función setup
de fuerza que el pin esté en modo salida, aunque la función “analogWrite” siempre configurará
el pin como salida.

La gran diferencia está en el bucle principal, el programa comprueba continuamente si hay
nuevos datos en el puerto serie mediante la función “Serial.available()” si lo hay los lee mediante
la función “Serial.read()” y los almacena en la variable “brigthness”, para posteriormente escribir
el valor leído en el pin analógico mediante la función “analogWrite”

De esta manera, cada vez que pulsemos una tecla el LED brillará de manera proporcional al
código ASCII de la tecla pulsada. Con letras cercanas la diferencia es minima, probar por
ejemplo pulsando la tecla espacio (valor 32) y la “z” minuscula (valor 122) la tabla ASCII se
puede consultar en: http://www.asciitable.com/

Se propone al alumno modificar el ejemplo para que el brillo de los leds sea proporcional al
número pulsado del 0 al 9, siendo el 0 el correspondiente al LED apagado y 9 al máximo brillo.
Se recomienda usar la función map vista en el anterior ejemplo.
Ejemplo 4: Utilizando un zumbador
En este cuarto ejemplo aprenderemos a utilizar un zumbador piezoeléctrico para producir
sonidos y melodías.

Los cristales piezoeléctricos se deforman al recibir corriente, por lo que si se les introduce una
corriente oscilante también oscilan produciendo sonido.

Dado que los pines de los microcontroladores entregan poca corriente (25mA en el caso del
ATMega328 incorporado en la Arduino UNO) necesitaremos un transistor que amplifique la
señal para que el zumbador tenga potencia.

El montaje a realizar será el siguiente:

El zumbador suministrado en el kit puede ser diferente, lo importante es que quede bien
conectado.
Para probar el circuito cargaremos el ejemplo 02.Digital ­> toneMelody

En el código se puede apreciar que existen dos matrices, una con las notas de la melodía y otra
con las duraciones: 4 para negrita y 8 para corchea.

Dentro de setup se encuentra el código de la melodía, de forma que se ejecutará solo una vez al
iniciar el programa.

La melodía consta de un bucle for que recorre las dos matrices, un cálculo de la duración de la
nota en milisegundos, la función “tone” que reproduce el tono a través del pin 8, un retardo entre
notas y una llamada a “noTone” para asegurar que el tono se para.

Se propone programar otra melodía de la que se conozca la partitura o buscar alguna en
internet.
Ejemplo 5: Utilizando una pantalla LCD alfanumérica

En muchas máquinas se utilizan pequeñas pantallas para mostrar datos de relevancia, menús
de uso y configuración o incluso es muy útil para visualizar variables en tiempo real y depurar
nuestros programas.

En este ejemplo se propone conectar un LCD alfanumérico basado en el controlador estándar
Hitachi HD44780 de manera que podamos escribir texto y mostrar variables en el.

El montaje a realizar es el siguiente:

Los ejemplo de Arduino utilizan las líneas 11 y 12 para las señales de control del LCD, por lo
que si conectamos los LED a estas mismas líneas parpadearán al enviar datos y escribimos en
ellos podremos bloquear el LCD. Para evitar esto y utilizar todo a la vez se pueden cambiar los
LEDs o las líneas de control de pin, modificando el código de la manera correspondiente.

Para probar el montaje, cargaremos cualquiera de los ejemplo de la sección LiquidCrystal, por
ejemplo el HelloWorld.

Se propone al alumno mostrar en el LCD el valor leído por el potenciómetro u otro dato.

Вам также может понравиться