Está en la página 1de 37

OBJETIVO GENERAL:

Capacitar a los integrantes de la academia


estatal de Fsica de los C.E.T.i.s. y C.B.T.i.s.
del estado de Oaxaca en el desarrollo de
proyectos innovadores empleando Arduino

CURSO - TALLER: Facilitadores:


I. S. C. Dal Lpez Lpez
SISTEMA ARDUINO
Instituto de Estudios Superiores del Istmo de Tehuantepec
M. I. Blanca Elia Jimnez Guzmn
C.B.T.i.s. No. 91
Antologa


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

1. Introduccin a la tecnologa Arduino

Presentacin

Arduino es una plataforma de electrnica abierta para la creacin de prototipos


basada en software y hardware flexibles y fciles de usar. Se cre para artistas,
diseadores, aficionados y cualquiera interesado en crear entornos u objetos
interactivos.
En los ltimos aos se han desarrollado una gran cantidad de dispositivos
electrnicos digitales de todo tipo, cada vez ms accesibles, con interfaces cada
vez ms atractivas y variadas y para los ms diversos usos: cmputo,
comunicaciones, control, entretenimiento, localizacin, msica, juegos, etc.
Con el desarrollo de estas tecnologas, los costos de produccin de sus
componentes se han reducido significativamente, hacindolos cada vez ms
accesibles y facilitando as la creacin con ellos de mltiples aplicaciones o
equipamientos en los ms diversos campos, desde las aplicaciones cientficas hasta
su uso en el diseo y el arte. Esto, que empez a hacerse mediante el uso del
software y las redes de cmputo, hoy es posible tambin hacerlo con el hardware,
gracias a la aparicin de diversas plataformas basadas en microcontroladores y
desarrolladas para este propsito.
Uno de estos proyectos es el Arduino, desarrollada como una plataforma de
software y hardware libres, para poder ser usada por gente no especializada en
estos campos (diseadores, artistas o simples aficionados), que por ser abierta,
econmica, fcil de usar y con una gran comunidad de usuarios, se ha convertido
en una de las plataformas ms utilizadas para el desarrollo de dispositivos
electrnicos interactivos.

2
CURSO - TALLER: SISTEMA ARDUINO

Introduccin a las distintas placas 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.

Existen varias revisiones de esta placa, en las


cuales se suelen aadir nuevas funcionalidades
ms tiles.

Duemilanove

Versin anterior de Arduino Uno y presenta pocas


diferencias con ese modelo. Basada en el
ATmega168 o el ATmega328. Tiene 14 pines con
entradas/salidas digitales (6 de las cuales pueden
ser usadas como salidas PWM), 6 entradas
analgicas, un reloj de 16Mhz, conexin USB,
entrada de alimentacin, una cabecera ISCP, y un
botn de RESET.

Diecimila

Versin Anterior a Duelmilanove. Es una placa


microcontroladora basada en el chip ATmega168.
Tiene 14 E/S digitales (6 de las cuales se puedes
utilizar como salidas PWM), 6 entradas analgicas,
un reloj de 16MHz, conexin USB y botn de
RESET.

3
CURSO - TALLER: SISTEMA ARDUINO

Nano

Una placa compacta diseada para usar


directamente en placas de desarrollo. El Nano se
conecta al ordenador con un cable Mini-B USB.
Basado en el ATmega328 (Arduino Nano 3.0) o
ATmega168 (Arduino Nano 2.x) que se usa
conectndola a una protoboard. Tiene ms o
menos la misma funcionalidad que el Arduino
Duemilanove, pero con una presentacin diferente.
No posee conector para alimentacin externa, y
funciona con un cable USB Mini-B en vez del cable
estndar.

Mega

Una placa compacta diseada para usar


directamente en placas de desarrollo. El Nano se
conecta al ordenador con un cable Mini-B USB.
Basado en el ATmega328 (Arduino Nano 3.0) o
ATmega168 (Arduino Nano 2.x) que se usa
conectndola a una protoboard. Tiene ms o
menos la misma funcionalidad que el Arduino
Duemilanove, pero con una presentacin diferente.
No posee conector para alimentacin externa, y
funciona con un cable USB Mini-B en vez del cable
estndar.

