Libro Arduino
Libro Arduino
Robtica educativa
Partes para robots
www.tiendaderobotica.com [email protected]
Propsito ..................................................................................... 9
Qu voy a aprender? .................................................................... 10
1. Introduccin............................................................................ 11
1A. Computacin fsica................................................................ 12
2. Para tener en cuenta ................................................................. 13
2A. Tienda de Robtica ............................................................... 13
2B. Cosas de Mecatrnica ............................................................. 13
2C. Hardware libre .................................................................... 14
2D. Software libre ..................................................................... 14
2E. Creative commons ................................................................ 14
2F. Arduino ............................................................................. 15
2G. Fritzing ............................................................................. 15
2H. Licencia de la obra ............................................................... 16
3. Electrnica ............................................................................. 17
T
A
B
L
A
D
E
C
O
N
T
E
N
I
D
O
PROPSITO
Conocer el funcionamiento de las cosas es algo que el hombre se ha planteado desde el inicio de los tiempos; hoy en da nos enfrentamos a una
realidad donde abundan la automatizacin, la domtica, la interaccin de
las personas con las mquinas, la electrnica, la mecnica y la programacin.
Casi cualquier proceso que nos podamos imaginar tiene un porcentaje de
dependencia de estas mquinas, por ejemplo: Tu despertador son a las
6am para que vinieras a la escuela o fueras al trabajo, esa mquina, reloj,
trabaj durante toda la noche para al final avisarte que era hora de despertar.
El propsito de este libro es abordar el concepto de computacin fsica
que es la capacidad de interaccin y comunicacin de una mquina con los
humanos, usando sensores y actuadores. Las decisiones de esto las va a
tomar un microcontrolador que se encuentra ubicado en la placa Arduino.
La tarjeta Arduino es el corazn del presente libro.
QU VOY A APRENDER?
Muchas veces pensamos que los temas tecnolgicos requieren de gran habilidad 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 complejos son la unin de muchos procesos simples.
En este libro vas a aprender a imaginar y aterrizar todas ideas a conceptos
tangibles de los cuales te puedas sentir orgulloso, ya que fue tu idea y tu lo
desarrollaste ;)
10
1. INTRODUCCIN
La Tienda de Robtica y el Equipo de Cosas de Mecatrnica traen este
magnfico libro que aborda el aprendizaje sobre el concepto DIY (Do it
yourself) o en espaol Hazlo t mismo. Luego de una cuidadosa seleccin de componentes electrnicos y apoyados en la placa Arduino se crea
el producto Kit Bsico de Arduino apoyado de esta bonita gua.
Abordamos temas fundamentales como el hardware y software libre, revisando de manera cuidadosa el proyecto Arduino y apoyndonos en el estupendo Software Fritzing para lograr montajes muy llamativos y semejantes a la realidad. No es necesario que sepas de electrnica y programacin porque con los siguientes dos captulos abordamos los conceptos desde lo ms bsico hasta lo fundamental. Luego de conocer estos conceptos
tenemos un captulo dedicado a que conozcas los componentes electrnicos como un LED, un motor, un buzzer y muchos ms. Hemos diseado un
captulo especial sobre Arduino y Fritzing los cuales no puedes dejar de
ver. Este Kit Bsico es ideal para todo mbito de aprendizaje desde el
colegio hasta universidades y si eres un entusiasta o un gomoso no puedes
dejar de tener esta joya en casa, un captulo completo se dedica a mostrar el kit de abajo a arriba :).
Finalmente llegamos a una parte muy especial, al capitulo de los tutoriales, donde paso a paso se explican 14 ejemplos, durante el recorrido de aprendizaje te encontrars con preguntas, tips y ejercicios que por supuesto al final de esta gua tienen las respuestas para que seas todo un autodidacta y puedas comprobar tu
aprendizaje.
DIY
11
Computacin fsica
1A
La Computacin fsica, significa la construccin de sistemas interactivos 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
automatizacin de fbricas, en un sentido ms amplio, la computacin 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 traducir entradas analgicas a sistemas basados en software, y/o controlar dispositivos electromecnicos como motores, servos, iluminacin u otro hardware.
Otras implementaciones de computacin fsica trabajan con el reconocimiento de la voz, la cual se capta e
interpretan sus ondas sonoras a travs
de micrfonos u otros dispositivos de
deteccin de ondas sonoras, tambin la
visin por computador, que aplica algoritmos a los videos detectados por
algn tipo de cmara. Interfaces tctiles son tambin un ejemplo de la computacin fsica.
El prototipado (crear montajes rpidos con ayuda de una protoboard y componentes bsicos de electrnica) juega un papel importante en la computacin fsica. Herramientas como Arduino y Fritzing son tiles para diseadores, artistas, estudiantes y entusiastas
porque ayudan a elaborar prototipos rpidamente.
12
Tienda de Robtica
La Tienda de Robtica nace
en el 2010 con la idea de
poner a disposicin de estudiantes, profesionales y aficionados 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
Tienda de Robtica y el sitio web Cosas de Mecatrnica podamos compartir: 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.
2A
Cosas de Mecatrnica
Cosas de Mecatrnica naci en
Enero de 2007, despus de muchos intentos de su creador
Yesid Hernndez de hacer pginas web. Hasta Abril de 2009 estuvo alojado en wordpress (http://
mecatronica.wordpress.com). A partir de Mayo de 2009, Cosas de Mecatrnica adquiri un dominio propio con la idea de seguir compartiendo informacin y ayudar a crecer a la comunidad Mecatrnica en Espaol.
2B
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 forma 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
libre no es sinnimo de gratis. El hardware libre forma
parte de la cultura libre.
2C
Dado que el hardware tiene asociados a l costos variables directos, ninguna definicin de software libre se puede aplicar directamente sin
modificacin. En cambio, el trmino hardware libre se ha usado principalmente para
reflejar el uso del software libre con el hardware y el lanzamiento libre de la informacin con respecto al hardware, a menudo incluyendo el lanzamiento de los diagramas esquemticos, diseos, tamaos y otra informacin acerca del hardware.
Software libre
2D
Creative commons
2E
14
Arduino
Arduino es una plataforma de electrnica
abierta para la creacin de prototipos basada en software y hardware libre, flexibles y
fciles de usar. Se cre para artistas, diseadores, aficionados y cualquier interesado en
crear entornos u objetos interactivos.
Arduino puede tomar informacin del entorno a travs de sus pines de entrada, para
esto toda una gama de sensores puede ser
usada y puede afectar aquello que le rodea controlando luces, motores y otros actuadores. El microcontrolador en la placa Arduino se programa mediante el lenguaje
de programacin Arduino (basado en Wiring) y el entorno de desarrollo Arduino
(basado en Processing). Los proyectos hechos con Arduino pueden ejecutarse sin
necesidad de conectarlo a un ordenador, si bien tienen la posibilidad de hacerlo y
comunicar con diferentes tipos de software (p.ej. Flash, Processing, MaxMSP).
2F
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.
Fritzing fue creado bajo los principios de Processing y Arduino y permite a los diseadores, artistas, investigadores y
aficionados documentar sus prototipos basados en Arduino y
crear esquemas de circuitos impresos para su posterior
fabricacin. Adems, cuenta con un sitio web complementario que ayuda a compartir y discutir bosquejos, experiencias y a reducir los costos de fabricacin.
2G
www.fritzing.org
15
Licencia de la obra
2H
16
3. ELECTRNICA
Desde el inicio de este captulo te vas a enterar de los trminos tcnicos
que tiene la electrnica y que al final de ste muy seguramente vas a manejar de manera experta.
Concepto de electrnica
La rama de la fsica y especializacin de
la ingeniera, que estudia y emplea sistemas cuyo funcionamiento se basa en la
conduccin y el control del flujo microscpico de los electrones u otras
partculas cargadas elctricamente.
Utiliza una gran variedad de conocimientos, materiales y dispositivos, desde los
semiconductores hasta las vlvulas termoinicas. El diseo y la gran construccin de circuitos electrnicos para resolver problemas prcticos forman parte de la electrnica y de los campos de la ingeniera electrnica, electromecnica y la informtica en el diseo de software para
su control. El estudio de nuevos dispositivos semiconductores y su tecnologa se
suele considerar una rama de la fsica, ms concretamente en la rama de ingeniera
de materiales.
3A
La electrnica desarrolla en la actualidad una gran variedad de tareas. Los principales usos de los circuitos electrnicos son el control, el procesado, la distribucin de
informacin, la conversin y la distribucin de la energa elctrica. Estos dos usos
implican la creacin o la deteccin de campos electromagnticos y corrientes elctricas.
Voltaje
Una magnitud fsica que impulsa a los electrones a lo
largo de un conductor en un circuito elctrico cerrado,
provocando el flujo de una corriente elctrica. Su unidad
es el Voltio(V). El instrumento usado para medir el voltaje
se conoce como voltmetro.
3B
17
Voltaje DC
3C
Voltaje AC
3D
Corriente
3E
Es el flujo de electrones libres a travs de un conductor o semiconductor en un sentido. La unidad de medida de sta es
el amperio (A). Una corriente elctrica, puesto que se trata de un
movimiento de cargas, produce un campo magntico, un fenmeno que puede aprovecharse en el electroimn, este es el principio
de funcionamiento de un motor.
El instrumento usado para medir la intensidad de la corriente
elctrica es el galvanmetro que, calibrado en amperios, se llama
ampermetro, colocado en serie con el conductor cuya intensidad
se desea medir.
18
Resistencia
Es la propiedad fsica mediante la cual todos los materiales tienden a oponerse al flujo de la corriente. La unidad
de este parmetro es el Ohmio (). Puedes encontrar
resistencias en los calefactores elctricos, tarjetas
electrnicas, son muy tiles para limitar el paso de la
corriente y el voltaje.
3F
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
Sistemas electrnicos
Un sistema electrnico es un conjunto de circuitos que interactan entre s para obtener un resultado. Una forma de entender
los sistemas electrnicos consiste en dividirlos en entradas, salidas y procesamiento de seal.
3H
Entradas
Las entradas o Inputs: Son sensores (o transductores) electrnicos o mecnicos que toman las seales (en forma de temperatura, presin, humedad, contacto, luz, movimiento, pH etc.)
del mundo fsico y las convierten en seales de corriente o
voltaje.
3I
19
Salidas
3J
Procesamiento de seal
3K
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 denominar comnmente seales.
3L
Variable digital
Tambin llamadas variables discretas. Se caracterizan por tener dos estados diferenciados y por lo
tanto se pueden llamar binarias. Siendo estas variables ms fciles de tratar (en lgica seran los
valores Verdadero (V) y Falso (F) o podran ser 1
0 respectivamente).
3M
Variable anloga
Son aquellas que pueden tomar un nmero infinito de
valores comprendidos entre dos lmites. La mayora de
los fenmenos de la vida real son seales de este tipo.
(sonido, temperatura, voz, video, etc.)
3N
21
3O
Entrada
Salida
Entrada
Pulsador
LED
Reed switch
3P
Entrada
Fotocelda
Salida
Entrada
Motor DC
Potencimetro
Divisor de voltaje
3Q
Un divisor de voltaje es una configuracin de circuito elctrico que reparte el voltaje de una fuente (Vin) entre una
o ms resistencias (R1, R2) conectadas en serie (una a
continuacin de otra).
3R
22
Un conversor (o convertidor) analgico-digital (CAD), (o tambin ADC del ingls "Analog-to-Digital Converter") es un dispositivo electrnico capaz de convertir una entrada analgica de
voltaje en un valor binario. Se utiliza en equipos electrnicos
como computadores, grabadores de sonido y de vdeo, y equipos de telecomunicaciones. La seal analgica, que vara de
forma continua en el tiempo, se conecta a la entrada del dispositivo y se somete a un muestreo a una velocidad fija, obtenindose as una seal digital a la salida del mismo.
3S
Comunicacin serial
Es una interfaz de comunicaciones de
datos digitales, frecuentemente utilizado por computadores y perifricos,
donde la informacin es transmitida 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.
3T
VIDEOTUTORIAL
HD
ESCANEA CON TU
SMARTPHONE
BUSCA
AS
T03AB
VISITA LA OPCIN DE
23
24
4. COMPONENTES ELECTRNICOS
Diversos componentes electrnicos unen sus fuerzas para lograr aplicaciones fantsticas como por ejemplo el televisor de tu casa o el computador,
por dentro de ellos vas e encontrar tarjetas con resistenticas, condensadores, 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 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
en la memoria EEPROM del microcontrolador algn programa, el cual puede ser
escrito en lenguaje ensamblador u otro lenguaje para microcontroladores; sin embargo, 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.
4A
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
Vista real
Conexiones internas
Resistencia
4C
Smbolo
Componente
Q
U
I
Z
26
2_____
_____
4D
Ejemplo
27
Diodo
4E
Smbolo
Componente
Transistor
4F
Smbolo
Componente
Condensador
4G
Smbolo
Componente
28
LED
Smbolo
Componente
4H
LED RGB
4I
Smbolo
Componente
Pulsador
Smbolo
Componente
4J
Un botn o pulsador es un dispositivo utilizado para activar alguna funcin. Los botones 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 activar la funcin inversa de la que en ese momento este realizando.
29
Reed switch
4K
Smbolo
Componente
Potencimetro
4L
Smbolo
Componente
Fotocelda
4M
Smbolo
Componente
Es una resistencia, cuyo valor en ohmios vara ante las variaciones de la luz incidente. 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.
Pueden encontrarse en muchos artculos de consumo, como por ejemplo en cmaras, medidores de luz, relojes con radio, alarmas de seguridad o sistemas de encendido y apagado del alumbrado de calles.
30
Zumbador o buzzer
Smbolo
Componente
4N
Motor DC
4O
Smbolo
Componente
El motor de corriente continua (DC) es una mquina que convierte la energa elctrica 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 automatizacin de procesos. Por ejemplo, los puedes encontrar en la traccin de los
carros de juguetes de pilas o en las llantas de los robots.
VIDEOTUTORIAL
HD
ESCANEA CON TU
SMARTPHONE
BUSCA
AS
T05AB
VISITA LA OPCIN DE
31
32
5. PROGRAMACIN
La programacin es un gran recurso que nos permite crear diversas secuencias de pasos lgicos que van a satisfacer nuestras necesidades y las de
nuestros sistemas. Programar es todo un arte que requiere de una gran
habilidad lgica y concentracin por parte del programador.
Concepto de programacin
Es el proceso de disear, escribir, probar, depurar y
mantener el cdigo fuente de programas computacionales. El cdigo fuente es escrito en un lenguaje
de programacin. El propsito de la programacin es
crear programas que exhiban un comportamiento
deseado.
5A
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.
Pueden usarse para crear programas que controlen el
comportamiento fsico y lgico de una mquina, para
expresar algoritmos con precisin, o como modo de
comunicacin humana.
5B
Lenguaje mquina
5C
Lenguaje emsamblador
5D
34
5E
Algoritmo
5F
5G
Variables
Operadores matemticos, lgicos y booleanos
Estructuras de control (Condicionales y ciclos)
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.
Entero
Booleano
5I
Carcter
true false
Valor entero
Almacena un ASCII
Boolean encendido=true;
int conta=5;
char letra=a;
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
5K
== (igual a)
!= (diferente de)
36
Operadores matemticos
Se aplican al manejo de variables, condicionales y ciclos
= (asignar)
- (resta)
% (mdulo)
* (multiplicacin)
+ (suma)
5L
/ (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:
5M
If
Switch/case
For
While
Condicionales
Ideales para tomar decisiones luego de evaluar las condiciones lgicas:
If (Si)
if (entrada < 500)
{
// accin A
} else
{
// accin B
}
Switch/case (Casos)
switch (var) {
case 1:
// accin A
break;
case 2:
// accin B
break;
default:
// accin C
}
5N
Ciclos
Ideales para repetir lo que se encuentre dentro de ellos
For (por)
for( int a=0; a>10; a++ )
{
// accin a repetir
}
While (mientras)
while ( var < 200) {
// accin a repetir
var++;
}
5O
37
Funciones
5P
Funciones digitales
Orientas a revisar el estado y la configuracin de las entradas y salidas digitales
pinMode()
5Q
digitalRead()
digitalWrite()
digitalRead(pin)
digitalWrite(pin,estado)
digitalWrite (13,HIGH);
digitalWrite (13,LOW);
Q
U
I
Z
38
2- El If es un tipo de:
_____________
Funciones anlogas
Ideales para la lectura y escritura de valores anlogos
analogRead()
analogRead(pin)
analogWrite(pin,valor de PWM)
5R
EJERCICIOS
Relaciona los siguientes trminos, cada letra tiene tres trminos asociados:
Flujo de electrones
A Carbn
Amperio
B Emisor de luz
LED
C Lenguaje ensamblador
analogWrite()
D Digital
Hardware libre
E Corriente
Resistencia
F Arduino
ADD
G Anlogo
digitalRead()
Verde
Software libre
PWM
Pulsador
Instruccin
1K
VIDEOTUTORIAL
HD
ESCANEA CON TU
SMARTPHONE
BUSCA
AS
T04AB
VISITA LA OPCIN DE
39
5S
- setup()
- loop()
+Operadores de comparacin
-
+Estructuras de control
- if
- if...else
- for
- switch case
- while
- do... while
- break
- continue
- return
- goto
+Operadores booleanos
- && (y)
- || (o)
-!
(no)
+Sintaxis
-
;
(punto y coma)
{}
(llaves)
//
(comentario de una sola lnea)
/ * * / (comentario de varias lneas)
# define
# include
+Operadores matemticos
-
V
A
R
I
A
B
L
E
S
40
= (operador de asignacin)
+ (suma)
- (resta)
* (multiplicacin)
/ (divisin)
% (mdulo)
+Constantes
-
HIGH | LOW
INPUT | OUTPUT
true | false
Constantes enteras
Constantes flotante
+Tipos de datos
- void
- boolean
- char
== (igual que)
! = (diferente de)
< (menor que)
> (mayor que)
<= (menor o igual a)
>= (mayor o igual a)
+Operadores compuestos
- + + (incremento)
- -- (decremento)
- + = (compuesto adicin)
- - = (compuesto substraccin)
- * = (compuesto multiplicacin)
- / = (compuesto divisin)
-& = (compuesto bit a bit AND)
- | = (compuesto bit a bit OR)
byte
int
word
long
unsigned long
float
double
string - arreglo char
String - objeto
array
+Utilidades
- sizeof()
+Conversin
- char()
- byte()
- int()
- word()
- long()
- float()
+Digital I/O
- pinMode()
- digitalWrite()
- digitalRead()
+Nmeros aleatorios
- randomSeed()
- random()
+Analogo I/O
- analogReference()
- analogRead()
- analogWrite() - PWM
+Bits y Bytes
- lowByte()
- highByte()
- bitRead()
- bitWrite()
- bitSet()
- bitClear()
- bit()
+Avanzadas I/O
- tone()
- noTone()
- shiftOut()
- shiftIn()
-pulseIn()
+Tiempo
-
+Interrupciones externas
millis()
micros()
delay()
delayMicroseconds()
- attachInterrupt()
- detachInterrupt()
+Interrupciones
- interrupts()
- noInterrupts()
+Matemticas
-
min()
max()
abs()
constrain()
map()
pow()
sqrt()
+Comunicacin
- Serial
- begin()
- end()
- available()
- read()
- peek()
- flush()
- print()
- println()
- write()
+Trigonomtricas
- sin()
- cos()
- tan()
F
U
N
C
I
O
N
E
S
y muchas ms visita
L
I
B
R
E
R
A
S
arduino.cc
41
42
6. ARDUINO
Con las capacidades de Arduino solo debemos tener nociones bsicas de
electrnica y programacin, eso es suficiente para comenzar a desarrollar
nuestros proyectos. Arduino cuenta con una gran comunidad donde se comparte todo lo desarrollado y es una gran ventana para que puedas ver todo
lo que es posible desarrollar.
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 proyectos 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 unidades de Arduino han sido distribuidas. Los fundadores Massimo
Banzi y David Cuartielles nombraron el proyecto como Arduino de Ivrea, un protagonista histrico de la ciudad. En primer lugar "Arduino" es un termino masculino italiano, que significa "gran amigo".
6A
43
Familia Arduino
Como toda familia que se respete, tenemos de los integrantes ms grandes a los ms
pequeos, te invitamos a conocerlos:
Arduino UNO
Muchas entradas y
salidas
Arduino Mega2560
El ms vendido,
todo en uno
6B
Arduino Pro
44
Arduino Fio
Arduino Mini
Ligero y prctico
Programacin
XBee
Pequeo, ideal
para protoboard
Arduino Bluetooth
Arduino LyliPad
Programacin va
bluetooth
Para conectar el
Android
Para artistas y
manejar e-textils
Arduino Nano
Arduino Serial
Arduino Leonardo
Un pequeo poderoso
El ms joven y
barato
Celular
Ethernet
Proto
GPS
XBee
WiFi
LCD a color
USB host
Motores DC
Joystick
6C
SD Card
VIDEOTUTORIAL
HD
ESCANEA CON TU
SMARTPHONE
BUSCA
AS
T01AB
VISITA LA OPCIN DE
45
6D
7
8
10
99
11
12
13
Vistas auxiliares
46
14
D
E
S
C
R
I
P
C
I
Pulsador de Reset
10
11
Regulador de voltaje
12
13
14
Entradas anlogas
D
E
P
A
R
T
E
S
VIDEOTUTORIAL
HD
ESCANEA CON TU
SMARTPHONE
BUSCA
AS
T02AB
VISITA LA OPCIN DE
47
6E
Instalando drivers
MAC y LINUX
Si tu computador tiene de sistema operativo alguna versin de Mac o una distribucin de LINUX, lo nico que debes hacer es:
1
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:
1
48
Conectar la placa Arduino Uno al PC y ver este aviso. No nos debemos preocupar
WINDOWS 7, Vista y XP
Click derecho sobre Dispositivo desconocido y luego sobre la opcin Actualizar software del controlador.
49
VIDEOTUTORIAL
HD
ESCANEA CON TU
SMARTPHONE
50
BUSCA
AS
T07AB
VISITA LA OPCIN DE
Guardar
Abrir
Nuevo
Cargar a la placa
Compilar
6F
Puerto COM
51
Consola serial
6G
1
52
53
Ejercicio
A partir del ejemplo cargado en la seccin anterior, ahora te proponemos que modifiques 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
Es el recurso central de la presente gua, te proponemos que lo conozcas
para que tengas un adecuado manejo de sus componentes.
Descripcin
La Tienda de Robtica trae el Kit Bsico de
Arduino que comprende una cuidadosa seleccin de los mejores componentes para iniciar
en el mundo de Arduino. Es una herramienta
diseada para los principiantes que cuenta
con todo lo necesario para desarrollar programas que contribuyan al aprendizaje y manejo
del Arduino.
7A
KIT BSICO
7B
1
3
1 x Arduino Uno
5 x Led 5mm
5 x Resistencia 220
1 x Protoboard
1 x Led multicolor
5 x Resistencia 1K
1 x Piezo elctrico
5 x Resistencia 10K
2 x Transistor 2N3904
1 x Fotocelda
1 x Potencimetro 10K
1 x Batera Alcalina 9V
1 x Reed switch
1 x Broche batera
2 x Pulsadores NO
1 x Conector 2.1mm
6
1 x Imn
1 x Motor DC
7
1 x Cable USB Tipo AB
10 x Conectores rpidos MM
55
Fotos
DESPLIEGUE DE COMPONENTES
7C
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 circuitos impresos para su posterior fabricacin.
8A
Vista protoboard
8B
57
Vista esquema
8C
8D
58
EJERCICIO MSTER
8E
fritzing.org/download/
DIY
59
9. TUTORIALES
Estos tutoriales son diseados con ejercicios prcticos que permiten comprender el concepto y de manera constante se est verificando lo aprendido
mediante preguntas. Finalmente se plantean ejercicios que involucran casos de la vida real.
T0
G
D
60
Prueba tu aprendizaje
H
I
J
J
Ejercicios aplicados
61
T1
Conocimientos previos
Seal digital
Funcin digitalWrite()
Polaridad de un LED
Sintaxis de un programa en
Arduino
Materiales
LED Verde
Arduino UNO
VIDEOTUTORIAL
HD
ESCANEA CON TU
SMARTPHONE
62
BUSCA
AS
VISITA LA OPCIN DE
P
L
A
N
O
E
S
Q
U
E
M
A
1 Cul es el valor
de esta resistencia?
2 Qu hace est
funcin?
digitalRead()
_____
_____K
_______________
_______________
3 Completa
?
I = ___
R
P
R
E
G
U
N
T
A
63
D
I
G
0
D
E
P
R
O
G
R
A
M
A
C
I
/*
----------------------------------Hola Mundo
----------------------------------Enciende un LED por un segundo y lo apaga por el mismo tiempo
*/
//-----------------------------------//Funcin principal
//-----------------------------------void setup()
// Se ejecuta cada vez que el Arduino se inicia
{
pinMode(13,OUTPUT); // Inicializa el pin 13 como una salida
}
//-----------------------------------//Funcin cclica
//-----------------------------------void loop()
// Esta funcin se mantiene ejecutando
{
// cuando este energizado el Arduino
digitalWrite(13,HIGH); // Enciende el LED
delay(1000);
// Temporiza un segundo (1s = 1000ms)
digitalWrite(13,LOW);
// Apaga el LED
delay(1000);
// Temporiza un segundo (1s = 1000ms)
}
// Fin del programa
T
I
P
S
64
Sensor PIR
Detecta movimiento
EJERCICIOS
MI CUADERNO DE APUNTES
65
T2
Qu aprendo?
Conocimientos previos
Cablear un circuito
Seal digital
Condicional If/else
Funcin digitalWrite() y
digitalRead()
Estado de un pulsador
Divisor de voltaje
Condicional y operadores de
comparacin
Materiales
1
1
LED Amarillo
Arduino UNO
Protoboard
Pulsador
Conectores MM
VIDEOTUTORIAL
HD
ESCANEA CON TU
SMARTPHONE
66
BUSCA
AS
T10AB
VISITA LA OPCIN DE
P
L
A
N
O
E
S
Q
U
E
M
A
1 Cul es el valor
de esta resistencia?
2 Qu hace est
funcin?
digitalWrite()
_____
_____K
_______________
_______________
3 Un ejemplo de
un lenguaje de alto
nivel
_______________
P
R
E
G
U
N
T
A
67
D
I
G
0
D
E
P
R
O
G
R
A
M
A
C
I
/*
----------------------------------Encender LED con un pulsador
----------------------------------Oprimir un pulsador y mientras este se mantenga accionado
un LED se enciende
Cosas de Mecatrnica y Tienda de Robtica
*/
//-----------------------------------//Declara puertos de entradas y salidas
//-----------------------------------int pulsador=2;
//Pin donde se encuentra el pulsador, entrada
int led=13;
//Pin donde se encuentra el LED, salida
//-----------------------------------//Funcion principal
//-----------------------------------void setup() // Se ejecuta cada vez que el Arduino se inicia
{
pinMode(pulsador, INPUT); //Configurar el pulsador como una entrada
pinMode(led,OUTPUT);
//Configurar el LED como una salida
}
//-----------------------------------//Funcion ciclicla
//-----------------------------------void loop() // Esta funcion se mantiene ejecutando
{
// cuando este energizado el Arduino
//Condicional para saber estado del pulsador
if (digitalRead(pulsador)==HIGH)
{
//Pulsador oprimido
digitalWrite(led,HIGH); //Enciende el LED
}
else
{
//Pulsador NO oprimido
digitalWrite(led,LOW); //Apaga el LED
}
}
//Fin programa
T
I
P
S
68
EJERCICIOS
1
La multinacional francesa Flante experta en maquinaria industrial te ha contratado para que automatices una mquina cortadora de papel. La condicin 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 seguridad industrial para evitar accidentes. El operario debe oprimir los dos pulsadores 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
Qu aprendo?
Conocimientos previos
Seal digital
Consola serial
Materiales
1
1
1
Arduino UNO
Protoboard
Pulsador
1
1
Resistencia 1K
Conectores MM
VIDEOTUTORIAL
HD
ESCANEA CON TU
SMARTPHONE
70
BUSCA
AS
T11AB
VISITA LA OPCIN DE
P
L
A
N
O
E
S
Q
U
E
M
A
1 Cul es el valor
de esta resistencia?
2 Qu hace est
funcin?
3 Este smbolo a
que corresponde
Serial.println()
_____
_____K
_______________
_______________
_______________
P
R
E
G
U
N
T
A
71
D
I
G
0
D
E
P
R
O
G
R
A
M
A
C
I
/*
-------------------------------------Lectura serial de una entrada digital
-------------------------------------Leer una entrada digital y mostrar por la pantalla del
computador (consola serial) el estado del pulsador
cuando es oprimido
Cosas de Mecatrnica y Tienda de Robtica
*/
//-----------------------------------//Declara puertos de entradas y salidas
//-----------------------------------int boton=2;
//Pin donde se encuentra el pulsador, entrada
//-----------------------------------//Funcion principal
//-----------------------------------void setup() // Se ejecuta cada vez que el Arduino se inicia
{
//Configuracin
pinMode(boton,INPUT); //Configurar el boton como una entrada
Serial.begin(9600);
//Inicia comunicacin serial
}
//-----------------------------------//Funcion ciclicla
//-----------------------------------void loop() // Esta funcion se mantiene ejecutando
{
// cuando este energizado el Arduino
//Guardar en una variable entera el valor del boton 0 1
int estado = digitalRead(boton);
//Condicional para saber estado del pulsador
if (estado==1)
{
// Pulsado
Serial.println("Pulsado");
//Imprime en la consola serial
}
// "Pulsado"
else
{
// 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
T
I
P
S
000
001
010
011
100
101
110
111
72
EJERCICIOS
1
S1
S2
Unas luces navideas modernas son las siguientes: mientras se mantenga pulsado S1
una variable entera inicializada en 0 se comienza a incrementar de 20 en 20, al soltar
S1 la variable para de incrementarse, cuando se pulse S2
el valor de la variable se
debe cargar a un Hola
73
T4
Qu aprendo?
Conocimientos previos
Seal anloga
Funcin analogRead() y
Serial.println()
Materiales
1
1
1
Arduino UNO
Protoboard
Potencimetro 10K
3
VIDEOTUTORIAL
HD
ESCANEA CON TU
SMARTPHONE
74
BUSCA
AS
T12AB
VISITA LA OPCIN DE
P
L
A
N
O
E
S
Q
U
E
M
A
1 Cul es el valor
de esta resistencia?
2 Qu hace est
funcin?
3 Este smbolo a
que corresponde
analogRead()
_____
_____K
_______________
_______________
_______________
P
R
E
G
U
N
T
A
75
D
I
G
0
/*
-------------------------------------Lectura serial de entrada anloga
-------------------------------------Leer una entrada anloga y mostrar por la pantalla del
computador (consola serial) el valor luego de girar
el potencimetro
Cosas de Mecatrnica y Tienda de Robtica
D
E
P
R
O
G
R
A
M
A
C
I
*/
//-----------------------------------//Funcion principal
//-----------------------------------void setup() // Se ejecuta cada vez que el Arduino se inicia
{
Serial.begin(9600); //Inicia comunicacin serial
}
//-----------------------------------//Funcion ciclicla
//-----------------------------------void loop() // Esta funcion se mantiene ejecutando
{
// cuando este energizado el Arduino
//Guardar en una variable entera el valor del potencimetro 0 a 1024
int valor= analogRead(A0);
//Imprime en la consola serial el valor de la variable
Serial.println(valor);
//Retardo para la visualizacin de datos en la consola
delay(100);
}
//Fin programa
T
I
P
S
SoftPot
Trimmer
Encoder RGB
Sistema touch
Alta precisin
Giro continuo
2 Para recordar
- Para leer una seal anloga usa: analogRead(numeroPin);
- Para escribir una seal anloga de PWM usa: analogWrite(numeroPin, valor);
- Una entrada anloga va de 0 o 1023
- Una salida anloga de PWM va de 0 o 255
76
EJERCICIOS
Este reto es sencillo, pero te va a dar una idea de cmo
hacer grandes cosas escribiendo unas pocas lneas de
cdigo. Como bien lo sabes, la lectura de una seal
anloga te da un valor de 0 a 1023 (si tienes alguna
duda solo revisa el cdigo de la pgina anterior).
MI CUADERNO DE APUNTES
77
T5
Escritura serial
Qu aprendo?
Conocimientos previos
Seal digital
Variables booleanas
Funcin digitalWrite() y
Serial.read()
Estado de un LED
Polaridad de un LED
Materiales
LED Verde
Arduino UNO
VIDEOTUTORIAL
HD
ESCANEA CON TU
SMARTPHONE
78
BUSCA
AS
T13AB
VISITA LA OPCIN DE
P
L
A
N
O
E
S
Q
U
E
M
A
1 Cul es el valor
de esta resistencia?
2 Qu hace est
funcin?
Serial.read()
_____
_____K
3 Nombra 4 tipos
de variables
a._______
_______________
b._______
_______________
c._______
d._______
P
R
E
G
U
N
T
A
79
D
I
G
0
/*
-------------------------------------Escritura serial
-------------------------------------Consiste en escribir por la pantalla del computador (consola serial)
una letra predeterminada, la primera vez que se escriba est
un LED se enciende, si se vuelve a escribir por segunda vez
el LED se apaga.
Cosas de Mecatrnica y Tienda de Robtica
*/
D
E
P
R
O
G
R
A
M
A
C
I
T
I
P
S
80
1 Las tablas booleanas son muy tiles para entender la lgica de los programas,
sabes cul es la tabla booleana de AND(&&), OR(||) y NOT(!) ?
EJERCICIOS
1
LED1
LED2
LED3
MI CUADERNO DE APUNTES
81
T6
Qu aprendo?
Conocimientos previos
PWM
Funcin analogWrite()
Polaridad de un LED
Incrementar y manipular
variables
Materiales
1
1
LED Amarillo
Arduino UNO
Protoboard
1
2
Resistencia 220
Conectores MM
VIDEOTUTORIAL
HD
ESCANEA CON TU
SMARTPHONE
82
BUSCA
AS
T14AB
VISITA LA OPCIN DE
P
L
A
N
O
E
S
Q
U
E
M
A
1 Cul es el valor
de esta resistencia?
2 Qu hace est
funcin?
analogWrite()
_____
_____K
_______________
_______________
==_______
!=_______
P
R
E
G
U
N
T
A
83
D
I
G
0
D
E
P
R
O
G
R
A
M
A
C
I
/*
--------------------------------------------Enciende/Apaga un LED de forma proporcional
--------------------------------------------Programa que enciende proporcionalmente un LED cuando
llega a su mximo punto de brillo comienza a apagarse
proporcionalmente.
Cosas de Mecatrnica y Tienda de Robtica
*/
//-------------------------------------------------//Declara puertos de entradas y salidas y variables
//-------------------------------------------------int brillo = 0;
//Variable de brillo inicia en 0
int variacion = 5;
//Variable de incremento configurada de 5 en 5
int led = 9;
//Pin donde se encuentra el LED, salida
//-----------------------------------//Funcion principal
//-----------------------------------void setup () // Se ejecuta cada vez que el Arduino se inicia
{
pinMode(led, OUTPUT); //Configurar el LED como una salida
}
//-----------------------------------//Funcion ciclicla
//-----------------------------------void loop () // Esta funcion se mantiene ejecutando
{
// cuando este energizado el Arduino
// Escritura analoga (PWM) en el LED escribo el valor de brillo
analogWrite(led, brillo);
// Incremento la variable brillo de 5 en 5
brillo = brillo + variacion;
// Nota: PWM ---->
0 - 255
// Si el brillo es 0 o 255
if (brillo == 0 || brillo == 255)
variacion = -variacion; //La variacin se vuelve negativa
delay (30); //Tiempo de incremento en el brillo
}
//Fin programa
T
I
P
S
Micromotor
Bomba de agua
Variar la velocidad de
giro
Variar la velocidad de
bombeo
PWM
LED
Variar la intensidad de
luz
84
Servomotor
Variar la posicin en
grados
EJERCICIOS
Tu mam quiere tener unas luces de intensidad variables en la sala
de tu casa, quiere poca luz para los momentos en que la familia
comparte para mantener la armona pero requiere bastante luz
cuando realiza sus tejidos, ella quiere tener el control de la intensidad de luz mediante un potencimetro y que la bombilla LED se
ilumine de acuerdo a lo graduado por ella. Tu tarea es realizar el
programa que al leer una entrada anloga de un potencimetro (01023) se
ajuste el valor de PWM (0-255) de un LED, recuerda escalar el valor map()
MI CUADERNO DE APUNTES
85
T7
Qu aprendo?
Conocimientos previos
Salida digital
If/else
Control ON/OFF
Funcin digitalWrite() y
analogRead()
Comparacin
Condicional a partir de un
valor entero de una entrada
anlogo
Condicional y operadores de
comparacin
Materiales
1
1
1
LED Verde
1
Arduino UNO
Protoboard
Potencimetro 10K
1
1
Conectores MM
VIDEOTUTORIAL
HD
ESCANEA CON TU
SMARTPHONE
86
BUSCA
AS
T15AB
VISITA LA OPCIN DE
P
L
A
N
O
E
S
Q
U
E
M
A
1 Cul es el valor
de esta resistencia?
3 Este smbolo a
que corresponde
++
_____
_____K
_______________
_______________
_______________
P
R
E
G
U
N
T
A
87
D
I
G
0
/*
--------------------------------------------Control ON/OFF con potencimetro
--------------------------------------------Programa que enciende un LED cuando el valor de la entrada
anloga comandada por el potencimetro esta en cierto valor,
cuando este valor cambia el LED se apaga, es un sistema con
control ON/OFF
Cosas de Mecatrnica y Tienda de Robtica
*/
D
E
P
R
O
G
R
A
M
A
C
I
//-----------------------------------//Funcion principal
//-----------------------------------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
}
//-----------------------------------//Funcion ciclicla
//-----------------------------------void loop() // Esta funcion se mantiene ejecutando
{
// cuando este energizado el Arduino
//Guardar en una variable el valor de la lectura anloga
int valor = analogRead(A0);
Serial.println(valor);
//Fin programa
T
I
P
S
88
EJERCICIOS
1
LED1
LED2
LED3
LED4
LED5
89
T8
Qu aprendo?
Conocimientos previos
Seal anloga
Funcin analogWrite() y
analogRead()
PWM
Materiales
LED Verde
Arduino UNO
1
Protoboard
Fotocelda
Resistencia 10K
Resistencia 1K
Conectores MM
VIDEOTUTORIAL
HD
ESCANEA CON TU
SMARTPHONE
90
BUSCA
AS
T16AB
VISITA LA OPCIN DE
P
L
A
N
O
E
S
Q
U
E
M
A
1 Cul es el valor
de esta resistencia?
_____
2 La letra A se
guarda en una variable de tipo:
3 Este smbolo a
que corresponde
_______________
_____K
P
R
E
G
U
N
T
A
_______________
91
D
I
G
0
D
E
P
R
O
G
R
A
M
A
C
I
/*
--------------------------------------------Control de intensidad de un LED
--------------------------------------------Programa que enciende un LED de manera proporcional de
acuerdo a la cantidad de luz que incida en una
fotocelda.
Cosas de Mecatrnica y Tienda de Robtica
*/
//-----------------------------------//Funcion principal
//-----------------------------------void setup() // Se ejecuta cada vez que el Arduino se inicia
{
Serial.begin(9600); //Inicia comunicacin serial
pinMode(9,OUTPUT);
//Configurar el pin 9 como una salida de PWM
}
//-----------------------------------//Funcion ciclicla
//-----------------------------------void loop() // Esta funcion se mantiene ejecutando
{
// cuando este energizado el Arduino
//Guardar en una variable el valor de la lectura anloga de la
// fotocelda
int foto = analogRead(A0);
//Verifica el valor mximo y realizar una conversin
int conversion = 780 - foto;
//Condicional para establecer un valor absoluto
if ( conversion < 0)
conversion = conversion * -1; //Multiplicar por -1 porque es negativo
//Imprimir datos del valor de la lectura anloga de la fotocelda
Serial.print("Foto : ");
Serial.print(foto);
Serial.println("");
//Imprimir datos del valor de la conversin
Serial.print("Conv : ");
Serial.print(conversion);
Serial.println("");
//Escritura anloga de PWM en el LED de acuerdo a la conversin
analogWrite(9, conversion);
delay(100);
}
//Fin programa
T
I
P
S
92
1 Piensa por un momento en dnde puedes encontrar una fotocelda, stos son
algunos ejemplos:
Calculadora
Cmara digital
Medidor de luz
Alumbrado pblico
EJERCICIOS
1
Te proponemos que crees un sensor para medir la luz que irradia un cuerpo
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 mostrando 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%
Sensor luz
S1
S2
93
Contador de pulsos
T9
Qu aprendo?
Conocimientos previos
Seal digital
Funcin digitalWrite() y
digitalRead()
Anti-rebote de un pulsador
Materiales
1
1
LED Amarillo
Arduino UNO
Protoboard
Pulsador
Conectores MM
VIDEOTUTORIAL
HD
ESCANEA CON TU
SMARTPHONE
94
BUSCA
AS
T17AB
VISITA LA OPCIN DE
P
L
A
N
O
E
S
Q
U
E
M
A
1 Cul es el valor
de esta resistencia?
_____
_____K
3 Este smbolo a
que corresponde
_________
P
R
E
G
U
N
T
A
95
D
I
G
0
/*
--------------------------------------------Contador de pulsos
--------------------------------------------Programa que muestra por pantalla (consola serial) el nmero
de veces que el pulsador ha sido presionado, se realiza un
proceso que de acuerdo al nmero de pulsaciones se enciende
un LED,
Cosas de Mecatrnica y Tienda de Robtica
*/
D
E
P
R
O
G
R
A
M
A
C
I
T
I
P
S
1 Arduino tiene una gran comunidad de aprendizaje y para compartir diversas preguntas, en el foro oficial puedes encontrar diversos temas con gran cantidad de
respuestas:
arduino.cc/forum
96
EJERCICIOS
1
B1
B2
zona1
zona2
zona3
Botn
97
T10
Qu aprendo?
Conocimientos previos
Ciclo for
Seal digital
Condicional If/else
Funcin digitalWrite() y
digitalRead()
Parmetros de un for
Intermitencia de un LED
Materiales
1
1
LED Verde
Arduino UNO
Protoboard
Reed switch
Conectores MM
VIDEOTUTORIAL
HD
ESCANEA CON TU
SMARTPHONE
98
BUSCA
AS
T18AB
VISITA LA OPCIN DE
P
L
A
N
O
E
S
Q
U
E
M
A
1 Cul es el valor
de esta resistencia?
_____
_____K
2 Qu recibe la
funcin delay()?
3 Este smbolo a
que corresponde
_______________
____________
P
R
E
G
U
N
T
A
99
D
I
G
0
D
E
P
R
O
G
R
A
M
A
C
I
/*
--------------------------------------------Interruptor magntico - Ladrn en casa
--------------------------------------------Programa que genera una alarma visual con un LED
a partir de un campo magntico generado a un
reed switch.
Cosas de Mecatrnica y Tienda de Robtica
*/
//-------------------------------------------------//Declara puertos de entradas y salidas y variables
//-------------------------------------------------int contacto = 2;
int led= 13;
//-----------------------------------//Funcion principal
//-----------------------------------void setup() // Se ejecuta cada vez que el Arduino se inicia
{
pinMode(contacto,INPUT); //El reed switch como una entrada
pinMode(led, OUTPUT);
//El LED como una salida
}
//-----------------------------------//Funcion ciclicla
//-----------------------------------void loop() // Esta funcion se mantiene ejecutando
{
// cuando este energizado el Arduino
// Si el iman se acerca al reed switch
if (digitalRead(contacto)==LOW){
//Ciclo for que va de 0 a 50, el contador esta
// en la variable a, se repite mientras a sea
// menor a 50
for(int a=0; a<50; a++){
digitalWrite(led,HIGH); //Prende el LED
delay(50); //Tiempo
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
T
I
P
S
PIR
Sensor para detectar
movimiento
100
Sensor de vibracin
Detecta vibraciones en
superficies horizontales
Micrfono MEMS
Soporta un alto rango
de ruido
EJERCICIOS
1
Sirena
Buzzer
Reed
MI CUADERNO DE APUNTES
101
T11
Qu aprendo?
Conocimientos previos
Seal digital
Funcin analogWrite()
Estructura de un programa
en Arduino
Materiales
Arduino UNO
Protoboard
LED RGB
1
Conectores MM
VIDEOTUTORIAL
HD
ESCANEA CON TU
SMARTPHONE
102
BUSCA
AS
T19AB
VISITA LA OPCIN DE
P
L
A
N
O
E
S
Q
U
E
M
A
1 Cul es el valor
de esta resistencia?
_____
_____K
2 La palabra pulso
se debe guarda en
una variable de tipo :
_______________
3 Este smbolo a
que corresponde
____________
P
R
E
G
U
N
T
A
103
D
I
G
0
D
E
P
R
O
G
R
A
M
A
C
I
/*
--------------------------------------------LED RGB - Tabla de Colores
--------------------------------------------Programa que hace uso de una funcin llamada
color para generar diversas tonalidades en
un LED RGB
Cosas de Mecatrnica y Tienda de Robtica
*/
//-------------------------------------------------//Declara puertos de entradas y salidas y variables
//-------------------------------------------------int ledRojo = 9; //Declara Pin LED Rojo
int ledVerde=10; //Declara Pin LED Verde
int ledAzul=11; //Declara Pin LED Azul
//-----------------------------------//Funcion principal
//-----------------------------------void setup() // Se ejecuta cada vez que el Arduino se inicia
{
pinMode(ledRojo,OUTPUT); //El LED Rojo como una salida
pinMode(ledVerde,OUTPUT); //El LED Verde como una salida
pinMode(ledAzul,OUTPUT); //El LED Azul como una salida
}
//-----------------------------------//Funcion ciclicla
//-----------------------------------void loop() // Esta funcion se mantiene ejecutando
{
// cuando este energizado el Arduino
//
//
//
//
color(255,0,0);
delay(1000);
//Rojo
color(0,255,0);
delay(1000);
//Verde
color(0,0,255);
delay(1000);
//Azul
color(255,255,255); //Blanco
delay(1000);
color(255,0,255);
delay(1000);
color(255,128,0);
delay(1000);
//Magenta
//Naranja
}
//-----------------------------------//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);
}
//Fin programa
T
I
P
S
104
ShiftBrite
EJERCICIOS
La iluminacin de la recepcin del Hotel Mancherie es algo especial porque de
acuerdo al estado de animo del dueo el Sr. Martin, se debe configurar la luz en
una escala RGB. El operario de las luces es muy pilo ya que se encarga de recibir
los colores deseados por el Sr. Martin, as que el operario se encarga de escribir
por Consola Serial un valor RGB separado por comas (,). As que debes desarrollar
un programa que tome esta informacin y la aplique a un LED RGB, toma como
Esquema de la pg 103. Por ejemplo si se enva:
255,0,0
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:
Pulso
Pulso
Pulso
Pulso
1 ->
2 ->
3 ->
4 ->
Rojo
Verde
Azul
Rojo
Pulsador 2 (S2) permite variar el color de 0 a 255 del ltimo nombre del color que quedo asignado mediante 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 reflejado en el LED RGB. Por ejemplo de acuerdo al ltimo estado del Pulso 4 y luego se pulsa S2:
Pulso 4 -> Rojo
Rojo 0
100ms
Rojo 1
100ms
Rojo 2
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
Qu aprendo?
Conocimientos previos
Control ON/OFF
Seal digital
Condicional If/else
Funcin digitalWrite() y
digitalRead()
Divisor de voltaje
Reconocer un transistor y un
motor
Materiales
1
Transistor NPN
Arduino UNO
1
Protoboard
Pulsador
Resistencia 1K
Motor DC
Conectores MM
VIDEOTUTORIAL
HD
ESCANEA CON TU
SMARTPHONE
106
BUSCA
AS
T20AB
VISITA LA OPCIN DE
P
L
A
N
O
E
S
Q
U
E
M
A
1 Cul es el valor
de esta resistencia?
_____
_____M
2 Si quiero guardar
el nmero que
tipo de variable
debo usar?
_______________
3 Este smbolo a
que corresponde
_______________
P
R
E
G
U
N
T
A
107
D
I
G
0
/*
--------------------------------------------Control ON/OFF de un motor
--------------------------------------------Programa que hace uso de un motor y un pulsador,
mientras se mantenga pulsado, el motor debe
estar encendido (ON) de lo contrario debe estar
apagado (OFF)
Cosas de Mecatrnica y Tienda de Robtica
*/
D
E
P
R
O
G
R
A
M
A
C
I
//-----------------------------------//Funcion principal
//-----------------------------------void setup() // Se ejecuta cada vez que el Arduino se inicia
{
pinMode(pulsador,INPUT); //El pulsador como una entrada
pinMode(motor,OUTPUT);
//El motor como una salida
}
//-----------------------------------//Funcion ciclicla
//-----------------------------------void loop() // Esta funcion se mantiene ejecutando
{
// cuando este energizado el Arduino
// Si el pulsador se encuentra oprimido
if(digitalRead(pulsador) == HIGH){
digitalWrite(motor,HIGH); //Enciende el motor
}else{ //si el pulsador no esta oprimido
digitalWrite(motor,LOW); //Apaga el motor
}
}
// Fin programa
T
I
P
S
108
EJERCICIOS
1
Lavadora apagada
MI CUADERNO DE APUNTES
109
T13
Qu aprendo?
Conocimientos previos
Seal anloga
Funcin analogWrite() y
Serial.print()
PWM
Condicional y operadores de
comparacin
Materiales
1
1
Transistor NPN
Arduino UNO
Protoboard
Motor DC
1
5
Conectores MM
VIDEOTUTORIAL
HD
ESCANEA CON TU
SMARTPHONE
110
BUSCA
AS
T21AB
VISITA LA OPCIN DE
P
L
A
N
O
E
S
Q
U
E
M
A
1 Cul es el valor
de esta resistencia?
_____
_____K
3 Este smbolo a
que corresponde
7=______
5=______
2=______
_______________
P
R
E
G
U
N
T
A
111
D
I
G
0
/*
--------------------------------------------Control por PWM de un motor
--------------------------------------------Programa que hace uso de un motor y la Consola
serial de Arduino, tiene la posiblidad de
configurar al motor 5 velocidades distintas,
desde el teclado del PC puedes enviarle la
velocidad deseada. Las 5 velocidades se configuran
con 5 PWM distintos.
Cosas de Mecatrnica y Tienda de Robtica
*/
D
E
P
R
O
G
R
A
M
A
C
I
T
I
P
S
Modkit
112
EJERCICIOS
1
La ltima novedad de la Feria de Electrodomsticos ha dejado con gran renombre una licuadora que incorpora dos pulsadores mediante los cuales es
posible variar las 10 diferentes velocidades (0 a 9) al momento de licuar.
Todo esto se apoya desde la Consola serial donde es posible ver la Velocidad
escogida, los pulsadores se ajustan de la siguiente manera:
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:
Pulso 1 -> Velocidad 0
Pulso 2 -> Velocidad 1
Pulso 3 -> Velocidad 2
Pulsador 2 (S2) al pulsar S2 por primera vez el motor debe comenzar a girar a la velocidad escogida mediante 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
Qu aprendo?
Conocimientos previos
Materiales
Buzzer
Arduino UNO
Protoboard
1
6
Potencimetro 10K
Conectores MM
VIDEOTUTORIAL
HD
ESCANEA CON TU
SMARTPHONE
114
BUSCA
AS
T22AB
VISITA LA OPCIN DE
P
L
A
N
O
E
S
Q
U
E
M
A
1 Cul es el valor
de esta resistencia?
_____
_____M
2 El switch...case
es un tipo de
3 Este smbolo a
qu corresponde
_______________
_______________
P
R
E
G
U
N
T
A
115
D
I
G
0
D
E
P
R
O
G
R
A
M
A
C
I
/*
--------------------------------------------Generar tonos con un buzzer
--------------------------------------------Programa que hace uso de un buzzer (chicharra) y un
potencimetro, la idea es generar diversos tonos
en el buzzer a partir del estado anlogo del
potencimetro. Adems se hace uso de la funcin
tone que es muy til para generar diversas melodas
Cosas de Mecatrnica y Tienda de Robtica
*/
//-------------------------------------------------//Declara puertos de entradas y salidas y variables
//-------------------------------------------------int buzzer = 9; //Declara Pin del buzzer
int tono = 0;
//Declara Pin del potencimetro
//-----------------------------------//Funcion principal
//-----------------------------------void setup() // Se ejecuta cada vez que el Arduino se inicia
{
// No se configuran parmetros inciales, pero se debe
// colocar el encabezado de la funcin setup()
}
//-----------------------------------//Funcion ciclicla
//-----------------------------------void loop() // Esta funcion se mantiene ejecutando
{
// cuando este energizado el Arduino
//Variable entera donde se almacena el valor del potencimetro
int sensor = analogRead(tono);
//Variable donde se escala la frecuencia de 100 a 5000Hz
int frecuencia = map(sensor,0,1023,100,5000);
//Variable entera para guardar el tiempo deseado en ms
int duracion = 250;
//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
I
P
S
116
1 Si tienes dificultades para aprender los colores de las resistencias una ayudita
online no te caera nada mal ;) en Wolfram Alpha puedes hacer esto:
EJERCICIOS
1
Buzzer
S1
S2
MI CUADERNO DE APUNTES
117
118
A
P
O
R
T
E
S
119
Contctenos
tiendaderobotica.com
[email protected]
TdRobotica
TdRobotica
CosasdeMecatronica
TdRobotica
2692EC3A
120