Libro Kit Basico Arduino
Libro Kit Basico Arduino
Propósito ..................................................................................... 9 T
A
¿Qué voy a aprender? .................................................................... 10 B
Fuente de información .................................................................. 10 L
A
1. Introducción..................
..................................
..............................
............................
............................
.............. 11
D
1A. Computación física.............
...........................
..............................
...............................
.....................
...... 12 E
2. Para tener en cuenta ................................................................. 13 C
2A. Tienda de Robótica ..............
.............................
..............................
..............................
...................
.... 13
O
2B. Cosas de Mecatrónica .............
...........................
..............................
..............................
..................
.... 13 N
2C. Hardware libre .................................................................... 14 T
2D. Software libre ..................................................................... 14 E
2E. Creative commons ................................................................ 14 N
2F. Arduino ............................................................................. 15 I
2G. Fritzing ............................................................................. 15 D
2H. Licencia de la obra ............................................................... 16
O
3. Electrónica ...............
.............................
.............................
..............................
...............................
..................
.. 17
5 Programación ..............
............................
.............................
..............................
...............................
..................
.. 33
6. Arduino .................................................................................. 43
8. Fritzing .................................................................................. 57
9. Tutoriales ............................................................................... 60
T0. Conoce como son los tutoriales
tutoriales ..............
.... ....................
....................
....................
...............
..... 60
T1. Hola Mundo – LED intermitente.............................
intermitente.................. ....................
...................
............
.. 62
T2. Encender un LED con un pulsador ..........
.....................
.....................
...................
................
....... 66
T3. Lectura serial de una entrada digital ..........
....................
....................
...................
.............
.... 70
T4. Lectura serial de una entrada análoga ............................
................. ....................
.............
.... 74
T5. Escritura serial..................................................................... 78
T6. Encender un LED por PWM .............................
.................. ....................
...................
.................
....... 82
T7. Control ON/OFF
ON/OFF con potenciómetro
potenciómetro ..........
....................
....................
...................
.............
.... 86
T8. Control de un LED concon una fotocelda ..........
....................
....................
....................
............
.. 90
T9. Contador de pulsos
pulsos ..........
....................
....................
...................
....................
.....................
.............
... 94
T10. Interruptor magnético para una alarma visual ............................
.....................
............. 98
T11.
T12. LED RGBON/OFF
Control apoyadodedeuntabla de colores ...................................... 102
motor................................................. 106
T13. Control por PWM de un motor ..........
....................
....................
....................
..................
........ 110
T14. Generar tonos con un buzzer.........
...................
.....................
....................
...................
.......... 114
7
PROPÓSITO
Muchas veces pensamos que los temas tecnológicos requieren de gran habi-
lidad técnica y de un gran conocimiento, pero esto no es cierto. Queremos
que con el desarrollo de esta guía entiendas que muchos de esos procesos
tecnológicos son simples de entender y aquellos que son complejos son la
unión de muchos procesos simples.
F Wikipedia es una dede las enciclopedia en la nube más grande que pueden existir,
U puedes encontrar gran variedad de información en distintos idiomas y eres libre de
E usarla para aprender.
N La presente guía incorpora contenido de Wiki-
T pedia (texto e imágenes) con el animo de ex-
E plicar los diversos conceptos que se enuncian.
El contenido de la Wikipedia tomado en esta
D guía ha sido transcrito textualm
textualmente
ente en
en algu-
E nos casos, en otros casos los conceptos se han
reeditado para poder comprender más fácil-
I mente la idea.
N Para referenciar que hemos tomado contenido
F
O de Wikipedia, al lado de cada concepto técnico
vas a encontrar el logo de Wikipedia de esta
R manera podrás leer más contenido si buscas
M ese mismo concepto en la Wikipedia.
A
C Wikipedia es de contenido libre, de manera que todo el texto está disponible
disponible bajo
I la Licencia Creative Commons-Atribución-Compartir Igual 3.0(CC-BY-SA). La mayor
O parte del contenido también está disponible bajo la Licencia de Documentación
N Libre GNU (GFDL). Esto significa que el contenido de Wikipedia se puede distribuir y
enlazar de acuerdo con lo establecido en estas licencias.
10
1. INTRODUCCIÓN
Computación física
La Computación física, significa la construcción de sistemas inter-
activos físicos mediante el uso de software y hardware que pueden
sentir y responder al mundo analógico. Si bien esta definición es
suficientemente amplia para abarcar aspectos como los sistemas
inteligentes de control de tráfico de automóviles o los procesos de
1A automatización de fábricas, en un sentido más amplio, la computa-
ción física es un marco creativo para la comprensión de la relación
de los seres humanos en el mundo digital. En la práctica, a menudo
el término describe el arte hecho a mano, diseño de proyectos DIY
o pasatiempos que utilizan sensores y microcontroladores para tra-
ducir entradas analógicas a sistemas basados en software, y/o con-
trolar dispositivos electromecánicos como motores, servos, ilumi-
nación u otro hardware.
Otras implementaciones de computa-
ción física trabajan con el reconoci-
miento de la voz, la cual se capta e
interpretan sus ondas sonoras a través
de micrófonos u otros dispositivos de
detección de ondas sonoras, también la
visión por computador, que aplica algo-
ritmos a los videos detectados por
algún tipo de cámara. Interfaces tácti-
les son también un ejemplo de la com-
putación física.
El prototipado (crear montajes rápidos con ayuda de una proto-
board y componentes básicos de electrónica) juega un papel impor-
tante en la computación física. Herramientas como Arduino y Frit-
zing son útiles para diseñadores, artistas, estudiantes y en-
tusiastas porque ayudan a elaborar prototipos rápidamente.
12
Tienda de Robótica
La Tienda de Robótica nace
en el 2010 con la idea de
poner a disposición de estu-
diantes, profesionales y afi-
cionados de la robótica 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 Robótica y el sitio web Cosas de Mecatrónica podamos compar-
tir: noticias, eventos, tutoriales, proyectos entre otros. La Tienda de
Robótica 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. Contáctanos para conocer más de nosotros.
Cosas de Mecatrónica
Cosas de Mecatrónica nació en
Enero de 2007, después de mu-
chos intentos dede su
Yesid Hernández creador
hacer pági-
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-
mación y ayudar a crecer a la comunidad Mecatrónica en Español. 2B
En principio nació solo como un sitio en donde se publicara y compartieran
los proyectos mecatrónicos realizados por Ibraim Yesid Hernández Olarte,
ahora busca ser un ambiente colaborativo de todas la personas y organiza-
ciones interesadas en compartir información alrededor de la Mecatrónica.
La participación en el BLOG viene principalmente de los alumnos del SENA,
pero no sólo de ellos y se busca que se cree una comunidad compartiendo
información de pequeños 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 esquemáticos son de
acceso público, ya sea bajo algún tipo de pago o de for-
ma gratuita. La filosofía del software libre (las ideas
sobre la libertad del conocimiento) es aplicable a la del
hardware libre. Se debe recordar en todo momento que
Software libre
El software libre (en inglés free software, aunque esta
denominación también se confunde a veces con "gratis"
por la ambigüedad del término "free" en el idioma
2D inglés, por lo que también se usa "libre software" y
"logical libre") es la denominación 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. Según la Free Software Foundation, el soft-
ware libre se refiere a la libertad de los usua-
rios para ejecutar, copiar, distribuir, estudiar, modificar el software y
distribuirlo modificad
modificado.
o.
Creative commons
Creative Commons (CC) es una organización no
gubernamental sin ánimo de lucro que desarrolla
planes para ayudar a reducir las barreras legales
2E de la creatividad
creatividad,, por medio de nueva legislación
y nuevas tecnologías. Las licencias Creative Com-
mons o CC están inspiradas en la licencia GPL (General Public License) de la Free
Software Foundation, compartiendo buena parte de su filosofía. La idea principal
detrás de ellas es posibilitar un modelo legal ayudado por herramientas informáti-
cas, para así facilitar la distribución y el uso de contenidos.
Existe una serie de licencias Creative Commons, cada una con diferentes configura-
ciones,
circular que permite entregando
en internet, a los autores poder para
libertad decidir la reproducir,
citar, manera en la queobras
crear su obra va a
derivadas y ofrecerla públicamente, bajo ciertas diferentes restricciones.
La licencia de la presente obra se expone
e xpone en la página 16.
14
Arduino
Arduino es una plataforma de electrónica
abierta para la creación de prototipos basa-
da en software y hardware libre, flexibles y
fáciles de usar. Se creó para artistas, diseña-
dores, aficionados y cualquier interesado en
crear entornos u objetos interactivos.
interactivos.
Las placas pueden ser hechas a mano o comprarse montadas de fábrica; el software
puede ser descargado de forma gratuita. Los ficheros de diseño de referencia (CAD)
están disponibles bajo una licencia abierta, así pues eres libre de adaptarlos a tus
necesidades.
www.arduino.cc
Fritzing
Fritzing es libre
electrónico un que
programa de automatización
busca ayudar a diseñadoresde diseño
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
www.creativecommons.o
www.creativecommons.org/licenses/by-nc-sa/
rg/licenses/by-nc-sa/3.0/deed.es
3.0/deed.es
16
3. EELECTRÓNIC
LECTRÓNICA
A
Concepto de electrónica
Estudia y emplea sistemas cuyo funcio-
namiento se basa en la conducción y el
control del flujo de los electrones u
otras partículas cargadas eléctricamen-
eléctricamen-
te.
Voltaje
Voltaje DC
Es el flujo continuo de electrones a través de
un conductor entre dos puntos de distinto potencial. En
la corriente continua las cargas eléctricas circulan siem-
pre en la
l a misma dirección, es continua la corriente man-
tiene siempre la misma polaridad. En la norma sistemá-
tica europea el color negro corresponde al negativo y el
3C rojo al con
positivo positivo
VCC, o+,sencillamente se simboliza
VSS y para el negativo para
con 0V, el
-, GND.
Voltaje AC
Es la corriente eléctrica en la que la magnitud y
dirección varían cíclicamente. La forma de onda de
la corriente alterna más comúnmente utilizada es la
3D de una onda seno.
Corriente
Es el flujo de electrones a través de un conductor o semiconduc-
tor en un sentido. La unidad de medida de ésta es el amperio (A).
Una corriente eléctrica, puesto que se trata de un movimiento de
3E cargas, produce un campo magnético, un fenómeno que puede
aprovecharse en el electroimán, este es el principio de funciona-
miento de un motor.
Resistencia
Ley de Ohm
La ley dice que la corriente (I) que circula por
un conductor eléctrico es directamente proporcional
al voltaje (V) e inversamente proporcional a
la resistencia (R). 3G
La pirámide de la derecha es muy útil para conocer
la fórmula 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 más, tapa I
(Corriente), I va ser igual a V divido R.
Sistemas electrónicos
Un sistema electrónico es un conjunto de circuitos que interact-
úan entre sí para obtener un resultado. Una forma de entender
los sistemas electrónicos consiste en dividirlos en entradas, sali- 3H
das y procesamiento de señal.
Entradas
Las entradas o Inputs: Son sensores (o transductores) electróni-
cos o mecánicos que toman las señales (en forma de tempera-
tura, presión, humedad, contacto, luz, movimiento, pH etc.)
del mundo físico y las convierten en señales de corriente o 3I
voltaje.
Salidas
Las salidas o Outputs: Son actuadores u otros dispositivos (también
transductores) que convierten las señales de corriente o voltaje en
señales físicamente útiles como movimiento, luz, sonido, fuerza,
rotación entre otros.
3J
Por ejemplo: un motor que gire, un LED o sistema de luces que se
encienda
buzzer queautomáticamente cuando esté oscurecien
genere diversos tonos. oscureciendo,
do, un
Procesamiento de señal
Señales electrónicas
Las entradas y salidas de un sistema electrónico serán conside-
radas como las señales variables. En electrónica se trabaja con
variables que se toman en forma de voltaje o corriente, éstas
se pueden denominar comúnmente señales. 3L
Las señales primordialmente pueden ser de dos tipos
descritos a continuación: Digital o análoga
Variable digital
Variable análoga
3O
3P
Divisor de voltaje
Un divisor de voltaje es una configuración de circuito eléc-
trico que reparte el voltaje de una fuente (Vin) entre una
o más resistencias (R1, R2) conectadas en serie (una a
continuación de otra).
3Q
Comunicación serial
Es unadigitales,
datos interfaz de comunicaciones
frecuentemente
frecuentem de
ente utili-
zado por computadores y periféricos,
donde la información es transmiti- 3T
da bit a bit enviando un solo bit a la
vez. Uno de sus usos es monitorear a
través de la pantalla del computador
el estado del periférico
conectado, por ejemplo al pulsar la letra
l etra A en el teclado se debe encender
un LED conectado de manera remota al computador.
ESCANEA CON TU
SMARTPHONE
L BUSCA
A
I T03AB
R ASÍ
O
T D
U H VISITA LA OPCIÓN DE
T
O
E
D
I
V
23
4. COMPONENTES ELECTRÓNICOS
Diversos componentes electrónicos unen sus fuerzas para lograr aplicacio-
nes fantásticas como por ejemplo el televisor de tu casa o el computador,
por dentro de ellos vas e encontrar tarjetas con resistenticas, condensado-
res, circuitos integrados, transistores entre otros.
Microcontrolador
Un microcontrolador (abreviado μC,UC o MCU) es un circuito
integrado programable, capaz de ejecutar las órdenes grabadas
en su memoria. Está compuesto de varios bloques funcionales,
los cuales cumplen una tarea específica. Un microcontrolador
incluye en su interior las tres unidades funcionales principales:
unidad central de procesamiento (CPU), memoria y periféricos de entrada y salida
(I/O).
Protoboard
Es una placa reutilizable usada para construir prototipos de circuitos electrónicos sin
soldadura. Compuestas por bloques de plástico perforados y numerosas láminas
delgadas de una aleación de cobre, estaño y fósforo
4B
Resistencia
4C
Símbolo Componente
Z _____Ω _____Ω
26
4D
Ejemplo
Multiplicador: verde (100000)
Tolerancia: plateado (±10%)
27
Diodo
4E
Símbolo Componente
Un diodo es un componente electrónico de dos terminales que permite la circulación
de la corriente eléctrica a través de él en un solo sentido. Tiene dos partes: el cáto-
do y el ánodo.
Transistor
4F
Símbolo Componente
El transistor es un dispositivo electrónico semiconductor que cumple funciones de
amplificador,, oscilador, conmutador o rectificador. Tiene tres partes: la base (B), el
amplificador
emisor (E) y colector (C).
Condensador
4G
Símbolo Componente
Un condensador o capacitor es un dispositivo utilizado en electrónica, capaz de
almacenar energía sustentando un campo eléctrico. Está formado por un par de
superficies conductoras, generalmente en forma de láminas o placas, en situación
de influencia total separadas por un material dieléctrico o por el vacío.
Las placas, sometidas a una diferencia de potencial, adquieren una deter-
minada carga eléctrica, positiva
positiva en una de ellas y negativa en la otra.
28
LED
Símbolo Componente
4H
Un LED (Diodo emisor de luz, también "diodo luminoso") es un diodo semiconductor
que emite luz. Se usan como indicadores en muchos dispositivos,
y cada vez con mucha más frecuencia en iluminación. Los LEDs
presentan muchas ventajas sobre las fuentes de luz incandescen-
te como un consumo de energía mucho menor, mayor tiempo de
vida, menor tamaño, gran durabilidad y fiabilidad.
LED RGB
4I
Símbolo Componente
Pulsador
Símbolo Componente
4J
Un botón o pulsador es utilizado para activar alguna función. Los botones son por lo
general activados al ser pulsados, normalmente con un dedo. Un botón de un dispo-
sitivo electrónico
su interior funciona
tiene dos por lo
contactos, si general como un NA
es un dispositivo interruptor eléctrico,
(normalmente es decir en
abier-
to) o NC (normalmente cerrado), con lo que al pulsarlo se activará la fun-
ción inversa de la que en ese momento este realizando.
realizando.
29
Reed switch
4K
Símbolo Componente
Potenciómetro
4L
Símbolo Componente
Un potenciómetro 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
electrónicos. El usuario acciona sobre ellos para variar los parámetros
normales de funcionamiento.
funcionamiento. Por ejemplo, el volumen de un radio.
Fotocelda
4M
Símbolo Componente
Es una resistencia, cuyo valor en ohmios varía ante las variacion
variaciones
es de la luz inciden-
te. Una fotocelda presenta un bajo valor de su resistencia ante la presencia de luz y
un alto valor de resiste
resistencia
ncia ante la ausencia de luz.
Zumbador o buzzer
4N
Símbolo Componente
El zumbador, buzzer en inglés, es un transductor electroacústico que produce un
sonido o zumbido continuo o intermitente de un mismo tono. Sirve como mecanismo
de señalización o aviso, y son utilizados en múltiples sistemas como en automóviles
o en electrodomésticos. Inicialmente este dispositivo estaba basado en un sistema
electromecánico que era similar a una campana eléctrica pero sin el badajo metáli-
co, el cual imitab
imitabaa el sonido de una campana.
Motor DC
4O
Símbolo Componente
El motor de corriente continua (DC) es una máquina que convierte la energía eléc-
trica en mecánica, provocando un movimiento rotatorio. Esta máquina de corriente
continua es una de las más versátiles. Su fácil control de posición, paro y velocidad
la han convertido en una de las mejores opciones en aplicaciones de con-
trol y automatización de procesos. Por ejemplo, los puedes encontrar en
la tracción de los carros de juguetes de pilas o en las llantas de los robots.
ESCANEA CON TU
SMARTPHONE
L BUSCA
A
I T05AB
R ASÍ
O
T D
U H VISITA LA OPCIÓN DE
T
O
E
D
I
V
31
5. PROGRAMACIÓN
Concepto de programación
A medida que la complejidad de las tareas que realizaban las computadoras aumen-
taba, se hizo necesario disponer de un método sencillo para programar. Entonces,
se crearon los lenguajes de alto nivel. Mientras que una tarea tan trivial como multi-
plicar dos números puede necesitar un conjunto de instrucciones en len-
guaje ensamblador,
ensamblador, en un lenguaje de alto nivel bastará con sólo una.
33
Lenguaje de programación
Un lenguaje de programación es un idioma artificial
diseñado para expresar operaciones que pueden ser
llevadas a cabo por máquinas como los computadores.
Pueden usarse para crear programas que controlen el
5B comportamiento físico y lógico de una máquina, para
expresar algoritmos con precisión, o como modo de
comunicación humana.
Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que
definen su estructura y el signific
significado
ado de sus elementos y expresiones. Al proceso por
el cual se escribe, se prueba, se depura, se compila y se mantiene el códi-
go fuente de un programa informático se le llama programac
programación.
ión.
Lenguaje máquina
El Lenguaje de máquina es el sistema de códigos
directamente interpretable por un circuito micro-
programable, como el microprocesador de un com-
putador o un microcontrolador. Este lenguaje está
5C compuesto por un conjunto de instrucciones que
determinan acciones a ser tomadas por la máqui-
na. Estas instrucciones son normalmente ejecuta-
das en secuencia, con eventuales cambios de flujo causados por el propio programa
o eventos externos.
El lenguaje máquina trabaja con dos niveles de voltaje. Dichos niveles, por abstrac-
ción, se simbolizan con el cero (0) y el uno (1), por eso el lenguaje de máquina sólo
utiliza dichos signos. Esto permite el empleo de las teorías del álgebra
booleana y del sistema binario en el diseño de este tipo de circuitos y en
su programación.
Lenguaje emsamblador
El lenguaje ensamblador o assembler es un lenguaje de
programación de bajo nivel para los computadores, mi-
crocontroladores, y otros circuitos integrados programa-
bles. Implementa una representación simbólica de los
5D códigos de máquina. Esta representación es usualmente
definida por el fabricante de hardware, y está basada en
códigos mnemotécnicos que simbolizan los pasos de
procesamiento
procesamie nto (las instrucci
instrucciones).
ones).
Algoritmo
Estructuras 5G
Variables
Operadores matemáticos,
matemáticos, lógicos y booleanos
Funciones
35
Estructuras
Son dos funciones principales que debe tener todo programa en Arduino:
setup(){
5H }
Código de configuración inicial, solo se ejecuta una vez.
loop(){
}
Esta función se ejecuta luego del setup(), se mantiene ejecutándose hasta que se
des- energice o desconecte el Arduino.
Variables
Es un dato o conjunto de datos que cambia su valor con la ejecución del program
programa.
a.
Estos son algunos tipos de variables y los más utilizados en esta guía. Para más tipos
visita:
arduino.cc/en/Reference/HomePage
Operadores booleanos
Usados generalmente
generalmente dentro del condicional If
5J && (y)
If (a
(a || b)
|| (o)
! (negación
(negación))
Operadores de comparación
Usados generalmente dentro del condicional If y sobre el For y While
5K
!= (diferente de)
< (menor que)
<= (menor o igual)
>= (mayor o igual)
If (a
(a == b)
36
Operadores matemáticos
Se aplican al manejo de variables, condicionales y ciclos
= (asignar) - (resta)
% (módulo) * (multiplicación) 5L
+ (suma) / (división)
Estructuras de control
Son instrucciones que nos permiten tomar decisiones y hacer diversas repeticiones
de acuerdo a unos parámetros, dentro de las más importan
importantes
tes podemos destacar:
If 5M
Switch/case
For
While
Condicionales
Ideales para tomar decisiones luego de evaluar las condiciones lógicas:
If (Si) Switch/case (Casos)
5N
if (entrada < 500
500)) switch (var
(var) {
{ case 1:
// acción A // acción A
} else break;
{ case 2:
// acción B // acción B
} break;
default:
// acción C
}
Ciclos
Ideales para repetir lo que se encuentre dentro de ellos
For (por) While (mientras)
5O
for( int a=0; a>
a>10; a++
a++ ) while ( var < 200
200)) {
{
// acción a repetir // acción
var++
var++;; a repetir
} }
37
Funciones
Una función es un conjunto de líneas de código
que realizan una tarea específica y puede retor-
nar un valor. Las funciones pueden tomar pará-
metros que modifiquen su funcionamiento. Las
5P funciones son utilizadas para descomponer gran-
des problemas en tareas simples y para imple-
mentar operaciones que son comúnmente utili-
zadas durante un programa y de esta manera
reducir la cantidad de código.
Cuando una función es invocada se le pasa el
control a la misma, una vez que ésta finalizó con su tarea el control es devuelto al
punto desde el cual la función fue llamada.
Funciones digitales
Orientas a revisar el estado y la configuraci
configuración
ón de las entradas y salidas digitales
digitales
pinMode()
pinMode(pin,modo)
pinMode (13
13,,OUTPUT);
pinMode (a,INPUT);
digitalRead() digitalWrite()
digitalWrite (13
13,,LOW);
____________
_____________
_ ____________
_____________
_
38
Funciones análogas
Ideales para la lectura y escritura de valores análogos
EJERCICIOS
1
Relaciona los siguientes términos, cada letra tiene tres términos asociados:
G– Análogo digitalRead()
ESCANEA CON TU
SMARTPHONE
L BUSCA
A
I T04AB
R ASÍ
O
T D
U H VISITA LA OPCIÓN DE
T
O
E
D
I
V
39
ES - setup()
- loop() +Operadores de comparación
- == (igual que)
T - ! = (diferente
(diferente de)
+Estructuras de control - < (menor que)
R - if - > (mayor que)
U - if...else - <= (menor o igual a)
C - for - >= (mayor o igual a)
- switch case
T
- while +Operadores booleanos
U - do... while - && (y)
R - break - || (o)
A - continue -! (no)
- return
- goto
+Acceso con apuntadores
+Sintaxis - * eliminar la referencia del opera-
dor
-; (punto y coma)
- & operador de referencia
-{} (llaves))
(llaves
-// (comentario de una sola línea)
- / * * / (comentario de varias líneas)
+Operadores bit a bit
-& (bit a bit AND)
- # define
- # includ
include e -| (bit a bit OR)
-^ (bit a bit XOR)
-~ (bit a bit NOT)
+Operadores matemáticos
- << (a la izquierda BitShift)
- = (operador de asignación)
- >> (a la derecha BitShift)
- + (suma)
- - (resta)
- * (multiplicación) +Operadores compuestos
- / (división) - + + (incremento)
- % (módulo) -- -- (decremento)
(decremento)
+ = (compuesto adición)
- - = (compuesto substracción)
- * = (compuesto multiplicación)
- / = (compuesto división)
-& = (compuesto bit a bit AND)
- | = (compuesto bit a bit OR)
V +Constantes +Utilidades
A - HIGH | LOW
- byte - sizeof()
- int
R - INPUT | OUTPUT
- word
+Conversión
- char()
I - true | false
- long
- Constantes enteras - byte()
A - Constantes flotante
- unsigned long
- int()
- float
B +Tipos de datos - double - word()
L - void - string - arreglo char - long()
E - boolean - String - objeto - float()
- char
S - array
40
F
+Digital I/O
- pinMode() U
- digitalWrite() N
- digital
digitalRead()
Read()
+Números aleatorios C
- randomSeed() I
+Analogo I/O - random()
- analogReference() O
- analogRead() N
- analogWrite()
analogWrite() - PWM +Bits y Bytes E
- 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 líquido - control de LCD
- SD - lectura y escritura de tarjetas SD
R
- Servo - control de servomotores E
- SPI - comunicación por el bus SPI R
- Paso a paso - control de motores
- Wire - enviar y recibir datos TWI/I2C
Í
A
… y muchas más visita S
arduino.cc
41
6. ARDUINO
Proyecto Arduino
El proyecto comenzó en Ivrea, Italia (el sitio de la compañía de
computadoras Olivetti), en el año 2005 con el fin de crear un
dispositivoo para estudiant
dispositiv estudiantes
es para el control integrado de proyec-
tos de diseño e interacción, con la finalidad de que fuera más
barato que los sistemas de creación de prototipos disponibles en
ese
des entonces.
de ArduinoA partir de mayo
han sido de 2011,Los
distribuidas. más de 300.000Massimo
fundadores unida-
Banzi y David Cuartielles nombraron el proyecto como Arduino de Ivrea, un protago- 6A
nista histórico de la ciudad. En primer lugar "Arduino" es un termino masculino ita-
liano, que significa "gran amigo".
ción Ivrea,
se basa en bajo la supervisi
supervisión
Processing ón de Massimo
y su entorno Banzi y integrado
de desarrollo Casey Reas. Por otra
creado por parte, Wiringy
Casey Reas
Ben Fry.
Familia Arduino
Como toda familia que se respete, tenemos de los integrantes más grandes a los más
pequeños, te invitamos a conocerlos:
Programación vía
Programación Para conectar el Para artistas y
bluetooth Android manejar e-textils
ESCANEA CON TU
SMARTPHONE
L BUSCA
A
I T01AB
R ASÍ
O
T D
U H VISITA LA OPCIÓN DE
T
O
E
D
I
V
45
2 3
5
6 4
1
8
10
11 9
9
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
14 Entradas análogas
ESCANEA CON TU
SMARTPHONE
L BUSCA
A
I T02AB
R ASÍ
O
T D
U H VISITA LA OPCIÓN DE
T
O
E
D
I
V
47
6E Instalando drivers
MAC y LINUX
Si tu de
ción computador tiene que
LINUX, lo único de sistema operativo
debes hacer es: alguna versión de Mac o una distribu-
1 Conectar la placa Arduino Uno al PC
WINDOWS 7, Vista y XP
Si tu computador tiene de sistema operativo Windows en versión
7, Vista o XP, debes realizar la siguiente sucesión de sencillos
pasos:
3 Conectar la placa Arduino Uno al PC y ver este aviso. No nos debemos pre-
ocupar
WINDOWS 7, Vista y XP
6
Ingresar a la opción Buscar software de controlador en el equipo
9
Recibimos la confirmación del Puerto COM asignado, este número de Puerto
COM es muy importante tenerlo en cuenta a la hora de programar.
ESCANEA CON TU
SMARTPHONE
L BUSCA
A
I T07AB
R ASÍ
O
T D
U
T H VISITA LA OPCIÓN DE
O
E
D
I
V
50
6F
1 Puerto COM
51
3
Consola serial
Ejercicio
A partir del ejemplo cargado en la sección anterior, ahora te proponemos que modi-
fiques un poco el programa, para ello en las dos líneas de código 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 BÁSICO
Descripción
La Tienda de Robótica trae el Kit Básico de
Arduino que comprende una cuidadosa selec-
ción de los mejores componentes para iniciar
en el mundo de Arduino. Es una herramienta
diseñada para los principiantes que cuenta
7A
con todo lo necesario para desarrollar progra-
mas que contribuyan al aprendizaje y manejo
del Arduino.
KIT BÁSICO 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 rápidos MM
55
Fotos
7C
S
E
T
N
E
N
O
P
M
O
C
E
D
E
U
G
E
I
L
P
S
E
D
EN SU CAJA DE KIT
56
8. FRITZING
Software
Fritzing permite a los diseñadores, artistas, investigadores y aficionados
documentar sus prototipos basados en Arduino y crear esquemas de cir-
cuitos impresos para su posterio
posteriorr fabricación.
8A
Vista protoboard
/t
S
c
u
h
il
f
8B
D
E
a
-l
s
e
L r
t
s e
u
o
l e t
s
e e
g
d 0
6 p
t
u
d x
u r
r
a t e
d
i
r
o n
t
i
c p
s
/
o
l d
o
c
t
a e
e ilz
j
v a
o
r
p
a
l R
e
g
/
r
e .o
g
d n i
e z ti
t r
s f
u
j
e
d
A o
d
a
m
o
T
57
Vista esquema
8C
8D
58
EJERCICIO MÁSTER
fritzing.org/download/ 8E
DIY
59
9. TUTORIALES
Estos tutoriales son diseñados con ejercicios prácticos que permiten com-
prender el concepto y de manera constante se está verificando lo aprendido
mediante preguntas.
preguntas. Finalmente
Finalmente se plantean
plantean ejercicios
ejercicios que involucran
involucran ca-
sos de la vida real.
A
E
F
C
G
D
60
G Prueba tu aprendizaje
H Código de programaci
programación
ón
paso a paso
H
I Tips de mucha utilidad
J Ejercicios aplicados
K
61
Materiales
1 1
ESCANEA CON TU
SMARTPHONE
L BUSCA
A
I
R ASÍ
O
T D
U H
T
O VISITA LA OPCIÓN DE
E
D
I
V
62
P
L
A
N
O
ES
Q
U
E
M
A
P
1— ¿Cuál es el valor 2— ¿Qué hace está 3— Completa R
de esta resistencia? función? E
G
digitalRead()
U
_____Ω _______________
____________
____________
_______
___
________
___
I = ___
R? N
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
//Función principal
E
//------------------------------------
void setup
setup()
() // Se ejecuta cada vez que el Arduino se inicia
{
P
pinMode(
pinMode (13
13,OUTPUT
,OUTPUT)); // Inicializa el pin 13 como una salida
R
}
O
G
R
//------------------------------------
A
//Función cíclica
M
A //------------------------------------
void loop
loop()
() // Esta función se mantiene ejecutando
C
{ // cuando este energizado el Arduino
I
digitalWrite(
digitalWrite (13
13,HIGH
,HIGH)
); // Enciende el LED
Ó
delay(
delay (1000
1000)); // Temporiza un segundo (1s = 1000ms)
N
digitalWrite(
digitalWrite (13
13,LOW
,LOW)); // Apaga el LED
delay(
delay (1000
1000)); // Temporiza un segundo (1s = 1000ms)
}
2– Las señales digitales (Encendido o apagado) están muy presentes en todos los
sistemas, y muchos sensores trabajan sobre este principio, te invitamos a conocer
algunos:
Sensor PIR
Detecta movimiento
Sensor óptico SHARP
Detecta la presencia de algún
objeto en un rango de 5cm
64
EJERCICIOS
1
A partir del código de programación explicado anteriormente, queremos que
un LED prenda de manera intermitente de la siguiente manera:
Tip: 1s = 1000ms
2
La empresa de automatización NRJ Inc. te contrata para hacer un montaje de
un LED Intermitente en una placa Arduino UNO, con el único requisito de que
el LED debe estar ubicado en el Pin 5, ellos muy amablemente te han facilita-
do el esquema, tu tarea es:
3
Un Strober es un bombillo que prende y apaga muy rápido,
muy usado en las fiestas, tu misión es realizar tu strober
casero con un LED, con el mismo esquema montado en este
tutorial.
MI CUADERNO DE APUNTES
65
Materiales
1
1
1
LED Amarillo
Arduino UNO 1
Protoboard
Pulsador
1
1 4
ESCANEA CON TU
SMARTPHONE
L BUSCA
A
I T10AB
R ASÍ
O
T D
U
T
O H VISITA LA OPCIÓN DE
E
D
I
V
66
P
L
A
N
O
E
S
Q
U
E
M
A
P
1— ¿Cuál es el valor 2— ¿Qué hace está 3— Un ejemplo de R
de esta resistencia? función? 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 Mecatrónica y Tienda de Robótica
0
*/
//------------------------------------
D //Declara puertos de entradas y salidas
//------------------------------------
E int pulsador
pulsador=
=2; //Pin donde se encuentra el pulsador, entrada
int led
led=
=13
13;
; //Pin donde se encuentra el LED, salida
//------------------------------------
P //Funcion principal
//------------------------------------
R void setup
setup()
() // Se ejecuta cada vez que el Arduino se inicia
{
O pinMode(
pinMode (pulsador, INPUT); //Configurar el pulsador como una entrada
G pinMode(
pinMode (led,OUTPUT); //Configurar el LED como una salida
}
R
A //------------------------------------
//Funcion ciclicla
M
//------------------------------------
void loop
loop()
() // Esta funcion se mantiene ejecutando
A { // 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
digitalWrite(
}
else
{
//Pulsador NO oprimido
digitalWrite(
digitalWrite (led,LOW); //Apaga el LED
}
}
//Fin programa
2– Todas la instrucciones
totalmente documentadasdecon
documentadas programación para de
claros ejemplos Arduino, se utilizan,
cómo se encuentrante
invitamos a que visites: arduino.cc/en/Reference/HomePage
68
EJERCICIOS
1
La multinacional francesa Flante experta en ma-
quinaria industrial te ha contratado para que auto-
matices una máquina cortadora de papel. La condi-
ción principal es que el operario de la máquina
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 máquina, los dos pulsadores (S1 y S2)
y el LED rojo simula la cuchilla cortadora.
S1 S2
MI CUADERNO DE APUNTES
69
Materiales
1
1
Arduino UNO
Pulsador Protoboard
1
1
4
Resistencia 1K
Cable USB Tipo AB
Conectores MM
ESCANEA CON TU
SMARTPHONE
L BUSCA
A
I T11AB
R ASÍ
O
T D
U
T
O H VISITA LA OPCIÓN DE
E
D
I
V
70
P
L
A
N
O
E
S
Q
U
E
M
A
P
1— ¿Cuál es el valor 2— ¿Qué hace está 3— Este símbolo a R
de esta resistencia? función? que correspond
corresponde
e 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 Mecatrónica y Tienda de Robótica
0 */
//------------------------------------
//Declara puertos de entradas y salidas
D //------------------------------------
int boton
boton==2; //Pin donde se encuentra el pulsador, entrada
E //------------------------------------
//Funcion principal
//------------------------------------
void setup
setup()
() // Se ejecuta cada vez que el Arduino se inicia
{
P //Configuración
pinMode(
pinMode (boton,INPUT ); //Configurar el boton como una entrada
R }
Serial. begin(9600
9600)); //Inicia comunicación serial
O
G //------------------------------------
//Funcion ciclicla
R //------------------------------------
void loop
loop()
() // Esta funcion se mantiene ejecutando
A { // cuando este energizado el Arduino
I // Pulsado
Serial.println("Pulsado"
"Pulsado")); //Imprime en la consola serial
Ó }
else
// "Pulsado"
N {
// No esta pulsado
Serial.println("NO Pulsado")
Pulsado"); //Imprime en la consola serial
} // "NO Pulsado"
delay(
delay(100
100)
); //Retardo para la visualización de datos en la consola
}
//Fin programa
4 100
2– Para recordar
5 101
6 110
7 111
- Para leer una señal digital usa: digitalRead(
digitalRead(numeroPin
numeroPin);
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 líquido y el otro sensor indica si la botella
ya tiene la tapa. Para este caso simularemos los dos
sensores por medio de dos
dos pulsadores (S1 y S2).
Unas luces
nas son las navideñas
siguientes:moder-
mien-
tras se mantenga pulsado S1
S2 una variable entera inicializa-
S1
da en 0 se comienza a incre-
mentar de 20 en 20, al soltar
S1 la variable para de incre-
mentarse, cuando se pulse S2
el valor de la variable se
debe cargar a un ―Hola
MI CUADERNO DE APUNTES
73
Materiales
1
1
1
Arduino UNO
Protoboard
1
Potenciómetro
Potenciómetro 10K
10 K
3
ESCANEA CON TU
SMARTPHONE
L BUSCA
A
I T12AB
R ASÍ
O
T D
U
T
O H VISITA LA OPCIÓN DE
E
D
I
V
74
P
L
A
N
O
E
S
Q
U
E
M
A
P
1— ¿Cuál es el valor 2— ¿Qué hace está 3— Este símbolo a R
de esta resistencia? función? que correspond
corresponde
e E
G
analogRead()
U
_____Ω ____________
_______________
___ N
____________
_______________
___
_____KΩ ____________
_______________
___ T
A
75
C /*
--------------------------------------
Ó Lectura serial de entrada análoga
D --------------------------------------
*/
D
//------------------------------------
E //Funcion principal
//------------------------------------
void setup
setup()
() // Se ejecuta cada vez que el Arduino se inicia
{
P Serial. begin(9600
9600)); //Inicia comunicación serial
}
R
O //------------------------------------
//Funcion ciclicla
G //------------------------------------
R void loop
loop()
() // Esta funcion se mantiene ejecutando
{ // cuando este energizado el Arduino
A
//Guardar en una variable entera el valor del potenciómetro 0 a 1024
M
A int valor
valor== analogRead
analogRead(
(A0);
//Fin programa
2– Para recordar
- Para leer una señal análoga usa: analogRead(
analogRead(numeroPin
numeroPin);
- Para escribir una señal análoga de PWM usa: analogWrite(
analogWrite(numeroPin
numeroPin, valor);
EJERCICIOS
MI CUADERNO DE APUNTES
77
T5 Escritura serial
Materiales
1 1
ESCANEA CON TU
SMARTPHONE
L BUSCA
A
I T13AB
R ASÍ
O
T D
U
T
O H VISITA LA OPCIÓN DE
E
D
I
V
78
P
L
A
N
O
E
S
Q
U
E
M
A
P
1— ¿Cuál es el valor 2— ¿Qué hace está 3— Nombra 4 tipos R
de esta resistencia? función? 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 Mecatrónica y Tienda de Robótica
0
*/
//--------------------------------------------------
D //Declara puertos de entradas y salidas y variables
//--------------------------------------------------
E int led = 13
char leer
leer;
;
13;
; //Pin donde se encuentra el LED, salida
//Variable donde se almacena la letra
boolean prendido=false; //Estado LED la primera vez, apagado
//------------------------------------
P //Funcion principal
//------------------------------------
R void setup
{
setup()
() // Se ejecuta cada vez que el Arduino se inicia
O Serial.begin(9600
pinMode(
pinMode
9600)
); //Inicia comunicación serial
(led, OUTPUT); //Configurar el LED como una salida
G }
R //------------------------------------
A //Funcion ciclicla
//------------------------------------
void loop
loop()
() // Esta funcion se mantiene ejecutando
{ // cuando este energizado el Arduino
M
A //Guardar en una variable el valor de la consola serial
C leer=Serial.
leer= read()
Serial.read ();
;
T 1– Las tablas booleanas son muy útiles para entender la lógica de los programas,
I ¿sabes cuál 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
Materiales
1
1
1
LED Amarillo
Arduino UNO
Protoboard
1
1
ESCANEA CON TU
SMARTPHONE
L BUSCA
A
I T14AB
R ASÍ
O
T D
U
T
O H VISITA LA OPCIÓN DE
E
D
I
V
82
P
L
A
N
O
E
S
Q
U
E
M
A
P
1— ¿Cuál es el valor 2— ¿Qué hace está 3— A que corres- R
de esta resistencia? función? 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 máximo punto de brillo comienza a apagarse
I proporcionalmente.
proporcionalme nte.
G Cosas de Mecatrónica y Tienda de Robótica
0 */
//--------------------------------------------------
//Declara puertos de entradas y salidas y variables
D //--------------------------------------------------
int brillo = 0; //Variable de brillo inicia en 0
E int variacion = 5;
int led = 9;
//Variable de incremento configurada de 5 en 5
//Pin donde se encuentra el LED, salida
//------------------------------------
//Funcion principal
P //------------------------------------
void setup () // Se ejecuta cada vez que el Arduino se inicia
R {
pinMode(
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
//Fin programa
PWM
LED Servomotor
Variar la intensidad de Variar la posición en
luz grados
84
EJERCICIOS
MI CUADERNO DE APUNTES
85
Materiales
1
1
LED Verde 1
1
Arduino UNO
Protoboard
1
Potenciómetro
Potenciómetro 10K
10 K
1 3
ESCANEA CON TU
SMARTPHONE
L BUSCA
A
I T15AB
R ASÍ
O
T D
U
T
O H VISITA LA OPCIÓN DE
E
D
I
V
86
P
L
A
N
O
E
S
Q
U
E
M
A
P
1— ¿Cuál es el valor 2— ¿Para que sirve 3— Este símbolo a R
de esta resistencia? el operador? que correspond
corresponde
e E
G
++
U
_____Ω ____________
_______________
___ N
_____KΩ ____________
_______________
___ ____________
_______________
___ T
A
87
C /*
---------------------------------------------
Ó Control ON/OFF con potenciómetro
---------------------------------------------
D
Programa que enciende un LED cuando el valor de la entrada
I análoga comandada por el potenciómetro esta en cierto valor,
G cuando este valor cambia el LED se apaga, es un sistema con
control ON/OFF
0
Cosas de Mecatrónica y Tienda de Robótica
*/
D //------------------------------------
//Funcion principal
E //------------------------------------
void setup
setup()
() // Se ejecuta cada vez que el Arduino se inicia
{
Serial.begin(9600
9600)); //Inicia comunicación serial
pinMode(
pinMode (13
13,OUTPUT
,OUTPUT)); //Configurar el pin 13 como una salida
P }
R //------------------------------------
//Funcion ciclicla
O //------------------------------------
G void loop
{
loop()
() // Esta funcion se mantiene ejecutando
// cuando este energizado el Arduino
R
//Guardar en una variable el valor de la lectura análoga
A int valor = analogRead(
analogRead(A0);
T
I
1– Debes tener mucha precaución 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 metálica, por ejem-
plo una mesa, es posible que la placa
se dañe 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
sintéticos, madera o vidrio. Este es un
consejo para que cuides tu placa.
88
EJERCICIOS
Materiales
1 1
1
LED Verde
Arduino UNO
1 1 Protoboard
Fotocelda
Cable USB Tipo AB
1 1 5
ESCANEA CON TU
SMARTPHONE
L BUSCA
A
I T16AB
R ASÍ
O
T D
U
T H VISITA LA OPCIÓN DE
O
E
D
I
V
90
P
L
A
N
O
E
S
Q
U
E
M
A
P
1— ¿Cuál es el valor 2— La letra A se 3— Este símbolo a R
de esta resistencia? guarda en una va- que correspond
corresponde
e 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 Mecatrónica y Tienda de Robótica
0 */
//------------------------------------
//Funcion principal
//------------------------------------
void setup
setup()
() // Se ejecuta cada vez que el Arduino se inicia
D {
Serial.begin(9600
9600)); //Inicia comunicación serial
E }
pinMode(
pinMode(9,OUTPUT
,OUTPUT)
); //Configurar el pin 9 como una salida de PWM
//------------------------------------
//Funcion ciclicla
//------------------------------------
P void loop
{
loop()
() // Esta funcion se mantiene ejecutando
// cuando este energizado el Arduino
R //Guardar en una variable el valor de la lectura análoga de la
O // fotocelda
int foto = analogRead
analogRead((A0);
G //Verifica el valor máximo y realizar una conversión
R int conversion = 780 - foto
foto;
;
T 1– Piensa por un momento en dónde puedes encontrar una fotocelda, éstos son
I algunos ejemplos:
P
S
Calculadora Cámara digital
Cargar batería y apaga- Verifica si hay necesi-
do automático dad de foto con flash
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 posición de un potenciómetro (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 más junto posible y los
enfrentes, como si los dos se fueran a mirar de frente. Por consola serial debes ir mostran-
do la lectura
ejemplo de lade luz de
salida porlaconsola:
fotocelda, esta lectura de
Concentración debe
luzser
57%en porcentaje de 0% a 100%. Un
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
L BUSCA
A
I T17AB
R ASÍ
O
T D
U
T H VISITA LA OPCIÓN DE
O
E
D
V
94
P
L
A
N
O
E
S
Q
U
E
M
A
P
1— ¿Cuál es el valor 2— ¿Cuáles son los 3— Este símbolo a R
de esta resistencia? estados de una que correspond
corresponde
e E
variable booleana? G
U
_____Ω a._______
____________
______
_
_________
_________ N
b.______
_____________
_______ T
_____KΩ
A
95
/*
C ---------------------------------------------
Contador de pulsos
Ó ---------------------------------------------
D Programa que muestra por pantalla (consola serial) el número
de veces que el pulsador ha sido presionado, se realiza un
I proceso que de acuerdo al número
núm ero de pulsaciones
pulsaci ones se enciende
encien de
un LED,
G
Cosas de Mecatrónica y Tienda de Robótica
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
setup()
() // Se ejecuta cada vez que el Arduino se inicia
{
P Serial.begin(9600
pinMode(
pinMode
9600)
(2,INPUT
,INPUT)
);
); //Inicia comunicación serial
//Configura el pin 2 como una entrada, pulsador
R }
pinMode(
pinMode(13
13,OUTPUT
,OUTPUT)); //Configur
//Configura
a el pin 13 como una salida, LED
O //------------------------------------
G //Funcion ciclicla
//------------------------------------
R void loop
{
loop()
() // Esta funcion se mantiene ejecutando
// cuando este energizado el Arduino
A // Si el pulsador esta oprimido
if ( digitalRead
digitalRead(
(2) == HIGH )
{
M
A // Si el pulsador no esta oprimido, flanco de bajada
if ( digitalRead
digitalRead((2) == LOW )
C {
conta++
conta++;
; //Incrementa el contador
I Serial.println(conta); //Imprime el valor por consola
delay (100
100)); // Retardo
Ó }
}
}
//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
Botón
97
Materiales
1
1
1
LED Verde
Arduino UNO 1
Protoboard
Reed switch
1
1 4
ESCANEA CON TU
SMARTPHONE
L BUSCA
A
I T18AB
R ASÍ
O
T D
U
T H VISITA LA OPCIÓN DE
O
E
D
I
V
98
P
L
A
N
O
E
S
Q
U
E
M
A
P
1— ¿Cuál es el valor 2— ¿Qué recibe la 3— Este símbolo a R
de esta resistencia? función delay()? que correspond
corresponde
e E
G
U
_____Ω ____________
_______________
___ N
____________
____________ T
_____KΩ
A
99
/*
C ---------------------------------------------
Interruptor magnético - Ladrón en casa
Ó ---------------------------------------------
D Programa que genera una alarma visual con un LED
I a partir de un campo magnético generado a un
reed switch.
G Cosas de Mecatrónica y Tienda de Robótica
0 */
//--------------------------------------------------
//Declara puertos de entradas y salidas y variables
//--------------------------------------------------
D int contacto = 2; //Pin asignado al reed switch
E int led
led== 13;
13; //Pin asignado al LED
//------------------------------------
//Funcion principal
//------------------------------------
void setup
setup()
() // Se ejecuta cada vez que el Arduino se inicia
P {
pinMode(
pinMode(contacto,INPUT ); //El reed switch como una entrada
R pinMode(
pinMode(led, OUTPUT); //El LED como una salida
O }
G //------------------------------------
//Funcion ciclicla
R //------------------------------------
void loop
loop()
() // Esta funcion se mantiene ejecutando
A { // cuando este energizado el Arduino
//
if Si el iman se acerca )al reed){ switch
M
A
(digitalRead (contacto ==LOW
//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=
a=0; a
a<<50
50;; a++
a++){
){
Ó digitalWrite(
digitalWrite
delay(50
delay( 50)
(led,HIGH ); //Prende el LED
); //Tiempo
N digitalWrite(
digitalWrite
delay(
delay (50
50)
(led,LOW ); //Apaga el LED
); //Tiempo
}
// Si el iman esta lejos del reed switch
}else{
digitalWrite(
digitalWrite (led,LOW ); //Mantiene apagado el LED
} //Fin del if
}
//Fin del programa
100
EJERCICIOS
A– Por consola serial se recibe un número entero de 4 dígitos, si este número 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 algún campo magnético, la consola serial debe mostrar
―Presencia de extraño, sistema disparado‖
C– Como la alarma se disparo se debe encender el buzzer para generar soni-
do (se maneja como una salida digital) y además el LED amarillo y el rojo se
debe alternar encendido/apagado y emular los movimientos de una sirena de
bomber
bomb eros
os a intervalos de 1s.
D– Si la alarma se quiere desactivar se debe ingresar un código numérico
entero de 4 dígitos de ser correcto mostrar por consola serial ―Alarma desactivada‖ de lo
contrario el paso C se debe repetir mientras no se ingrese el código correcto.
Sirena
Buzzer
Reed
MI CUADERNO DE APUNTES
101
Materiales
1 1 1
Arduino UNO
LED RGB Protoboard
1 3 5
ESCANEA CON TU
SMARTPHONE
L BUSCA
A
I T19AB
R ASÍ
O
T D
U
T H VISITA LA OPCIÓN DE
O
E
D
I
V
102
P
L
A
N
O
E
S
Q
U
E
M
A
P
1— ¿Cuál es el valor 2— La palabra ―pulso‖ 3— Este símbolo a R
de esta resistencia? se debe guarda en que correspond
corresponde
e E
una variable de tipo : G
U
_____Ω ____________
_______________
___ ____________
____________ N
T
_____KΩ
A
103
/*
C ---------------------------------------------
LED RGB - Tabla de Colores
Ó ---------------------------------------------
D Programa que hace uso de una función llamada
color para generar diversas tonalidades en
I un LED RGB
G Cosas de Mecatrónica y Tienda de Robótica
0 */
//--------------------------------------------------
//Declara puertos de entradas y salidas y variables
//--------------------------------------------------
D int ledRojo = 9; //Declara Pin LED Rojo
int ledVerde
ledVerde==10
10;; //Declara Pin LED Verde
E int ledAzul
ledAzul=
=11
11;
; //Declara Pin LED Azul
//------------------------------------
//Funcion principal
//------------------------------------
void setup
setup()
() // Se ejecuta cada vez que el Arduino se inicia
P {
pinMode(
pinMode(ledRojo,OUTPUT ); //El LED Rojo como una salida
R pinMode(
pinMode
pinMode
(ledVerde,OUTPUT ); //El LED Verde como una salida
(ledAzul,OUTPUT ); //El LED Azul como una salida
pinMode(
O }
G //------------------------------------
//Funcion ciclicla
R //------------------------------------
void loop
loop()
() // Esta funcion se mantiene ejecutando
A { // cuando este energizado el Arduino
M // Llamado a la función
1er posicion: Color
Intensidad que recibe
Rojo
A // 2da posición: Intensidad Verde
// 3ra posición: Intensidad Azul
C color(255
color( 255,
,0,0); //Rojo
I delay(
delay (1000
1000));
Ó color(
color (0,255,
255,0);
delay(1000
delay( 1000)
);
//Verde
N color(
color (0,0,255)
255); //Azul
delay(1000
delay( 1000)
);
color(
color (255
255,,255,
255,255)
255); //Blanco
delay(1000
delay( 1000));
color(
color (255
255,,0,255)
255); //Magenta
delay(1000
delay( 1000));
color(
color (255
255,,128,
128,0); //Naranja
delay(1000
delay( 1000));
}
//------------------------------------
//Funcion color
//------------------------------------
void color
color((int rojo, int verde, int azul
azul){
){
//Escritura de PWM del color Rojo
analogWrite(
analogWrite (ledRojo, 255-rojo);
//Escritura de PWM del color Verde
analogWrite(
analogWrite (ledVerde, 255-verde);
//Escritura de PWM del color Azul
analogWrite(
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 continuación el valor numérico 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 numérico que llevas de ese color.
LED RGB
S1 S2
105
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
L BUSCA
A
I T20AB
R ASÍ
O
T D
U H
T VISITA LA OPCIÓN DE
O
E
D
I
V
106
P
L
A
N
O
E
S
Q
U
E
M
A
P
1— ¿Cuál es el valor 2— Si quiero guardar 3— Este símbolo a R
de esta resistencia? el número π que que correspond
corresponde
e E
tipo de variable G
debo usar? U
_____Ω N
____________
_______________
___ ____________
_______________
___
_____MΩ
T
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 Mecatrónica y Tienda de Robótica
0
*/
D //--------------------------------------------------
//Declara puertos de entradas y salidas y variables
E //--------------------------------------------------
int pulsador =7; //Declara Pin del pusaldor
int motor
motor=
=3; //Declara Pin del motor
P //------------------------------------
//Funcion principal
R //------------------------------------
void setup
setup()
() // Se ejecuta cada vez que el Arduino se inicia
O {
pinMode(
pinMode(pulsador,INPUT ); //El pulsador como una entrada
G }
(motor,OUTPUT );
pinMode(
pinMode //El motor como una salida
R
A //------------------------------------
//Funcion ciclicla
M
A
//------------------------------------
void loop
loop()
() // Esta funcion se mantiene ejecutando
{ // cuando este energizado el Arduino
C
I // Si el pulsador se encuentra oprimido
if(digitalRead (pulsador ) == HIGH
HIGH){
){
Ó digitalWrite(
digitalWrite (motor,HIGH ); //Enciende el motor
N }else{ //si el pulsador no esta oprimido
digitalWrite(
digitalWrite (motor,LOW ); //Apaga el motor
}
}
// Fin programa
108
EJERCICIOS
MI CUADERNO DE APUNTES
109
Materiales
1
1
1
Transistor NPN
Arduino UNO 1
Protoboard
Motor DC
1
1 5
ESCANEA CON TU
SMARTPHONE
L BUSCA
A
I T21AB
R ASÍ
O
T D
U H
T VISITA LA OPCIÓN DE
O
E
D
I
V
110
P
L
A
N
O
E
S
Q
U
E
M
A
P
1— ¿Cuál es el valor 2— ¿Cómo se escri- 3— Este símbolo a R
de esta resistencia? ben los siguientes que correspond
corresponde
e E
números 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 Mecatrónica y Tienda de Robótica
*/
D //--------------------------------------------------
//Declara puertos de entradas y salidas y variables
E //--------------------------------------------------
int motor
motor=
=3; //Declara Pin del motor
//------------------------------------
//Funcion principal
//------------------------------------
P void setup
{
setup()
() // Se ejecuta cada vez que el Arduino se inicia
R }
Serial.begin(9600
9600)
); //Inicia la comunicacion serial Arduino-PC
O //------------------------------------
G //Funcion ciclicla
//------------------------------------
R void loop
{
loop()
() // Esta funcion se mantiene ejecutando
// cuando este energizado el Arduino
A // Si hay algun valor en la Consola Serial
if (Serial.
Serial.available
available()){
M
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'
>='0' && a<=
a<='5'
'5'){
){
T 1– Arduino también
también se puede programar en lenguajes gráficos, por ejemplo:
I
P
Modkit
S
Scratch for Arduino
112
EJERCICIOS
El director de la película Súper Cocodrilo debe grabar una
1 escena donde Súper Cocodrilo recibe fuertes vientos para
hacer que su capa de súper héroe se mueva al unísono a la
velocidad del viento, para ello tiene un gran ventilador
(motor) de alta potencia, el control de la velocidad del
ventilador la tiene el director, en la medida que él gire el potencióme-
tro la características
estas velocidad debepara
ir cambiando. Tu misión
que la escena es desarrollar
pueda ser grabada ;) un programa que cumpla con
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:
S1 S2
113
Materiales
1 1 1
1 1
ESCANEA CON TU
SMARTPHONE
L BUSCA
A
I T22AB
R ASÍ
O
T D
U H
T VISITA LA OPCIÓN DE
O
D
I
V
114
P
L
A
N
O
E
S
Q
U
E
M
A
P
1— ¿Cuál es el valor 2— El switch...case 3— Este símbolo a R
de esta resistencia? es un tipo de qué correspond
corresponde
e 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
potenciómetro, la idea es generar
ge nerar diversos tonos
I en el buzzer a partir del estado análogo del
potenciómetro. Además se hace
hac e uso de la función
fu nción
G tone que es muy útil para generar diversas melodías
0 Cosas de Mecatrónica y Tienda de Robótica
*/
//--------------------------------------------------
D //Declara puertos de entradas y salidas y variables
//--------------------------------------------------
E int buzzer = 9; //Declara Pin del buzzer
int tono = 0; //Declara Pin del potenciómetro
//------------------------------------
//Funcion principal
P //------------------------------------
void setup
setup()
() // Se ejecuta cada vez que el Arduino se inicia
R {
// No se configuran parámetros inciales, pero se debe
O }
// colocar el encabezado de la función setup()
G
R //------------------------------------
//Funcion ciclicla
A //------------------------------------
void loop
loop()
() // Esta funcion se mantiene ejecutando
{ // cuando este energizado el Arduino
M
A //Variable entera donde se almacena el valor del potenciómetro
int sensor = analogRead
analogRead(
(tono);
C //Variable donde se escala la frecuencia de 100 a 5000Hz
I int frecuencia = map
map((sensor, 0,1023,
1023,100,
100,5000)
5000);
//Fin programa
T 1–Si tienes dificultades para aprender los colores de las resistencias una ayudita
I online no te caería nada mal ;) en Wolfram Alpha puedes hacer esto:
P
S
116
EJERCICIOS
Buzzer
S1 S2
MI CUADERNO DE APUNTES
117
Contáctenos
tiendaderobotica.com
[email protected]
tdrobotica
tdrobotica
CosasdeMecatronica