Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Libro Arduino PDF
Libro Arduino PDF
www.tiendaderobotica.com ventas@tiendaderobotica.com
2
LIBRO BSICO DE ARDUINO
3
Impreso: Abril 2012: Primera edicin
Bogot, Colombia
2012
4
Propsito ..................................................................................... 9 T
A
Qu voy a aprender? .................................................................... 10 B
1. Introduccin............................................................................ 11 L
A
1A. Computacin fsica................................................................ 12
D
2. Para tener en cuenta ................................................................. 13 E
2A. Tienda de Robtica ............................................................... 13 C
2B. Cosas de Mecatrnica ............................................................. 13
O
2C. Hardware libre .................................................................... 14
N
2D. Software libre ..................................................................... 14
2E. Creative commons ................................................................ 14 T
2F. Arduino ............................................................................. 15 E
2G. Fritzing ............................................................................. 15 N
2H. Licencia de la obra ............................................................... 16 I
D
3. Electrnica ............................................................................. 17 O
3A. Concepto de electrnica ......................................................... 17
3B. Voltaje .............................................................................. 17
3C. Voltaje DC.......................................................................... 18
3D. Voltaje AC.......................................................................... 18
3E. Corriente ........................................................................... 18
3F. Resistencia ......................................................................... 19
3G. Ley de Ohm ........................................................................ 19
3H. Sistemas electrnicos ............................................................ 19
3I. Entradas ............................................................................ 19
3J. Salidas .............................................................................. 20
3K. Procesamiento de seal .......................................................... 20
3L. Seales electrnicas .............................................................. 21
3M. Variable digital .................................................................... 21
3N. Variable anloga .................................................................. 21
3O. Entrada/salida digital ............................................................ 22
3P. Entrada/salida anloga ........................................................... 22
3Q. Divisor de voltaje ................................................................. 22
3R. Conversor anlogo-digital ........................................................ 22
3S. Modulacin por ancho del pulso PWM .......................................... 23
3T. Comunicacin serial .............................................................. 23
5
4H. LED ................................................................................. 29
4I. LED RGB ........................................................................... 29
4J. Pulsador ............................................................................ 29
4K. Reed switch ....................................................................... 30
4L. Potencimetro .................................................................... 30
4M. Fotocelda .......................................................................... 30
4N. Zumbador o buzzer............................................................... 31
4O. Motor DC........................................................................... 31
5 Programacin ............................................................................ 33
6. Arduino .................................................................................. 43
8. Fritzing .................................................................................. 57
6
8B. Vista protoboard................................................................... 57
8C. Vista esquema ..................................................................... 58
8D. Vista PCBCircuito impreso ..................................................... 58
8E. Ejercicio mster ................................................................... 59
9. Tutoriales ............................................................................... 60
7
Hoja dejada en blanco de manera intencional
8
PROPSITO
9
QU VOY A APRENDER?
Muchas veces pensamos que los temas tecnolgicos requieren de gran habi-
lidad tcnica y de un gran conocimiento, pero esto no es cierto. Queremos
que con el desarrollo de este magnfico libro entiendas que muchos de esos
procesos tecnolgicos son simples de entender y aquellos que son comple-
jos son la unin de muchos procesos simples.
10
1. INTRODUCCIN
11
Computacin fsica
La Computacin fsica, significa la construccin de sistemas inter-
activos fsicos mediante el uso de software y hardware que pueden
sentir y responder al mundo analgico. Si bien esta definicin es
suficientemente amplia para abarcar aspectos como los sistemas
inteligentes de control de trfico de automviles o los procesos de
1A automatizacin de fbricas, en un sentido ms amplio, la computa-
cin fsica es un marco creativo para la comprensin de la relacin
de los seres humanos en el mundo digital. En la prctica, a menudo
el trmino describe el arte hecho a mano, diseo de proyectos DIY
o pasatiempos que utilizan sensores y microcontroladores para tra-
ducir entradas analgicas a sistemas basados en software, y/o con-
trolar dispositivos electromecnicos como motores, servos, ilumi-
nacin u otro hardware.
12
2. PARA TENER EN CUENTA
Tienda de Robtica
La Tienda de Robtica nace
en el 2010 con la idea de
poner a disposicin de estu-
diantes, profesionales y afi-
cionados de la robtica los mejores productos usados en el mundo para
desarrollar sus proyectos.
La responsabilidad social que el mundo nos exige hace que por medio de la
2A
Tienda de Robtica y el sitio web Cosas de Mecatrnica podamos compar-
tir: noticias, eventos, tutoriales, proyectos entre otros. La Tienda de
Robtica se encuentra ubicada en la ciudad de Bogot D.C, Colombia y es
solo virtual. Agradecemos que compres nuestros productos con el mejor
precio del mercado. Contctanos para conocer ms de nosotros.
Cosas de Mecatrnica
Cosas de Mecatrnica naci en
Enero de 2007, despus de mu-
chos intentos de su creador
Yesid Hernndez de hacer pgi-
nas web. Hasta Abril de 2009 estuvo alojado en wordpress (http://
mecatronica.wordpress.com). A partir de Mayo de 2009, Cosas de Mecatr-
nica adquiri un dominio propio con la idea de seguir compartiendo infor-
macin y ayudar a crecer a la comunidad Mecatrnica en Espaol. 2B
En principio naci solo como un sitio en donde se publicara y compartieran
los proyectos mecatrnicos realizados por Ibraim Yesid Hernndez Olarte,
ahora busca ser un ambiente colaborativo de todas la personas y organiza-
ciones interesadas en compartir informacin alrededor de la Mecatrnica.
La participacin en el BLOG viene principalmente de los alumnos del SENA,
pero no slo de ellos y se busca que se cree una comunidad compartiendo
informacin de pequeos y grandes proyectos en los cuales todos estamos
trabajando.
13
Hardware libre
Se llama hardware libre a los dispositivos de hardware
cuyas especificaciones y diagramas esquemticos son de
acceso pblico, ya sea bajo algn tipo de pago o de for-
ma gratuita. La filosofa del software libre (las ideas
sobre la libertad del conocimiento) es aplicable a la del
hardware libre. Se debe recordar en todo momento que
2C libre no es sinnimo de gratis. El hardware libre forma
parte de la cultura libre.
Software libre
El software libre (en ingls free software, aunque esta
denominacin tambin se confunde a veces con "gratis"
por la ambigedad del trmino "free" en el idioma
2D ingls, por lo que tambin se usa "libre software" y
"logical libre") es la denominacin del software que
respeta la libertad de los usuarios sobre su producto
adquirido y, por tanto, una vez obtenido puede ser usa-
do, copiado, estudiado, modificado, y redistribuido
libremente. Segn la Free Software Foundation, el soft-
ware libre se refiere a la libertad de los usuarios para
ejecutar, copiar, distribuir, estudiar, modificar el software y distribuirlo modifica-
do.
Creative commons
Creative Commons (CC) es una organizacin no
gubernamental sin nimo de lucro que desarrolla
planes para ayudar a reducir las barreras legales
2E de la creatividad, por medio de nueva legislacin
y nuevas tecnologas. Las licencias Creative Com-
mons o CC estn inspiradas en la licencia GPL (General Public License) de la Free
Software Foundation, compartiendo buena parte de su filosofa. La idea principal
detrs de ellas es posibilitar un modelo legal ayudado por herramientas informti-
cas, para as facilitar la distribucin y el uso de contenidos.
Existe una serie de licencias Creative Commons, cada una con diferentes configura-
ciones, que permite a los autores poder decidir la manera en la que su obra va a
circular en internet, entregando libertad para citar, reproducir, crear obras deriva-
das y ofrecerla pblicamente, bajo ciertas diferentes restricciones. La licencia de
la presente obra se expone en la pgina 16.
14
Arduino
Arduino es una plataforma de electrnica
abierta para la creacin de prototipos basa-
da en software y hardware libre, flexibles y
fciles de usar. Se cre para artistas, disea-
dores, aficionados y cualquier interesado en
crear entornos u objetos interactivos.
Las placas pueden ser hechas a mano o comprarse montadas de fbrica; el software
puede ser descargado de forma gratuita. Los ficheros de diseo de referencia (CAD)
estn disponibles bajo una licencia abierta, as pues eres libre de adaptarlos a tus
necesidades.
www.arduino.cc
Fritzing
Fritzing es un programa de automatizacin de diseo
electrnico libre que busca ayudar a diseadores y artistas
para que puedan pasar de prototipos (usando, por ejemplo,
placas de pruebas) a productos finales.
www.fritzing.org
15
Licencia de la obra
2H
16
3. ELECTRNICA
Concepto de electrnica
La rama de la fsica y especializacin de
la ingeniera, que estudia y emplea siste-
mas cuyo funcionamiento se basa en la
conduccin y el control del flujo mi-
croscpico de los electrones u otras
partculas cargadas elctricamente.
Voltaje
17
Voltaje DC
Es el flujo continuo de electrones a travs de
un conductor entre dos puntos de distinto potencial. En
la corriente continua las cargas elctricas circulan siem-
pre en la misma direccin, es continua toda corriente
que mantenga siempre la misma polaridad. En la norma
sistemtica europea el color negro corresponde al nega-
Voltaje AC
Es la corriente elctrica en la que la magnitud y
direccin varan cclicamente. La forma de onda de
la corriente alterna ms comnmente utilizada es la
3D de una onda sinusoidal.
Corriente
Es el flujo de electrones libres a travs de un conductor o semi-
conductor en un sentido. La unidad de medida de sta es
el amperio (A). Una corriente elctrica, puesto que se trata de un
3E movimiento de cargas, produce un campo magntico, un fenme-
no que puede aprovecharse en el electroimn, este es el principio
de funcionamiento de un motor.
18
Resistencia
Ley de Ohm
La ley dice que la corriente (I) que circula por
un conductor elctrico es directamente proporcional
al voltaje (V) e inversamente proporcional a
la resistencia (R). 3G
La pirmide de la derecha es muy til para conocer
la frmula a la que es igual la variable que tapes con
el dedo, por ejemplo: Tapa con tu dedo la V
(voltaje), entonces voltaje va a ser igual a I
(corriente) por R (resistencia), una ms, tapa I
(Corriente), I va ser igual a V divido R.
Sistemas electrnicos
Un sistema electrnico es un conjunto de circuitos que interac-
tan entre s para obtener un resultado. Una forma de entender
los sistemas electrnicos consiste en dividirlos en entradas, sali- 3H
das y procesamiento de seal.
Entradas
Las entradas o Inputs: Son sensores (o transductores) electrni-
cos o mecnicos que toman las seales (en forma de tempera-
tura, presin, humedad, contacto, luz, movimiento, pH etc.)
del mundo fsico y las convierten en seales de corriente o 3I
voltaje.
19
Salidas
Las salidas o Outputs: Son actuadores u otros dispositivos (tambin
transductores) que convierten las seales de corriente o voltaje en
seales fsicamente tiles como movimiento, luz, sonido, fuerza,
Procesamiento de seal
20
Seales electrnicas
Son la representacin de un fenmeno fsico. Las entradas y
salidas de un sistema electrnico sern consideradas como las
seales variables. En electrnica se trabaja con variables que se
toman en forma de voltaje o corriente, stas se pueden deno- 3L
minar comnmente seales.
Variable digital
Variable anloga
21
Entrada / salida digital
3O
Entrada Salida Entrada
Pulsador LED Reed switch
3P
Divisor de voltaje
Un divisor de voltaje es una configuracin de circuito elc-
trico que reparte el voltaje de una fuente (Vin) entre una
o ms resistencias (R1, R2) conectadas en serie (una a
continuacin de otra).
3Q
22
Mdulacin por ancho del pulso PWM
La modulacin por ancho de pulsos (tambin conocida como PWM, siglas en ingls de
pulse-width modulation) de una seal o fuente de energa es una tcnica en la que
se modifica el ciclo de trabajo de una seal peridica (una senoidal o una cuadrada,
por ejemplo), ya sea para transmitir informacin a travs de un canal de comunica- 3S
ciones o para controlar la cantidad de energa que se enva a una carga.
Comunicacin serial
Es una interfaz de comunicaciones de
datos digitales, frecuentemente utili-
zado por computadores y perifricos,
donde la informacin es transmiti- 3T
da bit a bit enviando un solo bit a la
vez. Uno de sus usos es monitorear a
travs de la pantalla del computador
el estado del perifrico conectado,
por ejemplo al pulsar la letra A en el teclado se debe accionar un LED conectado de
manera remota la computador.
ESCANEA CON TU
SMARTPHONE
BUSCA
VIDEOTUTORIAL
T03AB
AS
HD
VISITA LA OPCIN DE
23
Hoja dejada en blanco de manera intencional
24
4. COMPONENTES ELECTRNICOS
Microcontrolador
Un microcontrolador (abreviado C,UC o MCU) es un circui-
to integrado programable, capaz de ejecutar las rdenes
grabadas en su memoria. Est compuesto de varios bloques
funcionales, los cuales cumplen una tarea especfica. Un
microcontrolador incluye en su interior las tres unidades
funcionales principales: unidad central de procesamiento
(CPU), memoria y perifricos de entrada y salida.
Para que pueda controlar algn proceso es necesario generar o crear y luego grabar 4A
en la memoria EEPROM del microcontrolador algn programa, el cual puede ser
escrito en lenguaje ensamblador u otro lenguaje para microcontroladores; sin em-
bargo, para que el programa pueda ser grabado en la EEPROM del microcontrolador,
debe ser codificado en sistema numrico hexadecimal que es finalmente el sistema
que hace trabajar al microcontrolador cuando ste es alimentado con el voltaje
adecuado y asociado a dispositivos analgicos y discretos para su funcionamiento.
25
Protoboard
Es una placa reutilizable usada para construir prototipos de circuitos electrnicos sin
soldadura. Compuestas por bloques de plstico perforados y numerosas lminas
delgadas de una aleacin de cobre, estao y fsforo
4B
Resistencia
4C
Smbolo Componente
26
Tabla de colores de las resistencias
4D
Ejemplo
27
Diodo
4E
Smbolo Componente
Un diodo es un componente electrnico de dos terminales que permite la circulacin
de la corriente elctrica a travs de l en un solo sentido. Tiene dos partes: el cto-
do y el nodo.
Transistor
4F
Smbolo Componente
El transistor es un dispositivo electrnico semiconductor que cumple funciones de
amplificador, oscilador, conmutador o rectificador. El trmino "transistor" es la
contraccin en ingls de transfer resistor ("resistencia de transferencia"). Tiene tres
partes: la base (B), el emisor (E) y colector (C).
Condensador
4G
Smbolo Componente
Un condensador o capacitor es un dispositivo pasivo, utilizado en electricidad y
electrnica, capaz de almacenar energa sustentando un campo elctrico. Est for-
mado por un par de superficies conductoras, generalmente en forma de lminas o
placas, en situacin de influencia total separadas por un material dielctrico o por
el vaco. Las placas, sometidas a una diferencia de potencial, adquieren una deter-
minada carga elctrica, positiva en una de ellas y negativa en la otra.
28
LED
Smbolo Componente
4H
Un LED (Diodo emisor de luz, tambin "diodo luminoso") es un diodo semiconductor
que emite luz. Se usan como indicadores en muchos dispositivos,
y cada vez con mucha ms frecuencia en iluminacin. Los LEDs
presentan muchas ventajas sobre las fuentes de luz incandescen-
te como un consumo de energa mucho menor, mayor tiempo de
vida, menor tamao, gran durabilidad y fiabilidad.
LED RGB
4I
Smbolo Componente
Pulsador
Smbolo Componente
4J
Un botn o pulsador es un dispositivo utilizado para activar alguna funcin. Los bo-
tones son por lo general activados al ser pulsados, normalmente con un dedo. Un
botn de un dispositivo electrnico funciona por lo general como un interruptor
elctrico, es decir en su interior tiene dos contactos, si es un dispositivo NA
(normalmente abierto) o NC (normalmente cerrado), con lo que al pulsarlo se acti-
var la funcin inversa de la que en ese momento este realizando.
29
Reed switch
4K
Smbolo Componente
Potencimetro
4L
Smbolo Componente
Un potencimetro es una resistencia cuyo valor de resistencia es variable. De esta
manera, indirectamente, se puede controlar la intensidad de corriente que fluye por
un circuito si se conecta en paralelo, o controlar el voltaje al conectarlo en serie.
Son adecuados para su uso como elemento de control en los aparatos electrnicos.
El usuario acciona sobre ellos para variar los parmetros normales de funcionamien-
to. Por ejemplo, el volumen de un radio.
Fotocelda
4M
Smbolo Componente
Es una resistencia, cuyo valor en ohmios vara ante las variaciones de la luz inciden-
te. Una fotocelda presenta un bajo valor de su resistencia ante la presencia de luz y
un alto valor de resistencia ante la ausencia de luz.
30
Zumbador o buzzer
4N
Smbolo Componente
El zumbador, buzzer en ingls, es un transductor electroacstico que produce un
sonido o zumbido continuo o intermitente de un mismo tono. Sirve como mecanismo
de sealizacin o aviso, y son utilizados en mltiples sistemas como en automviles
o en electrodomsticos. Inicialmente este dispositivo estaba basado en un sistema
electromecnico que era similar a una campana elctrica pero sin el badajo metli-
co, el cual imitaba el sonido de una campana.
Motor DC
4O
Smbolo Componente
El motor de corriente continua (DC) es una mquina que convierte la energa elc-
trica en mecnica, provocando un movimiento rotatorio. Esta mquina de corriente
continua es una de las ms verstiles. Su fcil control de posicin, paro y velocidad
la han convertido en una de las mejores opciones en aplicaciones de control y auto-
matizacin de procesos. Por ejemplo, los puedes encontrar en la traccin de los
carros de juguetes de pilas o en las llantas de los robots.
ESCANEA CON TU
SMARTPHONE
BUSCA
VIDEOTUTORIAL
T05AB
AS
HD
VISITA LA OPCIN DE
31
Hoja dejada en blanco de manera intencional
32
5. PROGRAMACIN
Concepto de programacin
A medida que la complejidad de las tareas que realizaban las computadoras aumen-
taba, se hizo necesario disponer de un mtodo sencillo para programar. Entonces,
se crearon los lenguajes de alto nivel. Mientras que una tarea tan trivial como multi-
plicar dos nmeros puede necesitar un conjunto de instrucciones en lenguaje en-
samblador, en un lenguaje de alto nivel bastar con slo una.
33
Lenguaje de programacin
Un lenguaje de programacin es un idioma artificial
diseado para expresar operaciones que pueden ser
llevadas a cabo por mquinas como los computadores.
Lenguaje mquina
El Lenguaje de mquina es el sistema de cdigos
directamente interpretable por un circuito micro-
programable, como el microprocesador de un com-
El lenguaje mquina trabaja con dos niveles de voltaje. Dichos niveles, por abstrac-
cin, se simbolizan con el cero (0) y el uno (1), por eso el lenguaje de mquina slo
utiliza dichos signos. Esto permite el empleo de las teoras del lgebra booleana y
del sistema binario en el diseo de este tipo de circuitos y en su programacin.
Lenguaje emsamblador
El lenguaje ensamblador o assembler es un lenguaje de
programacin de bajo nivel para los computadores, mi-
crocontroladores, y otros circuitos integrados programa-
34
Lenguaje de alto nivel
Un lenguaje de programacin de alto nivel se caracteriza
por expresar los algoritmos de una manera adecuada a la
capacidad cognitiva humana, en lugar de la capacidad
ejecutora de las mquinas. 5E
Para los lenguajes de alto nivel se requiere de ciertos
conocimientos de programacin para realizar las secuen-
cias de instrucciones lgicas. Los lenguajes de alto nivel
se crearon para que el usuario comn pudiese solucionar
un problema de procesamiento de datos de una manera
ms fcil y rpida.
Algoritmo
Estructuras 5G
Variables
Funciones
35
Estructuras
Son dos funciones principales que debe tener todo programa en Arduino:
setup(){
5H }
Cdigo de configuracin inicial, solo se ejecuta una vez.
loop(){
}
Esta funcin se ejecuta luego del setup(), se mantiene ejecutndose hasta que se
des- energice o desconecte el Arduino.
Variables
Es un dato o conjunto de datos que cambia su valor con la ejecucin del programa.
5I
true false Valor entero Almacena un ASCII
Estos son algunos tipos de variables y los ms utilizados en esta gua. Para ms tipos
visita:
arduino.cc/en/Reference/HomePage
Operadores booleanos
Usados generalmente dentro del condicional If
5J && (y)
|| (o) If (a || b)
! (negacin)
Operadores de comparacin
Usados generalmente dentro del condicional If y sobre el For y While
36
Operadores matemticos
Se aplican al manejo de variables, condicionales y ciclos
= (asignar) - (resta)
% (mdulo) * (multiplicacin) 5L
+ (suma) / (divisin)
int valor = valor +5
Estructuras de control
Son instrucciones que nos permiten tomar decisiones y hacer diversas repeticiones
de acuerdo a unos parmetros, dentro de las ms importantes podemos destacar:
If
5M
Switch/case
For
While
Condicionales
Ideales para tomar decisiones luego de evaluar las condiciones lgicas:
5N
if (entrada < 500) switch (var) {
{ case 1:
// accin A // accin A
} else break;
{ case 2:
// accin B // accin B
} break;
default:
// accin C
}
Ciclos
Ideales para repetir lo que se encuentre dentro de ellos
5O
for( int a=0; a>10; a++ ) while ( var < 200) {
{ // accin a repetir
// accin a repetir var++;
} }
37
Funciones
Una funcin es un conjunto de lneas de cdigo
que realizan una tarea especfica y puede retor-
nar un valor. Las funciones pueden tomar par-
Funciones digitales
Orientas a revisar el estado y la configuracin de las entradas y salidas digitales
pinMode()
pinMode(pin,modo)
pinMode (13,OUTPUT);
pinMode (a,INPUT);
digitalRead() digitalWrite()
digitalRead(pin) digitalWrite(pin,estado)
digitalWrite (13,LOW);
_____________ _____________
38
Funciones anlogas
Ideales para la lectura y escritura de valores anlogos
EJERCICIOS
1
Relaciona los siguientes trminos, cada letra tiene tres trminos asociados:
ESCANEA CON TU
SMARTPHONE
BUSCA
VIDEOTUTORIAL
T04AB
AS
HD
VISITA LA OPCIN DE
39
5S Referencia rpida para programar
El programa de Arduino se puede dividir en tres partes principales: la
estructura, las variables (valores y constantes) y funciones.
V +Constantes +Utilidades
A - byte - sizeof()
- HIGH | LOW
- int
R - INPUT | OUTPUT +Conversin
- word
- true | false - char()
I - long
- Constantes enteras - byte()
A - Constantes flotante
- unsigned long
- float - int()
B +Tipos de datos - word()
- double
L - void - string - arreglo char - long()
E - boolean - String - objeto - float()
- char - array
S
40
F
+Digital I/O
- pinMode() U
- digitalWrite() N
- digitalRead() C
+Nmeros aleatorios
- randomSeed() I
+Analogo I/O - random()
- analogReference() O
- analogRead() N
- analogWrite() - PWM E
+Bits y Bytes
- lowByte() S
+Avanzadas I/O - highByte()
- tone()
- bitRead()
- noTone()
- bitWrite()
- shiftOut()
- bitSet()
- shiftIn()
- bitClear()
-pulseIn()
- bit()
L
- EEPROM - leer y escribir I
- Ethernet - conectarse a Internet B
- Cristal lquido - control de LCD
- SD - lectura y escritura de tarjetas SD
R
- Servo - control de servomotores E
- SPI - comunicacin por el bus SPI R
- Paso a paso - control de motores
- Wire - enviar y recibir datos TWI/I2C
A
y muchas ms visita S
arduino.cc
41
Hoja dejada en blanco de manera intencional
42
6. ARDUINO
Proyecto Arduino
El proyecto comenz en Ivrea, Italia (el sitio de la compaa de
computadoras Olivetti), en el ao 2005 con el fin de crear un
dispositivo para estudiantes para el control integrado de proyec-
tos de diseo e interaccin, con la finalidad de que fuera ms
barato que los sistemas de creacin de prototipos disponibles en
ese entonces. A partir de mayo de 2011, ms de 300.000 unida-
des de Arduino han sido distribuidas. Los fundadores Massimo
Banzi y David Cuartielles nombraron el proyecto como Arduino de Ivrea, un protago- 6A
nista histrico de la ciudad. En primer lugar "Arduino" es un termino masculino ita-
liano, que significa "gran amigo".
1 Entrevista con Ben Fry y Casey Reas por Shiffman Daniel (Sep 23, 2009), ver ms
43
Familia Arduino
Como toda familia que se respete, tenemos de los integrantes ms grandes a los ms
pequeos, te invitamos a conocerlos:
Muchas entradas y
El ms vendido,
todo en uno
salidas
Arduino Pro Arduino Fio Arduino Mini
44
Expandir Arduino con los shields
Un Shield o escudo es una placa que permite expandir funcionalidades a tu Arduino,
con lo cual puedes conectar motores, o a la red celular, a una red WiFi, a una red
Ethernet o tener un MP3 en el Arduino, entre muchos ms solo mira:
6C
Celular Ethernet Proto GPS
ESCANEA CON TU
SMARTPHONE
BUSCA
VIDEOTUTORIAL
T01AB
AS
HD
VISITA LA OPCIN DE
45
6D Placa Arduino Uno y sus partes
2 3
5
6 4
1
8
10
11 99
12
13 14
Vistas auxiliares
46
D
E
1 Conector USB para el cable Tipo AB
S
C
2 Pulsador de Reset
R
I
3 Pines de E/S digitales y PWM P
C
4 LED verde de placa encendida I
5 LED naranja conectado al pin13 N
14 Entradas anlogas
ESCANEA CON TU
SMARTPHONE
BUSCA
VIDEOTUTORIAL
T02AB
AS
HD
VISITA LA OPCIN DE
47
6E Instalando drivers
MAC y LINUX
Si tu computador tiene de sistema operativo alguna versin de Mac o una distribu-
cin de LINUX, lo nico que debes hacer es:
WINDOWS 7, Vista y XP
Si tu computador tiene de sistema operativo Windows en versin
7, Vista o XP, debes realizar la siguiente sucesin de sencillos
pasos:
3 Conectar la placa Arduino Uno al PC y ver este aviso. No nos debemos pre-
ocupar
48
WINDOWS 7, Vista y XP
6
Ingresar a la opcin Buscar software de controlador en el equipo
49
Recibimos la confirmacin del Puerto COM asignado, este nmero de Puerto
9
COM es muy importante tenerlo en cuenta a la hora de programar.
ESCANEA CON TU
SMARTPHONE
BUSCA
VIDEOTUTORIAL
T07AB
AS
HD
VISITA LA OPCIN DE
50
Conociendo el software Arduino
6F
Guardar
Abrir
Cargar a la placa
Compilar
1 Puerto COM
51
2 Seleccionar la placa a trabajar
3
Consola serial
6G
1
52
Cargando mi primer programa
Antes de continuar con el siguiente paso asegrate de configura de manera correc-
ta:
A Puerto COM, revisa el Paso 1 de la seccin 6F, recuerda que el valor del
puerto COM lo obtuvimos en el Paso 9 de la seccin 6E
B Board, revisa el Paso 2 de la seccin 6F, recuerda que para este caso la
placa es Arduino UNO
53
Ejercicio
A partir del ejemplo cargado en la seccin anterior, ahora te proponemos que modi-
fiques un poco el programa, para ello en las dos lneas de cdigo donde dice:
delay(1000);
Cambia el valor de 1000 por 2000 y vuelve a cargar el programa a tu placa Arduino
Uno, que observas?
54
7. KIT BSICO
Descripcin
La Tienda de Robtica trae el Kit Bsico de
Arduino que comprende una cuidadosa selec-
cin de los mejores componentes para iniciar
en el mundo de Arduino. Es una herramienta
diseada para los principiantes que cuenta
7A
con todo lo necesario para desarrollar progra-
mas que contribuyan al aprendizaje y manejo
del Arduino.
KIT BSICO 7 6
2 5 7B
1
3 4
1 3 5
1 x Arduino Uno 5 x Led 5mm 5 x Resistencia 220
7
1 x Cable USB Tipo AB
10 x Conectores rpidos MM
55
Fotos
7C
DESPLIEGUE DE COMPONENTES
EN SU CAJA DE KIT
56
8. FRITZING
Una gran Software para disear los montajes en protoboard y a partir de
ello generar el plano y la PCB (Circuito impreso), as de fcil :)
Software
Fritzing permite a los diseadores, artistas, investigadores y aficionados
documentar sus prototipos basados en Arduino y crear esquemas de cir-
cuitos impresos para su posterior fabricacin.
8A
Vista protoboard
8B
Tomado de fritzing.org/projects/interruptgesteuertes-lauflicht/
Ajuste de la velocidad de los LEDS
Realizado por tux60
57
Vista esquema
8C
8D
58
EJERCICIO MSTER
1
En el siguiente ejercicio queremos que afiances tus
capacidades de montaje en Fritzing, es un ejercicio que
requiere que coloques a prueba tus capacidades de
reconocimiento de montajes electrnicos y cableado
entre el Arduino y una protoboard, es un resumen
prctico de los captulos anteriores. Para desarrollarlo
te recomendamos que trabajes junto con el software y
de la imagen que se presenta a continuacin. El software lo puedes encontrar
en:
fritzing.org/download/ 8E
DIY
59
9. TUTORIALES
Estos tutoriales son diseados con ejercicios prcticos que permiten com-
prender el concepto y de manera constante se est verificando lo aprendido
mediante preguntas. Finalmente se plantean ejercicios que involucran ca-
sos de la vida real.
A
E
F
C
G
D
60
G Prueba tu aprendizaje
H
I Tips de mucha utilidad
J Ejercicios aplicados
61
T1 Hola mundoLED intermitente
Materiales
1 1
ESCANEA CON TU
SMARTPHONE
BUSCA
VIDEOTUTORIAL
AS
HD
VISITA LA OPCIN DE
62
P
L
A
N
O
E
S
Q
U
E
M
A
P
1 Cul es el valor 2 Qu hace est 3 Completa R
de esta resistencia? funcin? E
G
digitalRead()
U
_______________ ?
I = ___ N
_____
_______________ R T
_____K
A
63
C /*
-----------------------------------
D Hola Mundo
I -----------------------------------
G Enciende un LED por un segundo y lo apaga por el mismo tiempo
0 */
//------------------------------------
D
//Funcin principal
E
//------------------------------------
void setup() // Se ejecuta cada vez que el Arduino se inicia
{
P
pinMode(13,OUTPUT); // Inicializa el pin 13 como una salida
R
}
O
G
R
//------------------------------------
A
//Funcin cclica
M
//------------------------------------
A
void loop() // Esta funcin se mantiene ejecutando
C
{ // cuando este energizado el Arduino
I
digitalWrite(13,HIGH); // Enciende el LED
delay(1000); // Temporiza un segundo (1s = 1000ms)
N
digitalWrite(13,LOW); // Apaga el LED
delay(1000); // Temporiza un segundo (1s = 1000ms)
}
2 Las seales digitales (Encendido o apagado) estn muy presentes en todos los
sistemas, y muchos sensores trabajan sobre este principio, te invitamos a conocer
algunos:
64
EJERCICIOS
1
A partir del cdigo de programacin explicado anteriormente, queremos que
un LED prenda de manera intermitente de la siguiente manera:
Tip: 1s = 1000ms
3
Un Strober es un bombillo que prende y apaga muy rpido,
muy usado en las fiestas, tu misin es realizar tu strober
casero con un LED, con el mismo esquema montado en este
tutorial.
MI CUADERNO DE APUNTES
65
T2 Encender un LED con un pulsador
Materiales
1
1
1
LED Amarillo
Arduino UNO 1
Protoboard
Pulsador
1
1 4
ESCANEA CON TU
SMARTPHONE
BUSCA
VIDEOTUTORIAL
T10AB
AS
HD
VISITA LA OPCIN DE
66
P
L
A
N
O
E
S
Q
U
E
M
A
P
1 Cul es el valor 2 Qu hace est 3 Un ejemplo de R
de esta resistencia? funcin? un lenguaje de alto E
nivel G
digitalWrite()
U
_______________ _______________ N
_____
_____K _______________ T
A
67
C /*
-----------------------------------
Encender LED con un pulsador
-----------------------------------
D
Oprimir un pulsador y mientras este se mantenga accionado
I un LED se enciende
G Cosas de Mecatrnica y Tienda de Robtica
0
*/
//------------------------------------
D //Declara puertos de entradas y salidas
//------------------------------------
E int pulsador=2; //Pin donde se encuentra el pulsador, entrada
int led=13; //Pin donde se encuentra el LED, salida
//------------------------------------
P //Funcion principal
//------------------------------------
R void setup() // Se ejecuta cada vez que el Arduino se inicia
{
O pinMode(pulsador, INPUT); //Configurar el pulsador como una entrada
G pinMode(led,OUTPUT); //Configurar el LED como una salida
}
R
A //------------------------------------
//Funcion ciclicla
M //------------------------------------
A void loop() // Esta funcion se mantiene ejecutando
{ // cuando este energizado el Arduino
C
//Condicional para saber estado del pulsador
I if (digitalRead(pulsador)==HIGH)
{
//Pulsador oprimido
N digitalWrite(led,HIGH); //Enciende el LED
}
else
{
//Pulsador NO oprimido
digitalWrite(led,LOW); //Apaga el LED
}
}
//Fin programa
68
EJERCICIOS
1
La multinacional francesa Flante experta en ma-
quinaria industrial te ha contratado para que auto-
matices una mquina cortadora de papel. La condi-
cin principal es que el operario de la mquina
cuando vaya a realizar el corte siempre mantenga
las dos manos ocupadas, esta es una regla de segu-
ridad industrial para evitar accidentes. El operario debe oprimir los dos pulsa-
dores uno con cada mano y la cuchilla cortadora debe bajar y hacer el corte. El
siguiente montaje simula el control de la mquina, los dos pulsadores (S1 y S2)
y el LED rojo simula la cuchilla cortadora.
S1 S2
MI CUADERNO DE APUNTES
69
T3 Lectura serial de una entrada digital
Materiales
1
1
Arduino UNO
Pulsador Protoboard
1
1
4
Resistencia 1K
Cable USB Tipo AB
Conectores MM
ESCANEA CON TU
SMARTPHONE
BUSCA
VIDEOTUTORIAL
T11AB
AS
HD
VISITA LA OPCIN DE
70
P
L
A
N
O
E
S
Q
U
E
M
A
P
1 Cul es el valor 2 Qu hace est 3 Este smbolo a R
de esta resistencia? funcin? que corresponde E
G
Serial.println()
U
_______________ N
_____
_____K _______________ _______________ T
A
71
/*
C --------------------------------------
Lectura serial de una entrada digital
--------------------------------------
D Leer una entrada digital y mostrar por la pantalla del
computador (consola serial) el estado del pulsador
I cuando es oprimido
G Cosas de Mecatrnica y Tienda de Robtica
0 */
//------------------------------------
//Declara puertos de entradas y salidas
D //------------------------------------
int boton=2; //Pin donde se encuentra el pulsador, entrada
E
//------------------------------------
//Funcion principal
//------------------------------------
void setup() // Se ejecuta cada vez que el Arduino se inicia
{
P //Configuracin
pinMode(boton,INPUT); //Configurar el boton como una entrada
R Serial.begin(9600); //Inicia comunicacin serial
}
O
G //------------------------------------
//Funcion ciclicla
R //------------------------------------
void loop() // Esta funcion se mantiene ejecutando
A { // cuando este energizado el Arduino
M //Guardar en una variable entera el valor del boton 0 1
int estado = digitalRead(boton);
A
//Condicional para saber estado del pulsador
C if (estado==1)
{
I // Pulsado
Serial.println("Pulsado"); //Imprime en la consola serial
} // "Pulsado"
else
N {
// No esta pulsado
Serial.println("NO Pulsado"); //Imprime en la consola serial
} // "NO Pulsado"
delay(100); //Retardo para la visualizacin de datos en la consola
}
//Fin programa
4 100
2 Para recordar
5 101
6 110
7 111
- Para leer una seal digital usa: digitalRead(numeroPin);
72
EJERCICIOS
1
Una empresa de gaseosas tiene un sistema con dos
sensores, uno de ellos indica si la botella se ha llena-
do con el lquido y el otro sensor indica si la botella
ya tiene la tapa. Para este caso simularemos los dos
sensores por medio de dos pulsadores (S1 y S2).
MI CUADERNO DE APUNTES
73
T4 Lectura serial de una entrada anloga
Materiales
1
1
1
Arduino UNO
Protoboard
1
Potencimetro 10K
3
ESCANEA CON TU
SMARTPHONE
BUSCA
VIDEOTUTORIAL
T12AB
AS
HD
VISITA LA OPCIN DE
74
P
L
A
N
O
E
S
Q
U
E
M
A
P
1 Cul es el valor 2 Qu hace est 3 Este smbolo a R
de esta resistencia? funcin? que corresponde E
G
analogRead()
U
_______________ N
_____ _______________
_____K _______________ T
A
75
C /*
--------------------------------------
Lectura serial de entrada anloga
D --------------------------------------
*/
D
//------------------------------------
E //Funcion principal
//------------------------------------
void setup() // Se ejecuta cada vez que el Arduino se inicia
{
P Serial.begin(9600); //Inicia comunicacin serial
}
R
O //------------------------------------
//Funcion ciclicla
G //------------------------------------
R void loop() // Esta funcion se mantiene ejecutando
{ // cuando este energizado el Arduino
A
M //Guardar en una variable entera el valor del potencimetro 0 a 1024
int valor= analogRead(A0);
A
C //Imprime en la consola serial el valor de la variable
Serial.println(valor);
I
//Retardo para la visualizacin de datos en la consola
delay(100);
N
}
//Fin programa
2 Para recordar
76
EJERCICIOS
MI CUADERNO DE APUNTES
77
T5 Escritura serial
Polaridad de un LED
Materiales
1 1
ESCANEA CON TU
SMARTPHONE
BUSCA
VIDEOTUTORIAL
T13AB
AS
HD
VISITA LA OPCIN DE
78
P
L
A
N
O
E
S
Q
U
E
M
A
P
1 Cul es el valor 2 Qu hace est 3 Nombra 4 tipos R
de esta resistencia? funcin? de variables E
G
Serial.read() a._______
U
_______________ b._______ N
_____
_______________ c._______ T
_____K
d._______ A
79
/*
C --------------------------------------
Escritura serial
--------------------------------------
D Consiste en escribir por la pantalla del computador (consola serial)
una letra predeterminada, la primera vez que se escriba est
I un LED se enciende, si se vuelve a escribir por segunda vez
el LED se apaga.
G
Cosas de Mecatrnica y Tienda de Robtica
0
*/
//--------------------------------------------------
D //Declara puertos de entradas y salidas y variables
//--------------------------------------------------
E int led = 13; //Pin donde se encuentra el LED, salida
char leer; //Variable donde se almacena la letra
boolean prendido=false; //Estado LED la primera vez, apagado
//------------------------------------
P //Funcion principal
//------------------------------------
R void setup() // Se ejecuta cada vez que el Arduino se inicia
{
O Serial.begin(9600); //Inicia comunicacin serial
pinMode(led, OUTPUT); //Configurar el LED como una salida
G }
R
//------------------------------------
A //Funcion ciclicla
//------------------------------------
M void loop() // Esta funcion se mantiene ejecutando
{ // cuando este energizado el Arduino
A
//Guardar en una variable el valor de la consola serial
C leer=Serial.read();
I // Si es la letra 'a' y adems el LED est apagado
if ( (leer=='a') && (prendido==false) )
{
digitalWrite(led,HIGH); // Enciende el LED
N prendido=true; // Actualiza el estado del LED
}
// Si es la letra 'a' y adems el LED est encendido
else if ( (leer=='a') && (prendido==true) )
{
digitalWrite(led,LOW); // Apaga el LED
prendido=false; // Actualiza el estado del LED
}
}
//Fin programa
T 1 Las tablas booleanas son muy tiles para entender la lgica de los programas,
I sabes cul es la tabla booleana de AND(&&), OR(||) y NOT(!) ?
P
S
80
EJERCICIOS
Si tu abuelito escribe 000 : Todos los aspersores de agua deben estar apagados
Si tu abuelito escribe 101 : El aspersor 1 y 3 se prenden pero el dos debe estar apagado
Si tu abuelito escribe 001 : El aspersor 1 y 2 se apagan pero el tres debe estar prendido
MI CUADERNO DE APUNTES
81
T6 Encender un LED por PWM
Materiales
1
1
1
LED Amarillo
Arduino UNO
Protoboard
1
1
ESCANEA CON TU
SMARTPHONE
BUSCA
VIDEOTUTORIAL
T14AB
AS
HD
VISITA LA OPCIN DE
82
P
L
A
N
O
E
S
Q
U
E
M
A
P
1 Cul es el valor 2 Qu hace est 3 A que corres- R
de esta resistencia? funcin? ponden estos ope- E
radores G
analogWrite()
&&_______ U
_______________ N
_____ ||_______
_____K _______________ T
==_______
A
!=_______
83
/*
C ---------------------------------------------
Enciende/Apaga un LED de forma proporcional
---------------------------------------------
D Programa que enciende proporcionalmente un LED cuando
llega a su mximo punto de brillo comienza a apagarse
I proporcionalmente.
G Cosas de Mecatrnica y Tienda de Robtica
0 */
//--------------------------------------------------
//Declara puertos de entradas y salidas y variables
D //--------------------------------------------------
int brillo = 0; //Variable de brillo inicia en 0
E int variacion = 5; //Variable de incremento configurada de 5 en 5
int led = 9; //Pin donde se encuentra el LED, salida
//------------------------------------
//Funcion principal
P //------------------------------------
void setup () // Se ejecuta cada vez que el Arduino se inicia
R {
pinMode(led, OUTPUT); //Configurar el LED como una salida
O }
G
//------------------------------------
R //Funcion ciclicla
//------------------------------------
A void loop () // Esta funcion se mantiene ejecutando
{ // cuando este energizado el Arduino
M
// Escritura analoga (PWM) en el LED escribo el valor de brillo
A analogWrite(led, brillo);
C // Incremento la variable brillo de 5 en 5
brillo = brillo + variacion;
I
// Nota: PWM ----> 0 - 255
// Si el brillo es 0 o 255
N if (brillo == 0 || brillo == 255)
variacion = -variacion; //La variacin se vuelve negativa
delay (30); //Tiempo de incremento en el brillo
}
//Fin programa
PWM
LED Servomotor
Variar la intensidad de Variar la posicin en
luz grados
84
EJERCICIOS
MI CUADERNO DE APUNTES
85
T7 Control ON/OFF con potencimetro
Materiales
1
LED Verde 1
1
Arduino UNO
Protoboard
1
Potencimetro 10K
1
3
ESCANEA CON TU
SMARTPHONE
BUSCA
VIDEOTUTORIAL
T15AB
AS
HD
VISITA LA OPCIN DE
86
P
L
A
N
O
E
S
Q
U
E
M
A
P
1 Cul es el valor 2 Para que sirve 3 Este smbolo a R
de esta resistencia? el operador? que corresponde E
G
++ U
_______________ N
_____
_____K _______________ _______________ T
A
87
C /*
---------------------------------------------
Control ON/OFF con potencimetro
---------------------------------------------
D
Programa que enciende un LED cuando el valor de la entrada
I anloga comandada por el potencimetro esta en cierto valor,
G cuando este valor cambia el LED se apaga, es un sistema con
control ON/OFF
0
Cosas de Mecatrnica y Tienda de Robtica
*/
D //------------------------------------
//Funcion principal
E //------------------------------------
void setup() // Se ejecuta cada vez que el Arduino se inicia
{
Serial.begin(9600); //Inicia comunicacin serial
pinMode(13,OUTPUT); //Configurar el pin 13 como una salida
P }
R //------------------------------------
O //Funcion ciclicla
//------------------------------------
G void loop() // Esta funcion se mantiene ejecutando
{ // cuando este energizado el Arduino
R
//Guardar en una variable el valor de la lectura anloga
A int valor = analogRead(A0);
M Serial.println(valor); //Imprime el valor por la consola
A
//Si el valor es mayor o igual a 500
C if (valor >= 500)
{
I digitalWrite(13,HIGH); //Enciende el LED en el pin 13
}
//Si el valor es menor a 500
N else
{
digitalWrite(13,LOW); //Apaga el LED en el pin 13
}
delay(100); //Retardo de 100ms para ver los datos de la consola
}
//Fin programa
T
I
1 Debes tener mucha precaucin al
P
momento en que tu placa Arduino este
S
energizada, si miras la palca por la
parte inferior esta tiene todos sus pun-
tos de soldadura al aire, si tienes la
placa alimentada y la colocas encima
de una superficie metlica, por ejem-
plo una mesa, es posible que la placa
se dae ya que queda en corto. Si vas a
trabajar la placa Arduino te recomen-
damos trabajar sobre superficies de
materiales aislantes como los son los
sintticos, madera o vidrio. Este es un
consejo para que cuides tu placa.
88
EJERCICIOS
89
T8 Control de un LED con una fotocelda
Materiales
1 1
1
LED Verde
Arduino UNO
1 1 Protoboard
Fotocelda
Cable USB Tipo AB
1 5
1
ESCANEA CON TU
SMARTPHONE
BUSCA
VIDEOTUTORIAL
T16AB
AS
HD
VISITA LA OPCIN DE
90
P
L
A
N
O
E
S
Q
U
E
M
A
P
1 Cul es el valor 2 La letra A se 3 Este smbolo a R
de esta resistencia? guarda en una va- que corresponde E
riable de tipo: G
U
_______________ N
_____
_____K
T
A
_______________
91
/*
C ---------------------------------------------
Control de intensidad de un LED
---------------------------------------------
D Programa que enciende un LED de manera proporcional de
acuerdo a la cantidad de luz que incida en una
I fotocelda.
G Cosas de Mecatrnica y Tienda de Robtica
0 */
//------------------------------------
//Funcion principal
//------------------------------------
void setup() // Se ejecuta cada vez que el Arduino se inicia
D {
Serial.begin(9600); //Inicia comunicacin serial
E pinMode(9,OUTPUT); //Configurar el pin 9 como una salida de PWM
}
//------------------------------------
//Funcion ciclicla
//------------------------------------
P void loop() // Esta funcion se mantiene ejecutando
{ // cuando este energizado el Arduino
R
//Guardar en una variable el valor de la lectura anloga de la
O // fotocelda
int foto = analogRead(A0);
G
//Verifica el valor mximo y realizar una conversin
R int conversion = 780 - foto;
A //Condicional para establecer un valor absoluto
if ( conversion < 0)
M conversion = conversion * -1; //Multiplicar por -1 porque es negativo
A //Imprimir datos del valor de la lectura anloga de la fotocelda
Serial.print("Foto : ");
C Serial.print(foto);
Serial.println("");
I
//Imprimir datos del valor de la conversin
Serial.print("Conv : ");
Serial.print(conversion);
N Serial.println("");
//Escritura anloga de PWM en el LED de acuerdo a la conversin
analogWrite(9, conversion);
delay(100); //Retardo para datos en la consola
}
//Fin programa
T 1 Piensa por un momento en dnde puedes encontrar una fotocelda, stos son
I algunos ejemplos:
P
S
Calculadora Cmara digital
Cargar batera y apaga- Verifica si hay necesi-
do automtico dad de foto con flash
92
EJERCICIOS
Te proponemos que crees un sensor para medir la luz que irradia un cuerpo
1
luminoso. Vamos a tener dos equipos el A y el B. En el equipo A va estar un
LED que varia su brillo de acuerdo a la posicin de un potencimetro (Ver
T6) y en el equipo B va estar comandado por una fotocelda. La idea es que
dobles el LED y la fotocelda a 90, los coloques lo ms junto posible y los
enfrentes, como si los dos se fueran a mirar de frente. Por consola serial debes ir mostran-
do la lectura de luz de la fotocelda, esta lectura debe ser en porcentaje de 0% a 100%. Un
ejemplo de la salida por consola: Concentracin de luz 57%
LED 1
LED 2
Sensor luz
S1 S2
93
T9 Contador de pulsos
Materiales
1
1
1
LED Amarillo
Arduino UNO 1
Protoboard
Pulsador
1
1 4
ESCANEA CON TU
SMARTPHONE
BUSCA
VIDEOTUTORIAL
T17AB
AS
HD
VISITA LA OPCIN DE
94
P
L
A
N
O
E
S
Q
U
E
M
A
P
1 Cul es el valor 2 Cules son los 3 Este smbolo a R
de esta resistencia? estados de una que corresponde E
variable booleana? G
U
a._____________ N
_____ _________
_____K b._____________ T
A
95
/*
C ---------------------------------------------
Contador de pulsos
---------------------------------------------
D Programa que muestra por pantalla (consola serial) el nmero
de veces que el pulsador ha sido presionado, se realiza un
I proceso que de acuerdo al nmero de pulsaciones se enciende
un LED,
G
Cosas de Mecatrnica y Tienda de Robtica
0
*/
//--------------------------------------------------
//Declara puertos de entradas y salidas y variables
D //--------------------------------------------------
int conta = 0; //Variable para guardar el conteo de los pulsos
E
//------------------------------------
//Funcion principal
//------------------------------------
void setup() // Se ejecuta cada vez que el Arduino se inicia
{
P Serial.begin(9600); //Inicia comunicacin serial
pinMode(2,INPUT); //Configura el pin 2 como una entrada, pulsador
R pinMode(13,OUTPUT); //Configura el pin 13 como una salida, LED
}
O
//------------------------------------
G //Funcion ciclicla
//------------------------------------
R void loop() // Esta funcion se mantiene ejecutando
{ // cuando este energizado el Arduino
A
// Si el pulsador esta oprimido
M if ( digitalRead(2) == HIGH )
{
A // Si el pulsador no esta oprimido, flanco de bajada
if ( digitalRead(2) == LOW )
C {
conta++; //Incrementa el contador
I Serial.println(conta); //Imprime el valor por consola
delay (100); // Retardo
}
}
N
// Si el valor del contador es 5
if (conta==5)
{
digitalWrite(13,HIGH); //Enciende el LED
}
// Si el valor del contador es 8
if (conta==8)
{
digitalWrite(13,LOW); // Apaga el LED
}
}
//Fin programa
T 1 Arduino tiene una gran comunidad de aprendizaje y para compartir diversas pre-
I guntas, en el foro oficial puedes encontrar diversos temas con gran cantidad de
P respuestas:
S
arduino.cc/forum
96
EJERCICIOS
B1 B2
Botn
97
T10 Interruptor magntico para una alarma visual
Materiales
1
1
1
LED Verde
Arduino UNO 1
Protoboard
Reed switch
1
1 4
ESCANEA CON TU
SMARTPHONE
BUSCA
VIDEOTUTORIAL
T18AB
AS
HD
VISITA LA OPCIN DE
98
P
L
A
N
O
E
S
Q
U
E
M
A
P
1 Cul es el valor 2 Qu recibe la 3 Este smbolo a R
de esta resistencia? funcin delay()? que corresponde E
G
U
_______________ N
_____
_____K ____________ T
A
99
/*
C ---------------------------------------------
Interruptor magntico - Ladrn en casa
---------------------------------------------
D Programa que genera una alarma visual con un LED
a partir de un campo magntico generado a un
I reed switch.
G Cosas de Mecatrnica y Tienda de Robtica
0 */
//--------------------------------------------------
//Declara puertos de entradas y salidas y variables
//--------------------------------------------------
D
int contacto = 2; //Pin asignado al reed switch
E int led= 13; //Pin asignado al LED
//------------------------------------
//Funcion principal
//------------------------------------
void setup() // Se ejecuta cada vez que el Arduino se inicia
P {
pinMode(contacto,INPUT); //El reed switch como una entrada
R pinMode(led, OUTPUT); //El LED como una salida
O }
G //------------------------------------
//Funcion ciclicla
R //------------------------------------
void loop() // Esta funcion se mantiene ejecutando
A { // cuando este energizado el Arduino
M // Si el iman se acerca al reed switch
if (digitalRead(contacto)==LOW){
A
//Ciclo for que va de 0 a 50, el contador esta
C // en la variable a, se repite mientras a sea
// menor a 50
I for(int a=0; a<50; a++){
digitalWrite(led,HIGH); //Prende el LED
delay(50); //Tiempo
N digitalWrite(led,LOW); //Apaga el LED
delay(50); //Tiempo
}
// Si el iman esta lejos del reed switch
}else{
digitalWrite(led,LOW); //Mantiene apagado el LED
} //Fin del if
}
//Fin del programa
100
EJERCICIOS
A Por consola serial se recibe un nmero entero de 4 dgitos, si este nmero es igual al
guardado por el sistema el sistema de alarma se activa, para ello se debe mostrar por
consola Alarma activada
B Si el Reed switch presencia algn campo magntico, la consola serial debe mostrar
Presencia de extrao, sistema disparado
C Como la alarma se disparo se debe encender el buzzer para generar soni-
do (se maneja como una salida digital) y adems el LED amarillo y el rojo se
debe alternar encendido/apagado y emular los movimientos de una sirena de
bomberos a intervalos de 1s.
D Si la alarma se quiere desactivar se debe ingresar un cdigo numrico
entero de 4 dgitos de ser correcto mostrar por consola serial Alarma desactivada de lo
contrario el paso C se debe repetir mientras no se ingrese el cdigo correcto.
Sirena
Buzzer
Reed
MI CUADERNO DE APUNTES
101
T11 LED RGB apoyado de tabla de colores
Materiales
1 1 1
Arduino UNO
LED RGB Protoboard
1 3 5
ESCANEA CON TU
SMARTPHONE
BUSCA
VIDEOTUTORIAL
T19AB
AS
HD
VISITA LA OPCIN DE
102
P
L
A
N
O
E
S
Q
U
E
M
A
P
1 Cul es el valor 2 La palabra pulso 3 Este smbolo a R
de esta resistencia? se debe guarda en que corresponde E
una variable de tipo : G
U
_____ _______________ ____________ N
_____K
T
A
103
/*
C ---------------------------------------------
LED RGB - Tabla de Colores
---------------------------------------------
D Programa que hace uso de una funcin llamada
color para generar diversas tonalidades en
I un LED RGB
G Cosas de Mecatrnica y Tienda de Robtica
0 */
//--------------------------------------------------
//Declara puertos de entradas y salidas y variables
//--------------------------------------------------
D int ledRojo = 9; //Declara Pin LED Rojo
int ledVerde=10; //Declara Pin LED Verde
E int ledAzul=11; //Declara Pin LED Azul
//------------------------------------
//Funcion principal
//------------------------------------
void setup() // Se ejecuta cada vez que el Arduino se inicia
P {
pinMode(ledRojo,OUTPUT); //El LED Rojo como una salida
R pinMode(ledVerde,OUTPUT); //El LED Verde como una salida
pinMode(ledAzul,OUTPUT); //El LED Azul como una salida
O }
G //------------------------------------
//Funcion ciclicla
R //------------------------------------
void loop() // Esta funcion se mantiene ejecutando
A { // cuando este energizado el Arduino
M // Llamado a la funcin Color que recibe
// 1er posicion: Intensidad Rojo
A // 2da posicin: Intensidad Verde
// 3ra posicin: Intensidad Azul
C
color(255,0,0); //Rojo
I delay(1000);
color(0,255,0); //Verde
delay(1000);
N
color(0,0,255); //Azul
delay(1000);
color(255,255,255); //Blanco
delay(1000);
color(255,0,255); //Magenta
delay(1000);
color(255,128,0); //Naranja
delay(1000);
}
//------------------------------------
//Funcion color
//------------------------------------
void color(int rojo, int verde, int azul){
//Escritura de PWM del color Rojo
analogWrite(ledRojo, 255-rojo);
//Escritura de PWM del color Verde
analogWrite(ledVerde, 255-verde);
//Escritura de PWM del color Azul
analogWrite(ledAzul, 255-azul);
}
//Fin programa
104
EJERCICIOS
2 El operario del punto anterior se va de vacaciones por lo cual el Sr. Martin esta muy molesto porque no
entiende muy bien como escribir el color separado por comas. Por ello al operario se le ha ocurrido una
gran idea, colocar dos pulsadores:
Pulsador 1 (S1) permite escoger un color dentro de un men (Rojo, Verde o Azul), cada vez que se pulse
S1 el texto por Consola Serial que dice el color debe cambiar, debe tener antirebote para que por cada
pulso dado solo cambie un color. Un ejemplo del pulso dado y el valor mostrado por consola:
Pulsador 2 (S2) permite variar el color de 0 a 255 del ltimo nombre del color que quedo asignado median-
te el Pulsador 1 (S1). Mientras se mantenga pulsado S2 a intervalos de 100ms (milisegundos) la variable de
ese color se debe ir incrementando de uno en uno. Se debe imprimir el nombre del Color (ltimo estado
debido a S1) y a continuacin el valor numrico del color, finalmente el resultado se debe ir viendo refle-
jado en el LED RGB. Por ejemplo de acuerdo al ltimo estado del Pulso 4 y luego se pulsa S2:
Ayudas para resolverlo: Por cada color debes crear dos variables, una para guardar el nombre del color y
la otra para guardar el valor numrico que llevas de ese color.
LED RGB
S1 S2
105
T12 Control ON/OFF de un motor
Materiales
1
1
1
Transistor NPN
Arduino UNO
1
1 Protoboard
Pulsador
Cable USB Tipo AB
1 2 8
Resistencia 1K Conectores MM
Motor DC
ESCANEA CON TU
SMARTPHONE
BUSCA
VIDEOTUTORIAL
T20AB
AS
HD
VISITA LA OPCIN DE
106
P
L
A
N
O
E
S
Q
U
E
M
A
P
1 Cul es el valor 2 Si quiero guardar 3 Este smbolo a R
de esta resistencia? el nmero que que corresponde E
tipo de variable G
debo usar? U
_____ N
_______________ _______________ T
_____M
A
107
/*
C ---------------------------------------------
Control ON/OFF de un motor
---------------------------------------------
D Programa que hace uso de un motor y un pulsador,
mientras se mantenga pulsado, el motor debe
I estar encendido (ON) de lo contrario debe estar
apagado (OFF)
G
Cosas de Mecatrnica y Tienda de Robtica
0
*/
D //--------------------------------------------------
//Declara puertos de entradas y salidas y variables
E //--------------------------------------------------
int pulsador =7; //Declara Pin del pusaldor
int motor=3; //Declara Pin del motor
P //------------------------------------
//Funcion principal
R //------------------------------------
void setup() // Se ejecuta cada vez que el Arduino se inicia
O {
pinMode(pulsador,INPUT); //El pulsador como una entrada
G pinMode(motor,OUTPUT); //El motor como una salida
}
R
A
//------------------------------------
M //Funcion ciclicla
//------------------------------------
A void loop() // Esta funcion se mantiene ejecutando
{ // cuando este energizado el Arduino
C
I // Si el pulsador se encuentra oprimido
if(digitalRead(pulsador) == HIGH){
digitalWrite(motor,HIGH); //Enciende el motor
N
}else{ //si el pulsador no esta oprimido
digitalWrite(motor,LOW); //Apaga el motor
}
}
// Fin programa
108
EJERCICIOS
MI CUADERNO DE APUNTES
109
T13 Control por PWM de un motor
Materiales
1
1
1
Transistor NPN
Arduino UNO 1
Protoboard
Motor DC
1
1 5
ESCANEA CON TU
SMARTPHONE
BUSCA
VIDEOTUTORIAL
T21AB
AS
HD
VISITA LA OPCIN DE
110
P
L
A
N
O
E
S
Q
U
E
M
A
P
1 Cul es el valor 2 Cmo se escri- 3 Este smbolo a R
de esta resistencia? ben los siguientes que corresponde E
nmeros en binario? G
U
7=______ N
_____
_____K 5=______ _______________ T
2=______
A
111
/*
C ---------------------------------------------
Control por PWM de un motor
---------------------------------------------
D Programa que hace uso de un motor y la Consola
serial de Arduino, tiene la posiblidad de
I configurar al motor 5 velocidades distintas,
desde el teclado del PC puedes enviarle la
G velocidad deseada. Las 5 velocidades se configuran
con 5 PWM distintos.
0
Cosas de Mecatrnica y Tienda de Robtica
*/
D //--------------------------------------------------
//Declara puertos de entradas y salidas y variables
E //--------------------------------------------------
int motor=3; //Declara Pin del motor
//------------------------------------
//Funcion principal
//------------------------------------
P void setup() // Se ejecuta cada vez que el Arduino se inicia
{
R Serial.begin(9600); //Inicia la comunicacion serial Arduino-PC
}
O
//------------------------------------
G //Funcion ciclicla
//------------------------------------
R void loop() // Esta funcion se mantiene ejecutando
{ // cuando este energizado el Arduino
A
// Si hay algun valor en la Consola Serial
M if (Serial.available()){
A //Variable donde se guarda el caracter enviado desde teclado
char a = Serial.read();
C
// Si el caracter ingresado esta entre 0 y 5
I if (a>='0' && a<='5'){
//Variable para escalar el valor ingresado a rango de PWM
int velocidad = map(a,'0','5',0,255);
N //Escritura de PWM al motor
analogWrite(motor,velocidad);
//Mensaje para el usuario
Serial.print("El motor esta girando a la velocidad ");
Serial.println(a);
}else{ // Si el caracter ingresado NO esta entre 0 y 5
//Mensaje para el usuario
Serial.print("Velocidad invalida");
Serial.println(a);
}
}
}
//Fin programa
112
EJERCICIOS
Pulsador 1 (S1) permite escoger una velocidad dentro de un men (Velocidad 0 Velocidad 9), cada vez
que se pulse S1 el texto por Consola Serial que dice la velocidad debe cambiar, debe tener antirebote
para que por cada pulso dado solo cambie una velocidad. Un ejemplo del pulso dado y el valor mostrado
por consola:
Pulsador 2 (S2) al pulsar S2 por primera vez el motor debe comenzar a girar a la velocidad escogida me-
diante S1, si se pulsa por segunda vez S2 el motor debe parar. Por Consola serial se debe mostrar
Licuadora girando a la velocidad x o Licuadora detenida segn corresponda.
S1 S2
113
T14 Generar tonos con un buzzer
Materiales
1 1 1
1 1
ESCANEA CON TU
SMARTPHONE
BUSCA
VIDEOTUTORIAL
T22AB
AS
HD
VISITA LA OPCIN DE
114
P
L
A
N
O
E
S
Q
U
E
M
A
P
1 Cul es el valor 2 El switch...case 3 Este smbolo a R
de esta resistencia? es un tipo de qu corresponde E
G
U
_____ N
_______________ _______________
_____M
T
A
115
/*
C ---------------------------------------------
Generar tonos con un buzzer
---------------------------------------------
D Programa que hace uso de un buzzer (chicharra) y un
potencimetro, la idea es generar diversos tonos
I en el buzzer a partir del estado anlogo del
potencimetro. Adems se hace uso de la funcin
G tone que es muy til para generar diversas melodas
0 Cosas de Mecatrnica y Tienda de Robtica
*/
//--------------------------------------------------
D //Declara puertos de entradas y salidas y variables
//--------------------------------------------------
E int buzzer = 9; //Declara Pin del buzzer
int tono = 0; //Declara Pin del potencimetro
//------------------------------------
//Funcion principal
P //------------------------------------
void setup() // Se ejecuta cada vez que el Arduino se inicia
R {
// No se configuran parmetros inciales, pero se debe
O // colocar el encabezado de la funcin setup()
}
G
R //------------------------------------
//Funcion ciclicla
A //------------------------------------
void loop() // Esta funcion se mantiene ejecutando
M { // cuando este energizado el Arduino
A //Variable entera donde se almacena el valor del potencimetro
int sensor = analogRead(tono);
C
//Variable donde se escala la frecuencia de 100 a 5000Hz
I int frecuencia = map(sensor,0,1023,100,5000);
//Variable entera para guardar el tiempo deseado en ms
int duracion = 250;
N
//Funcion tone(), que recibe:
// 1ra posicin: Pin del elemento sonoro
// 2da posicin: Frecuencia deseada en Hz
// 3ra posicin: Duracin del tono
tone(buzzer, frecuencia, duracion);
//Retardo
delay(100);
}
//Fin programa
T 1 Si tienes dificultades para aprender los colores de las resistencias una ayudita
I online no te caera nada mal ;) en Wolfram Alpha puedes hacer esto:
P
S
116
EJERCICIOS
Buzzer
S1 S2
MI CUADERNO DE APUNTES
117
118
Hola, queremos conocer tus A
P
opiniones referente a este ma- O
terial, son de gran ayuda con el R
nimo de seguir mejorando los T
E
contenidos y haciendo stos S
ms claros.
Escrbenos a:
ventas@tiendaderobotica.com
119
Contctenos
tiendaderobotica.com
ventas@tiendaderobotica.com
TdRobotica
TdRobotica ventas@tiendaderobotica.com
CosasdeMecatronica TdRobotica
2692EC3A
120