Mas grande y potente placa Arduino, compatible


con los shields de Duemilanove, Diecimila y Uno.
Basada en ATmeg1280. Tiene 54 entradas/salidas
digitales (de las cuales 14 proporcionan salida
PWM), 16 entradas digitales, 4 UARTS (puertos
serie por hardware), un reloj de 16MHz, conexin
USB, entrada de corriente, conector ICSP y botn
de reset.

4
CURSO - TALLER: SISTEMA ARDUINO

LilyPad

LilyPad - Diseado para aplicaciones sobre


prendas, esta placa puede ser cosida a la ropa y
es de color purpura y con un diseo con estilo. Est
basado en el ATmega 168V (de menor consumo
que la versin ATmega168) o el ATmega328V.

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

Diseada para aplicaciones inalmbricas. Incluye


La placa Arduino ms pequea. Funciona
perfectamente en una placa de desarrollo o en
aplicaciones donde el espacio es primordial. Se
conecta al ordenador usando el adaptador Mini
USB. Basada en el ATmega168, cuenta con 14
entradas/salidas digitales (de las cuales 6 pueden
ser usadas como salidas PWM ), 8 entradas
analgicas y un reloj de 16 MHZ. Puede ser
programada con el adaptador Mini USB u otros
adpatadores USB o RS232 a TTL serial.

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.

Es una placa con un microcontrolador


ATmega168. Tiene 14 E/S digitales (6 de las
cuales se puedes utilizar como salidas PWM), 6
entradas analgicas, botn de RESET y agujeros
para el montaje de tiras de pines.

La Arduino Mini Pro est destinada a instalaciones


semi-permanentes en objetos o demostraciones.
La placa viene sin conectores montados,
permitiendo el uso de varios tipos de conectores o
soldado directo de cables segn las necesidades
de cada proyecto en particular. La distribucin de
los pines es compatible con la ArduinoMini.

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

Instalacin del desarrollo de entorno integrado (IDE) Arduino

Descargar la ltima versin del IDE de Arduino desde:


http://arduino.cc/en/Main/Software
Elegir la opcin de Windows Installer, aunque tambin es posible descargar la
versin comprimida en zip y se puede decir que es una versin portable o para
aquellos que no tengan privilegios suficientes para instalar aplicaciones o
simplemente se quiera hacer una instalacin manual.
Para actualizar una versin anterior del IDE de Arduino, el procedimiento es el
mismo que el de una instalacin inicial, puesto que el instalador detecta una versin
anterior y la desinstala manteniendo todas nuestras configuraciones, libreras y
sketches anteriores.
En caso que queramos mantener varias versiones del IDE en el mismo ordenador,
simplemente hacemos la instalacin manual en directorios diferentes y las
configuraciones, libreras y sketches son compartidas por las diferentes versiones
del IDE instaladas.
Ejecutar el instalador descargado. Si existe una versin anterior el instalador nos
avisa y nos desinstala. En el caso que hayamos hecho modificaciones en el
directorio de instalacin las perderemos.

8
CURSO - TALLER: SISTEMA ARDUINO

Durante la instalacin, aceptar el acuerdo de licencia.

Marcar todas las opciones y elegir directorio de instalacin, generalmente:


C:\Program Files (x86)\Arduino\:

9
CURSO - TALLER: SISTEMA ARDUINO

Permitir instalar los drivers (si lo solicita):

Al visualizar la siguiente ventana, se verifica que ya se ha instalado el IDE en el


ordenador:

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.

Entorno de programacin y configuracin

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

En los botones de acceso rpido tenemos los siguientes iconos:

Verifica si tu programa est bien escrito y puede funcionar.

Carga el programa a la placa de Arduino tras compilarlo.

Crea un programa nuevo.

Abre un programa.

Guarda el programa en el disco duro del ordenador.

(En la parte derecha de la barra de herramientas se encuentra el


Monitor Serial) abre una ventana de comunicacin con la placa Arduino en la
que podemos ver las respuestas que nuestro Arduino nos est dando,
siempre que tengamos el USB conectado.

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

