Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CURSO - TALLER: SISTEMA ARDUINO
Contenido
1. INTRODUCCIN A LA TECNOLOGA ARDUINO ................................................................................ 2
Presentacin.................................................................................................................................... 2
Introduccin distintas placas Arduino ............................................................................................. 3
Arduino UNO R3 .............................................................................................................................. 7
Instalacin del desarrollo de entorno integrado (IDE) Arduino ...................................................... 8
EL IDE ARDUINO ............................................................................................................................ 11
Estructura del sketch ..................................................................................................................... 14
2.-CONCEPTOS BSICOS DE ELECTRNICA ....................................................................................... 16
Seales analgicas y digitales........................................................................................................ 16
Polaridad ....................................................................................................................................... 18
Resistencia..................................................................................................................................... 18
Led ................................................................................................................................................. 18
Tipos de corriente ......................................................................................................................... 19
Motor de corriente continua ........................................................................................................ 20
Servomotor ................................................................................................................................... 21
Relevador ...................................................................................................................................... 21
3.-CONCEPTOS BSICOS DE ARDUINO .............................................................................................. 22
Entradas analgicas y digitales...................................................................................................... 22
Entradas analgicas ....................................................................................................................... 22
Salidas analgicas y digitales ......................................................................................................... 24
Delay.............................................................................................................................................. 26
Monitor Serial................................................................................................................................ 26
Estructuras de control if/else ........................................................................................................ 27
Mdulo HL-69: Un sensor de humedad de suelo.......................................................................... 28
Sensor ultrasonico HC-SR04 .......................................................................................................... 29
3.-PRIMERAS PRCTICAS CON ARDUINO .......................................................................................... 31
Encendido y apagado de un Led ................................................................................................... 31
Control de servomotor .................................................................................................................. 32
Medir la distancia con el sensor ultrasnico ................................................................................. 34
Bibliografa ........................................................................................................................................ 36
Ligas de inters:................................................................................................................................. 36
1
CURSO - TALLER: SISTEMA ARDUINO
Presentacin
2
CURSO - TALLER: SISTEMA ARDUINO
Uno
Esta es la ltima revisin de la placa Arduino USB
bsica. Se conecta al ordenador con un cable USB
estndar y contiene todo lo necesario para
programar la placa. Se puede ampliar con gran
variedad de shields. Tiene un ATmega328,
tambin consta de 14 pines de entrada/salida de
los cuales 6 se pueden usar como salidas PWM, 6
entradas analgicas, una velocidad de reloj de 16
MHz y un conector ICPS.
Duemilanove
Diecimila
3
CURSO - TALLER: SISTEMA ARDUINO
Nano
Mega
4
CURSO - TALLER: SISTEMA ARDUINO
LilyPad
Fio
Diseada para aplicaciones inalmbricas. Incluye
un zcalo para XBee, un conector para bateras
LiPo y electrnica para cargar bateras. Basada en
el ATmega328P. Tiene 14 pines de E/S digitales
(de los cuales 6 pueden usarse como salidas
PWM), 8 entradas analgicas, un botn de reinicio
(reset), y agujeros para montar conectores de
pines. Tiene conexiones para una batera de
polmero de Litio e incluye un circuito de carga a
travs de USB.
Mini
5
CURSO - TALLER: SISTEMA ARDUINO
Pro Mini
Como la Pro, la Pro Mini est diseada para
usuarios avanzados que requieren de bajo coste,
menor tamao y dispuestos a un poco de trabajo
extra.
Arduino Leonardo
Arduino Leonardo, la nueva versin basada en un
microcontrlador ATmega32u4 con caracteristicas:
Arquitectura de un nico procesador, slo
un microcontrolador en la placa que se
comunica con el ordenador directamente
por USB, libreras aadidas al Arduino IDE
para que Leonardo pueda actuar como un
dispositivo USB. Esto le permite emular un
teclado o un ratn USB.
Mayor nmero de entradas analgicas, la
Arduino Leonardo dispone de 12 en lugar de
las 6 disponibles en modelos anteriores.
Ms conectividad. El ATmega32u4 dispone
de puerto USB nativo por lo que podemos
comunicar nuestro ordenador a Arduino al
mismo tiempo que establecemos
comunicacin con otro dispositivo.
Conector micro-USB.
20 pines de Entrada/Salida, todas ellas
configurables como digitales. 7 de ellas con
capacidad PWM. 12 pueden ser utilizadas
como entradas analgicas con una
resolucin de 10 bits.
6
CURSO - TALLER: SISTEMA ARDUINO
Arduino UNO R3
7
CURSO - TALLER: SISTEMA ARDUINO
8
CURSO - TALLER: SISTEMA ARDUINO
9
CURSO - TALLER: SISTEMA ARDUINO
Con las nuevas versiones del IDE de Arduino no es necesario instalar los drivers en
Windows al venir integrados en el IDE y estos cuentan con las firmas
correspondientes.
10
CURSO - TALLER: SISTEMA ARDUINO
EL IDE ARDUINO
Dado que el Arduino es como un pequeo ordenador que ejecuta una serie de
cdigos previamente introducidos, se necesita un programa para poder guardar
estos cdigos a la propia placa. Este programa se llama IDE, que significa
"Integrated Development Environment" ("Entorno de Desarrollo Integrado"). Este
IDE estar instalado en la PC, es un entorno muy sencillo de usar y en l se escribe
el programa que ejecutar el Arduino. Una vez escrito, se carga a travs del USB
y Arduino comenzar a trabajar de forma autnoma.
En la parte de men tenemos una zona para acceder a funciones como carga de
archivos, edicin del texto del cdigo, carga de libreras y ejemplos, configuracin,
herramientasetc.
11
CURSO - TALLER: SISTEMA ARDUINO
Abre un programa.
En el cuadro del editor de texto escribiremos el cdigo del programa que queramos
que Arduino ejecute.
Finalmente, en el rea de mensajes y la consola Arduino nos ir dando informacin
sobre si la consola est compilando, cargandoy sobre los fallos o errores que
seproduzcan tanto en el cdigo como en el propio IDE.
Configuracin:
El siguiente paso que realizaremos ser configurar nuestro IDE para que se
comunique con nuestra placa Arduino. Para ello conectaremos nuestro Arduino
mediante el cable USB al PC y despus de que el sistema operativo haya
reconocido e instalado la tarjeta automticamente, nos dirigimos a la zona de men,
pulsamos en Herramientas y despus en Tarjeta. Ah seleccionamos el modelo de
tarjeta Arduino que tengamos, en nuestro caso "Arduino Uno".
12
CURSO - TALLER: SISTEMA ARDUINO
13
CURSO - TALLER: SISTEMA ARDUINO
Si nos aparecieran varios COM activos, porque estemos usando otros dispositivos
serial o por otro motivo, para saber cul de ellos es el que se comunica con nuestra
placa, solo tenemos que irnos a Panel de control/Hardware/Administrador de
dispositivos. Miramos la pestaa (Puertos COM y LPT) y ah nos aparecer nuestro
Arduino y el COM en el que est conectado. Con esto, ya podemos empezar a
programar nuestro Arduino.
Se denomina Sketch a una parte de cdigo fuente listo para abrir con el entorno de
desarrollo integrado de Arduino y ser cargado sobre nuestro dispositivo. Sobre l se
escribir todo el comportamiento que tendr nuestro proyecto, incluyendo respuesta
ante entradas determinadas, clculos internos, salidas del sistema, etc Su
extensin actual es .ino.
Un sketch se compone al menos de dos partes. Mejor dicho, un sketch necesita de
dos bloques para su compilacin:
La parte de cdigo representada como void setup() se ejecuta una sola vez cuando
comienza el programa. Aun cuando no escribamos nada en l, es necesario
escribirlo y aadir las llaves de apertura y cierre { }. Es el mtodo encargado de
recoger la configuracin. Se suele emplear para determinar si un determinado pin
es salida o entrada, establecer su valor inicial, inicializar el puerto serie
El bloque loop()
Como su propio nombre indica, la funcin void loop() se ejecuta de forma
ininterrumpida, una y otra vez. Con este bucle logramos que nuestro programa
responda ante los distintos eventos que se produzcan en nuestro proyecto.
14
CURSO - TALLER: SISTEMA ARDUINO
Qu es una funcin?
Unas lneas ms arriba hemos hablado de void loop() como una funcin. Cuando
tenemos bloques de cdigo que van a ser usados a menudo, ya sea en un mismo
sketch o en distintos, podemos crear una funcin. Por tanto, una funcin no es ms
que un bloque de cdigo que se sita fuera de las funciones setup() y loop(), con un
nombre caracterstico, que puede tener uno o ms parmetros de entrada, y puede
devolver o no un valor determinado.
Por su parte, el punto y coma se emplea para poner fin a una declaracin, o limitar
los distintos elementos que constituyen un bucle for. El olvido del punto y coma es
uno de los errores que ms se repiten cuando se est empezando a programar.
Comentarios
Si ves algn sketch, vers partes del cdigo que estn escritas en lenguaje humano,
es decir, no entendible para el IDE de Arduino. Un buen sketch va siempre
acompaado de unos buenos comentarios, es decir, lneas de cdigo que el
programa ignorar y que nos servirn, por ejemplo, para describir el funcionamiento
del programa de forma global, el por qu de una funcin, la utilizacin de unas
determinadas variables, etc.
Existen dos tipos de comentarios, los de una lnea y los de varias lneas:
Los comentarios de una sla lnea han de comenzar por //, y duran hasta que se
encuentra un retorno de carro.
Los comentarios de varias lneas o bloques de comentarios han de estar
delimintados por /* al comienzo y por */ al final. Dentro de un bloque de comentarios
no se puede especificar otro bloque de comentarios, pues ste acaba cuando se
percibe el primer smbolo de cierre */.
15
CURSO - TALLER: SISTEMA ARDUINO
La seal analgica es aquella que presenta una variacin continua con el tiempo,
Toda seal variable en el tiempo, por complicada que sta sea, se representa en el
mbito de sus valores de frecuencia. De este modo, cualquier seal es susceptible
de ser representada descompuesta en su frecuencia fundamental y sus armnicos.
Un ejemplo de seal analgica es la generada por un usuario en el micrfono de su
telfono y que despus de sucesivos procesos, es recibida por otro abonado en el
altavoz del suyo.
Seal digital
Una seal digital es aquella que presenta una variacin discontinua con el tiempo y
que slo puede tomar ciertos valores discretos. Su forma caracterstica es
ampliamente conocida: la seal bsica es una onda cuadrada (pulsos) y las
representaciones se realizan en el dominio del tiempo.
16
CURSO - TALLER: SISTEMA ARDUINO
Las seales digitales no se producen en el mundo fsico como tales, sino que son
creadas por el hombre y tiene una tcnica particular de tratamiento, y como dijimos
anteriormente, la seal bsica es una onda cuadrada, cuya representacin se
realiza necesariamente en el dominio del tiempo.
17
CURSO - TALLER: SISTEMA ARDUINO
Polaridad
Resistencia
Led
El LED, acrnimo de Light Emitting Diode, o diodo emisor de luz de estado slido
(solid state), constituye un tipo especial de semiconductor, cuya caracterstica
principal es convertir en luz la corriente elctrica de bajo voltaje que atraviesa su
chip. Desde el punto de vista fsico un LED comn se presenta como un bulbo
miniaturizado, carente de filamento o de cualquier otro tipo de elemento o material
peligroso, con la ventaja sobre otras tecnologas que no contamina el medio
ambiente.
18
CURSO - TALLER: SISTEMA ARDUINO
El diodo LED es un componente que tiene polaridad, por eso debemos conectarlo
correctamente. En la siguiente imagen, vemos como identificar sus terminales, tanto
en un esquema como fsicamente:
Como se observa se compone de dos pines, uno de ellos ms largo que el otro, el
pin largo se toma como pin positivo y el pin largo como negativo.
Tipos de corriente
Los metales son los que permiten el mejor flujo de cargas, es por esto que se los
denomina conductores.
19
CURSO - TALLER: SISTEMA ARDUINO
20
CURSO - TALLER: SISTEMA ARDUINO
Servomotor
Los servos son un tipo especial de motor de c.c. que se caracterizan por su
capacidad para posicionarse de forma inmediata en cualquier posicin dentro de su
intervalo de operacin. Para ello, el servomotor espera un tren de pulsos que se
corresponde con el movimiento a realizar. Estn generalmente formados por un
amplificador, un motor, un sistema reductor formado por ruedas dentadas y un
circuito de realimentacin, todo en una misma caja de pequeas dimensiones. El
resultado es un servo de posicin con un margen de operacin de 180
aproximadamente.
Conexin de los servomotores
Cable rojo: Alimentacin, Vcc (~ +5volts);
Negro: conexin a tierra (GND);
Blanco o amarillo: es la lnea de control por la que se le enva la seal
codificada para comunicar el ngulo en el que se debe posicionar.
Relevador
21
CURSO - TALLER: SISTEMA ARDUINO
Entradas analgicas
Las entradas analgicas del modelo Uno son las correspondientes a los pines de
A0 a A5. Se caracterizan por leer valores de tensin de 0 a 5 Voltios con una
resolucin de 1024 (10 bits).
22
CURSO - TALLER: SISTEMA ARDUINO
Entradas digitales
23
CURSO - TALLER: SISTEMA ARDUINO
Aunque los pines digitales por defecto vienen configurados como entrada, si
queremos hacerlo manualmente escribimos en nuestro cdigo
pinMode(pinentrada,INPUT);
Para almacenar los dos valores posibles LOW o HIGH en una variable llamada
lectura escribimos
lectura = digitalRead(pinentrada);
24
CURSO - TALLER: SISTEMA ARDUINO
Los pines que podemos configurar para que cambien el nivel de salida segn
nuestro programa son los digitales, es decir, los 1 a 13.
Por defecto estos pines estn configurados como entradas as que lo primero que
tenemos que hacer para utilizar un pin como salida es configurarlo como tal. Para
ello escribimos esta sentencia dentro del apartado setup del programa.
pinMode(pin,OUTPUT);
Donde sustituiremos "pin" por el nmero del pin que queremos configurar como
salida. Tambin podemos almacenar el nmero de ese pin en una variable, por
ejemplo el pin 10 en la variable llamada "pinsalida" y escribirla dentro de la
funcin pinMode.
int pinsalida = 10; // almacena el nmero 10 en la variable "pinsalida"
25
CURSO - TALLER: SISTEMA ARDUINO
Salida
Delay
La funcin delay() es un retardo, la placa Arduino no hace otra cosa que contar los
milisegundos que le especifiquemos entre los parntesis para realizar el retardo. La
lectura se hace en millis,lo que se traduce a 1000=1 seg.
Estructura:
delay(tiempo en millis);
Monitor Serial
26
CURSO - TALLER: SISTEMA ARDUINO
if (si condicional)
En el ejemplo anterior se compara una variable con un valor, el cual puede ser una
variable o constante. Si la comparacin, o la condicin entre parntesis se cumple
(es cierta), las declaraciones dentro de los corchetes se ejecutan. Si no es as, el
programa salta sobre ellas y sigue.
else( si no condicional)
else viene a ser un estructura que se ejecuta en respuesta a la idea "si esto no se
cumple haz esto otro". Por ejemplo, si se desea probar una entrada digital, y hacer
una cosa si la entrada fue alto o hacer otra cosa si la entrada es baja, usted escribira
que de esta manera:
if (inputPin == HIGH)
{
instruccionesA;
}
else
{
instruccionesB;
}
27
CURSO - TALLER: SISTEMA ARDUINO
Consiste en dos placas separadas entre s por una distancia determinada. Ambas
placas estn recubiertas de una capa de material conductor. Si existe humedad en
el suelo se crear un puente entre una punta y otra, lo que ser detectado por un
circuito de control con un amplificador operacional que ser el encargado de
transformar la conductividad registrada a un valor analgico que podr ser ledo por
Arduino.
28
CURSO - TALLER: SISTEMA ARDUINO
void loop() {
Serial.println(analogRead(A0)); //lectura analgica
Serial.println(digitalRead(10)); //lectura digital
delay(100);
}
Habr dos tipos de salidas, una analgica y una digital. La salida digital entregar
un pulso bajo cuando haya conductividad suficiente entre cada una de las puntas.
En la salida analgica el nivel de voltaje depender directamente de cuanta
humedad haya en el suelo. Es decir, dependiendo de cuanta conductividad
(producto del agua en el suelo) haya entre las puntas del mdulo, as variar el valor
entregado por Arduino (entre 0 y 1023).
Al final, este mdulo es muy til en proyectos de control donde se requiera
monitorear las condiciones del suelo, especialmente si se est trabajando con
plantas que necesitan cuidados especiales.
Este sensor en concreto tiene un rango de distancias sensible entre 3cm y 3m con
una precisin de 3mm.
29
CURSO - TALLER: SISTEMA ARDUINO
Qu recibimos en el sensor?
30
CURSO - TALLER: SISTEMA ARDUINO
void setup(){
pinMode(13, OUTPUT);
}
void loop(){
digitalWrite(13,HIGH);
delay(5000);
digitalWrite(13,LOW);
delay(5000);
}
31
CURSO - TALLER: SISTEMA ARDUINO
Ntese que un LED es un Diodo Emisor de Luz y como todo diodo tiene un nodo
y un ctodo, siendo el nodo el positivo y el ctodo el negativo. La pata ms larga
va conectada al pin 13 como positivo y la pata ms corta al pin largo como negativo.
Una vez que conectamos el LED con la placa, procedemos a conectar por USB la
placa a la computadora y subimos el cdigo a la placa como expliqu en el anterior
post.
Control de servomotor
Los servos son tambin motores de corriente continua, pero en lugar de disearse
para obtener un giro continuo que podamos aprovechar (para mover una rueda por
ejemplo), se disean para que se muevan un ngulo fijo en respuesta a una seal
de control, y se mantengan fijos en esa posicin.
32
CURSO - TALLER: SISTEMA ARDUINO
Servo es una librera estndar en Arduino. Eso quiere decir que viene incluida
cuando se instala el IDE, a diferencia de otras libreras que debemos buscar,
descargar de Internet e instalar para poder usarlas.
Para usar una librera estndar, basta con pedirle al IDE que la incluya en nuestro
programa. Ir al men Programa \ Importar Librera y nos saldr un desplegable con
todas las libreras que tenemos instaladas en el IDE.
Por ahora solo nos interesa la librera Servo. Seleccionarla y Arduino incluir una
lnea al principio de nuestro programa como esta:
#include <Servo.h>
A partir de ahora ya podemos utilizar las funciones disponibles en la librera.
Vamos a conectar el servo primero a GND y 5V y luego el pin de control, a un pin
de Arduino, en este caso el pin 9.
Para poder utilizar la librera debemos crear, lo que se conoce como un objeto tipo
Servo que llamamos servo1.
#include <Servo.h>
Servo servo1;
As, esa segunda lnea significa que vamos a crear una nueva instancia de tipo
Servo que llamamos servo1.
33
CURSO - TALLER: SISTEMA ARDUINO
Aunque pueda parecer una forma extraa de hacer las cosas, la programacin
orientada a objetos(POO), es una de las metodologas ms potentes de las ciencias
de computacin actuales y todos los lenguajes de programacin que se precien,
han incorporado las ideas de la POO:
Entrar en la teora del OOP, desborda con mucho las pretensiones de este humilde
tutorial de Arduino, por ahora nos limitaremos a mostraros como usar los objetos.
Una vez creada la instancia del objeto (y podemos crear tantas como necesitemos,
para manejar varios servos a la vez) tenemos que incluir una lnea en la funcin
setup() para informar a Arduino que vamos a conectar ese objeto que todava es
servo1 a un pin fsico del Arduino para controlarlo. En nuestro caso el pin 9:
servo1.attach(9);
Una vez cumplido el trmite para gobernar la posicin del servo recurrimos a
servo1.write( angulo);
Donde Angulo es el valor en grados de la posicin que deseamos.
Conexiones
34
CURSO - TALLER: SISTEMA ARDUINO
Programa
long distancia;
long tiempo;
void setup(){
Serial.begin(9600);
pinMode(9, OUTPUT); /*activacin del pin 9 como salida: para el pulso
ultrasnico*/
pinMode(8, INPUT); /*activacin del pin 8 como entrada: tiempo del rebote
del ultrasonido*/
}
void loop(){
digitalWrite(9,LOW); /* Por cuestin de estabilizacin del sensor*/
delayMicroseconds(5);
digitalWrite(9, HIGH); /* envo del pulso ultrasnico*/
delayMicroseconds(10);
tiempo=pulseIn(8, HIGH); /* Funcin para medir la longitud del pulso
entrante. Mide el tiempo que transcurrido entre el envo del pulso
ultrasnico y cuando el sensor recibe el rebote, es decir: desde que el pin
12 empieza a recibir el rebote, HIGH, hasta que
deja de hacerlo, LOW, la longitud del pulso entrante*/
distancia= int(0.017*tiempo); /*frmula para calcular la distancia obteniendo
un valor entero*/
/*Monitorizacin en centmetros por el monitor serial*/
Serial.println("Distancia ");
Serial.println(distancia);
Serial.println(" cm");
delay(1000);
}
35
CURSO - TALLER: SISTEMA ARDUINO
Bibliografa
Ligas de inters:
Foros de discusin:
https://forum.arduino.cc/index.php
http://www.forosdeelectronica.com/
36