Despus, seleccionamos la opcin Puerto Serial y elegimos el COM en el que se


encuentra conectado el 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.

Estructura del sketch

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.

Las llaves { } y el punto y coma ;

Las llaves { } delimitan bloques de cdigo como funciones, sentencias ifetc,


marcando el comienzo y el fin del mismo. Toda llave de apertura ha de tener una
llave de cierre de forma balanceada. Mientras editamos el cdigo en el IDE de
Arduino, si situamos el cursor justo despus de una llave de apertura {, veremos
resaltada la llave de cierre } asignada a la misma, permitindonos comprobar si lo
que hemos escrito es realmente lo que hemos querido escribir.

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

2.-CONCEPTOS BSICOS DE ELECTRNICA

Seales analgicas y digitales

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.

Las seales analgicas predominan en nuestro entorno (variaciones de


temperatura, presin, velocidad, distancia, sonido etc.) y son transformadas en
seales elctricas, mediante el adecuado transductor, para su tratamiento
electrnico.
La utilizacin de seales analgicas en comunicaciones todava se mantiene en la
transmisin de radio y televisin tanto privada como comercial. Los parmetros que
definen un canal de comunicaciones analgicas son el ancho de banda (diferencia
entre la mxima y la mnima frecuencia a transmitir) y su potencia media y de cresta.

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

Sus parmetros son:


Altura de pulso (nivel elctrico)
Duracin (ancho de pulso)
Frecuencia de repeticin (velocidad pulsos por segundo)

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.

La utilizacin de seales digitales para transmitir informacin se puede realizar de


varios modos: el primero, en funcin del nmero de estados distintos que pueda
tener. Si son dos los estados posibles, se dice que son binarias, si son tres,
ternarias, si son cuatro, cuaternarias y as sucesivamente. Los modos se
representan por grupos de unos y de ceros, siendo, por tanto, lo que se denomina
el contenido lgico de informacin de la seal.
La segunda posibilidad es en cuanto a su naturaleza elctrica. Una seal binaria se
puede representar como la variacin de una amplitud (nivel elctrico) respecto al
tiempo (ancho del pulso).

17
CURSO - TALLER: SISTEMA ARDUINO

Polaridad

La polaridad es la propiedad de diferencia en los terminales de un dispotivo


elctrico, los terminales que forman parte de estos pueden ser positivos o negativos
y obtienen el nombre de polos.
Es muy importante conocer la polaridad de los elementos que nos suministran la
energa elctrica ya que en algunos casos en cambios de polaridad el usuario puede
encontrarse en graves peligros.
Existen dos tipos de polaridad positiva y negativa, la segunda usualmente conocida
como tierra.

Resistencia

El resistor o resistencia es el elemento de circuito ms utilizado en la prctica. Sus


usos ms comunes son la disipacin de potencia, generacin de calor, limitacin de
corriente, divisin de voltaje, etc. El resistor se describe matemticamente mediante
la ley de Ohm. Los resistores se miden por esa razn en unidades llamadas Ohms,
generalmente se utiliza el smbolo W para representar los Ohms. En la prctica los
valores utilizados se extienden entre algunas dcimas de ohm a varios millones de
ohms.

Para representar el valor de las resistencias se utiliza un cdigo de colores. El


cdigo especifica claramente el valor y la precisin con que el elemento fue
fabricado. Adems de su valor es importante la potencia elctrica que disipa un
resistor. Generalmente el tamao del elemento determina la potencia mxima
permitida. Los valores comunes de potencia son 0.25, 0.5 y 1 W.

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

La corriente elctrica es el flujo de electrones o cargas dentro de un circuito elctrico


cerrado.
Existen dos tipos de corriente: la continua y la alterna.

Corriente continua (C.C.):

Tambin se la conoce como corriente directa (C.D.) y su caracterstica principal es


que los electrones o cargas siempre fluyen, dentro de un circuito elctrico cerrado,
en el mismo sentido. Los electrones se trasladan del polo negativo al positivo de la
fuente. Algunas de estas fuentes que suministran corriente directa son por ejemplo
las pilas, utilizadas para el funcionamiento de artefactos electrnicos. Otro caso
sera el de las bateras usadas en los transportes motorizados.

Los metales son los que permiten el mejor flujo de cargas, es por esto que se los
denomina conductores.

19
CURSO - TALLER: SISTEMA ARDUINO

Corriente alterna (C.A.):


A diferencia de la corriente continua, en esta existen cambios de polaridad ya que
esta no se mantiene fija a lo largo de los ciclos de tiempo. Los polos negativos y
positivos de esta corriente se invierten a cada instante, segn los Hertz o ciclos por
segundo de dicha corriente. A pesar de esta continua inversin de polos, el flujo de
la corriente siempre ser del polo negativo al positivo, al igual que en la corriente
continua. La corriente elctrica que poseen los hogares es alterna y es la que
permite el funcionamiento de los artefactos electrnicos y de las luces.

Motor de corriente continua

Un motor elctrico de Corriente Continua es esencialmente una mquina que


convierte energa elctrica en movimiento o trabajo mecnico, a travs de medios
electromagnticos.
Un motor elctrico opera primordialmente en base a dos principios: El de induccin,
descubierto por Michael Faraday en 1831; que seala, que si un conductor se
mueve a travs de un campo magntico o est situado en las proximidades de otro
conductor por el que circula una corriente de intensidad variable, se induce una
corriente elctrica en el primer conductor. Y el principio que Andr Ampre observo
en 1820, en el que establece: que si una corriente pasa a travs de un conductor
situado en el interior de un campo magntico, ste ejerce una fuerza mecnica o
f.e.m. (fuerza electromotriz), sobre el conductor.
El movimiento giratorio de los motores de C.C. se basa en el empuje derivado de la
repulsin y atraccin entre polos magnticos. Creando campos constantes
convenientemente orientados en estator y rotor, se origina un par de fuerzas que
obliga a que el rotor gire buscando la posicin de equilibrio.

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

Un rel es un interruptor que podemos activar mediante una seal elctrica. En su


versin ms simple es un pequeo electro-imn que cuando lo excitamos mueve la
posicin de un contacto elctrico de conectado a desconectado o viceversa.
El smbolo del rel muestra la bobina y en este caso, un accionador que conmuta
entre dos contactos, pero tambin existen rels de mltiples contactos. Mediante
una seal de control de poca intensidad que excite la bobina podemos conmutar
grandes tensiones o intensidades.
Normalmente usaremos un rel cuando se requiera conmutar grandes picos de
tensin o intensidad como por ejemplo arrancando motores de corriente alterna de
una cierta potencia.

21
CURSO - TALLER: SISTEMA ARDUINO

3.-CONCEPTOS BSICOS DE ARDUINO

Entradas analgicas y digitales

Descripcin de las entradas


Nuestro Arduino no slo puede enviar seales sino que tambin puede recibirlas
con dos propsitos principales como son leer datos de sensores y recibir mensajes
de otros dispositivos (shield, otro Arduino, PC, etc.). Las entradas las clasificaremos
en analgicas y digitales.

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

Para hacer la lectura de uno de estos pines escribiremos en nuestro cdigo


lectura = analogRead(pinentrada);
lectura lo sustituimos por el nombre de la variable donde queramos almacenar el
valor ledo y en pinentrada tendremos que poner el nmero del pin analgico que
hemos elegido (0,1,...5) o el nombre de la variable que almacena dicho nmero.
Esta funcin nos devolver un valor que va de 0 a 1023 en proporcin al nivel de la
seal de entrada. Para una entrada nula obtendremos el valor 0, para una entrada
de 2.5 Voltios 511 (la mitad de 1023) y para 5 Voltios 1023.

Entradas digitales

Las entradas digitales en arduino se presentan en los pines del 1 al 13. Se


diferencian de las analgicas porque stas son capaces de entender slo dos
niveles de seal, LOW o valores cercanos a 0 V y HIGH o valores cercanos a 5 V.
Puede parecer una desventaja pero en realidad puede ser todo lo contrario. Y no
slo porque a veces nicamente necesitemos saber dos estados (interruptor,
pulsador, sensor de presencia, final de carrera....) sino porque as es capaz de leer
seales de pulsos digitales. Esto significa que puede comunicarse.

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);

Salidas analgicas y digitales

Pines de salida digitales


Arduino utiliza sus pines de salida para enviar seales elctricas. Estas seales
pueden utilizarse para alimentar otros dispositivos o para comunicarse enviando
una serie de pulsos que el receptor debe entender.
Las salidas se dividen en dos niveles o estados: HIGH a 5 V y LOW a 0 V. Por
defecto, y sin ningn programa cargado en nuestra tarjeta controladora, las salidas
estn a nivel LOW. Para valores constantes de 5V, 3.3V y 0V (GND) podemos
utilizar los pines correspondientes del apartado POWER de nuestro Arduino.

24
CURSO - TALLER: SISTEMA ARDUINO

Configuracin y uso de las salidas digitales

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"

pinMode(pinsalida,OUTPUT); // configura el pin nmero "pinsalida" (10) como

25
CURSO - TALLER: SISTEMA ARDUINO

Salida

Ahora ya lo tenemos configurado como salida pero an sigue a 0 V, es decir, a nivel


LOW. Cuando en un determinado momento del programa queramos que ese pin se
ponga a nivel HIGH escribiremos esta sentencia
digitalWrite(pinsalida,HIGH);
Ahora tendremos 5 V permanentemente en ese pin a no ser que en el programa
insertemos
digitalWrite(pinsalida,LOW);
En cuyo caso se volver al valor de 0 V. Podemos poner los pines a HIGH o LOW
tantas veces como queramos.

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

El entorno de programacin de Arduino, posee una herramienta llamada "Monitor


Serial", esta herramienta abrir una consola con la que podemos comunicarnos con
Arduino, tanto para mandarle comandos como para recibir informacin. Esto es muy
til para conocer el estado de las variables de programa y saber qu es lo que
realmente est pasando dentro de nuestro Arduino.
Estructura para realizar una escritura serial
void setup() {
Serial.begin(9600);
Serial.print("Primero");
Serial.println("Segundo");
}
void loop() {
}

26
CURSO - TALLER: SISTEMA ARDUINO

Estructuras de control if/else

if (si condicional)

if es un estamento que se utiliza para probar si una determinada condicin se ha


alcanzado, como por ejemplo averiguar si un valor analgico est por encima de un
cierto nmero y ejecutar una serie de operaciones que se escriben dentro de llaves,
si es verdad. El formato para if es el siguiente:
if (unaVariable = valor)
{
ejecutaInstrucciones;
}

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

Mdulo HL-69: Un sensor de humedad de suelo

El mdulo HL-69, un sensor de humedad de suelo utiliza la conductividad entre dos


terminales para determinar ciertos parmetros relacionados a agua, lquidos y
humedad

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

El cdigo para utilizar el sensor es el siguiente:


void setup() {
Serial.begin(9600);
pinMode(10, INPUT);
}

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.

Sensor ultrasonico HC-SR04

El sensor de ultrasonidos se enmarca dentro de los sensores para medir distancias


o superar obstculos, entre otras posibles funciones.
En este caso vamos a utilizarlo para la medicin de distancias. Esto lo consigue
enviando un ultrasonido (inaudible para el odo humano por su alta frecuencia) a
travs de uno de la pareja de cilindros que compone el sensor (un transductor) y
espera a que dicho sonido rebote sobre un objeto y vuelva, retorno captado por el
otro cilindro.

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?

El tiempo que transcurre entre el envo y la recepcin del ultrasonido.

Cmo vamos a traducir dicho tiempo en distancia?

Aprovechando que la velocidad de dicho ultrasonido en el aire es de valor 340 m/s,


o 0,034 cm/microseg (ya que trabajaremos con centmetros y microsegundos). Para
calcular la distancia, recordaremos que v=d/t (definicin de velocidad: distancia
recorrida en un determinado tiempo).
De la frmula anterior despejamos d, obteniendo d=vt, siendo v la constante
anteriormente citada y t el valor devuelto por el sensor a la placa Arduino.
Tambin habr que dividir el resultado entre 2 dado que el tiempo recibido es el
tiempo de ida y vuelta.

30
CURSO - TALLER: SISTEMA ARDUINO

3.-PRIMERAS PRCTICAS CON ARDUINO

Encendido y apagado de un Led

Un LED es un pequeo componente electrnico que se caracteriza por emitir luz.


Es lo que en buen panameo llamaramos un foquito. Se puede encontrar en
cualquier tienda de electrnica con precios que varan desde los 0.05 centavos
hasta ms de un Balboa, dependiendo de la luminosidad. Para este ejemplo
funciona cualquier tipo de LED sencillo. Lograremos encender el LED directamente
a travs de nuestro microcontrolador.
Para ello abriremos el Arduino IDE y procederemos a escribir el siguiente cdigo:

void setup(){
pinMode(13, OUTPUT);
}
void loop(){
digitalWrite(13,HIGH);
delay(5000);
digitalWrite(13,LOW);
delay(5000);
}

Todo programa en Arduino contar con 2 funciones: la funcin setup y la funcin


loop.
En setup se establece el uso que se le va a dar al microcontrolador. Tambin
pueden iniciarse variables e iniciarse otros procesos que veremos ms adelante.
En loop se establece los procesos que se ejecutarn cuando se inicie el
microcontrolador. Dichos procesos se ejecutarn de manera indefinida, de ah que
la funcin se le denomine como loop (lazo, en espaol).
En el setup hemos establecido que el pin 13 del Arduino funcionar como Output,
es decir, que entregar un voltaje cuando el usuario lo decida. Este voltaje es
normalmente 5 voltios. En la funcin loop escribimos lo que se har: establecer el
pin digital 13 en estado High, es decir, obtendremos 5 voltios en dicho pin y har
una interrupcin de 5 segundos, es decir permanecer en ese estado dicho tiempo,
posteriormente cambiar a estado LOW por lo que no recibir voltaje estando as 5
segundos ms.
El comando digitalWrite() nos permite iniciar un pin y un estado, el cual puede ser
HIGH o LOW, encendido o apagado.

31
CURSO - TALLER: SISTEMA ARDUINO

Ahora, en nuestra placa colocamos un LED entre el pin 13 y GND de al lado.

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.

Tarea 1: Encender el led conectado al pin 13 y mantenerlo en ese estado por 3


segundos, posteriormente apagarlo y dejarlo en ese estado por 2 segundos.

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

Usando nuestra primera librera: servo

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.

Medir la distancia con el sensor ultrasnico

Conexiones

34
CURSO - TALLER: SISTEMA ARDUINO

El sensor consta de 4 pines: "VCC" conectado a la salida de 5V de la placa, "Trig"


conectado al pin digital de la placa encargado de enviar el pulso ultrasnico,
"Echo" al pin de entrada digital que recibir el eco de dicho pulso y "GND" a tierra.

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

Arduino. (s.f.). Obtenido de http://www.arduino.cc/es/pmwiki.php?n=


FMS, P. (2011). Pandora FMS. Obtenido de http://pandorafms.com/es/
Gonzlez, A. G. (s.f.). Panama Hitek. Obtenido de http://panamahitek.com/
Monk, S. (2012). 30 Proyectos con Arduino. Editorial Estribor.
openwebinars. (2016). openwebinars. Obtenido de https://openwebinars.net/blog/tutorial-de-
arduino/
Prometec. (2015). Prometec. Obtenido de http://www.prometec.net
RAE. (2010). Diccionario de la lengua espaola. Espasa-Calpe.
RecursosTic. (2010). Obtenido de Sensores de Humedad:
http://recursostic.educacion.es/secundaria/edad/4esotecnologia/quincena11/4quince
na11_contenidos_3e.htm
Torrente Artero, . (2013). ARDUINO. Curso prctico de formacin. RC Libros.

Ligas de inters:

Tutoriales Arduino gratuitos.


http://panamahitek.com/arduino/
http://www.prometec.net/indice-tutoriales
https://openwebinars.net/blog/tutorial-de-arduino/

Foros de discusin:

https://forum.arduino.cc/index.php
http://www.forosdeelectronica.com/

36

También podría gustarte