i Introduccion
i aArduino
LA PLATAFORMA DE CODIGO ABIERTO PARA LA CREACION
DE PROTOTIPOS ELECTRONICOS.
(0) mls
pe a) sprepnge
BAER RASST
DigitaL. (Pw)
HEE Massimo Banzi cofundador de Arduino
y Michael Shioh
He Make: ANAYNIntroduccién a Arduino
que esté tomando el mundo de los aficionados al disefio por
la tormenta. Esta completa introduccién
muchas ideas para proyectos y le ayuda
a Arduino le da
a empezar de
inmediato. De organizarse a poner los toques finales en su
prototipo, toda la informacién que necesita es correcta en
este breve libro.
» Disefio de interaccién e informatica
ica.
» El entorno de desarrollo de hardware y software de Arduino.
» Conceptos basicos de la electricidad y la electronica.
»» Prototipos en una placa sin soldadura
»» Dibujo de un diagrama esquematico.
Y més. Con hardware de bajo
costo y componentes de
software de cédigo abierto que
puede descargar gratis, empezar
usar Arduino es muy fécil. Para
‘mezclar con los ejemplos
introductorios en este libro.
Todo lo que necesitas es un
cable USB Arduino, USBA-B y un
LED.
Unete a las decenas de miles de
aficionados que han descubierto
esta increible (y educativa)
plataforma de prototipos. Escrito
por el co-fundador del proyecto
Arduino, Introduccién a Arduino
te ayuda a divertirte.
Mustraciones por Elisa Canducci
Make: ussi2.s9 CAN $12.99
s ISBN: 978-0-596-15551-3
[Link]
O'REILLY
|
51299
DANN iIntroduccion
a
Arduino
Massimo Banzi
Primera ediciénO'REILLY”
BEING + CAMBRIDGE + FARNHAM + KOLN + SEBASTOPOL - TAIPE! + TOKYO
Introduccién a Arduino
by Massimo Banzi
Copyright © 2009 Massimo Bana. All rights reserved. Printed in US.A,
Publicado por Make:Books, Una huella de Maker Media, Una divisién de O'Reilly Mecia, Inc
1005 Gravenstein Highway North, Sebastopol, CA 95472
O'Reilly books Pueden ser comarados para uso educativo, comercial o de promocién de ventas. Para tener
més informacién, departamento de ventas corporative / institucional: 800-988-9938 or
corporate@[Link],
Historial de impresin: October 2008: Fist Edition
Editor: Dale Dougherty
Editor Asociado: Dan Woods
Editor ejecutivo: Brian Jepson
Director creative: Daniel Carter
Disefiador: Brian Scott
Jefe de produecién: Terry Bronson
Editor de copia: Nancy Kotary
Indexador: Patt Schiendelman
lustraciones: Elsa Canducei
Elogotipo de O'Reilly es una marca registrada de O'Reilly Mecia, Inc. Las designaciones dela serie Make: Projects
Ylas referencias relacionadas son marcas reistradas de O'Relly Media, Inc. Las marcas comerciales de terceros
utiizadas en este trabajo son propiedad de Sus respectivos propietarios,
“Mensaje importante a nuestros lectores: Su seguridad es su propia responsabilidad, incuyendo el uso apropiado
del equipo y equipo de seguridad, y determinar si usted tiene habildad y experiencia adecuadas. La electricidad y
‘otros recursos utilizados para estos proyectos son peligrosos a menos que se utlicen adecuadamente y con las,
precauciones adecuadas,incluido el equipo de seguridad, Algunas fotos ilustratvas na representan precauciones
‘© equinos de seguridad, con el fin de mostrar los pasos de proyecto con mayor claridad, Estos proyectos no estan
destinados a ser utlizados por nos
El uso de las instruccionesy sugerencias de Introducién @ Arduino es bajo su propio riesgo. O'Reilly Mest, nc. y
€elautor renuncian a toda responsabilidad por cvalaule dafo, lesién o gasto resultante. Es su responsabilidad
_asegurarse de que sus actividades cumplen con las leyesaplicables,Incluidos los derechos de auto.
ISaN: 978-0:596-15551.3Contenido
Prefacio .
Aintroduccin . .
Audiencia deseada
£Qué es la informatica fisica?
2/ El Camino del Arduino 3
Prototipado. 6
Jugueteando 7
Remiendo. 8
Curvado del Circuito. ceveeeeeeseeee ce -10
Teclado Hacks. 2
Nos encanta Junk! 4
Juguetes de Hacking, cS
Colaboracién, 16
3/ La Plataforma Arduino 19
El hardware de Arduino. 19
El Software (IDE) 22
Instalacién de Arduino en su computadora, . coven 2
Instalacién de controladores: Macintosh 23
Instalacién de controladores: Windows. 23
Identificacién de puertos: Macintosh... 2.2... ceteeeeteee eee DS
Identificacién del Puerto: Windows 26
4/ Realmente empezando con Arduino
Sensores y Actuadores.
Parpadeando un LED.
Pasame el Parmesano. 34
Arduino no es para Quitters 35
Real Tinkerers Escribir Comentarios. ....00.00 sccsseereeeesesereeere eee 3S
El Cédigo, paso a paso. 36
Lo que vamos a construlr 38
eQuE es la electricidad? ee. e cee ee cesar teen ects tte te eere eee 89
Uso de un pulsador para controlar el LED. 42Como funciona esto? Aa
Un circuito, mil comportamientos ......66. cseeereseeseeeeeeees 45
5/ Entrada y salida avanzadas . . betes 53
Prueba de otros sensores de encendido / apagado.... .. 258
Control de luz con PWM. 56
Utilice un sensor de luz en lugar de un pulsador. 62 Entrada
analégica. 64
Pruebe otros sensores analégicos. 68
Comunicacién serial ........cecsecescseseevsveeeeesevetseeeteee see 168
Conduccién de cargas mas grandes (motores, limparas y similares) 70
Sensores complejos. costes 70
6/Hablando con la nube . . sete cece eee eB
Planificacion. cee . cee 75
Codificacién. 76
Montaje del Circuito. ..... wees cee coven 83
‘Aqui es cémo montarto. a4
7/ Solucién de problemas 87
Prueba de la Junta. 38
Prueba de su circuito de Breadboard. 89
Aisiar los problemas... essceesesesssessseeesiseesieeiseeeeseseesees 290
Problemas con el IDE. 90
Como obtener ayuda en linea 91
Apéndices .. eee reer.)
‘Apéndice A / El tablero de pan...... . 93
Apéndice B / Lectura de los Reactores y Condensadores. ...2.2+c+s+eese+1+98
Apéndice C/ La referencia répida 97 Apéndice
D / Lectura de diagramas esquemiticos. 110Prefacio
Hace unos afios me dieron un reto muy interesante: ensefiar a los
disefiadores el minimo en la electrénica para que pudieran construir
prototipos interactivos de los objetos que estaban disefiando.
Comencé a seguir un instinto subconsciente para ensefiar la electrénica de la misma
manera que me ensefiaron en la escuela. Mas tarde me di cuenta de que simplemente
no estaba funcionando tan bien como me gustaria, y comenz6 a recordar sentado en
que se me lanz6 sin
una clase, aburrido como el infierno, escuchando toda esa teor
ninguna aplicacién practica pare ello,
En realidad, cuando estaba en la escuela ya conocfa la electronica de una manera muy
empirica: muy poca teor‘a, pero mucha experiencia practica.
Empecé a pensar en el proceso por el cual aprendi la electrénica
» Desmonté cualquier dispositive electrénico que pudiera poner en mis manos.
» Aprendi lentamente cusles eran todos esos componentes.
» Empecé a mezclar con ellos, cambiando algunas de las conexiones dentro de ellos y
viendo lo que le pasé al dispositivo: normalmente algo entre una explosién y una nube
de humo.
» Empecé a construir algunos kits vendidos por revistas de electrénica.
» Combiné dispositivos que habia hackeado, y reutilizacion de kits y otros circuitos que
encontré en revistas para hacerlos hacer cosas nuevas.
Como un nifio, siempre me fasciné descubrir cémo funcionan las cosas; Por lo tanto,
solia separarlos. Esta pasién crecié mientras apuntaba cualquier objeto no utilizado en
la casa y luego lo desmonté en pedacitos. Eventualmente, la gente me trajo todo tipo de
dispositivos para diseccionar. Mis més grandesproyectos en ese momento eran un lavavaiillas y una computadora temprana que
provenia de una oficina de seguros, que tenia una impresora enorme, tarjetas
electrénicas, lectores de tarjetas magnéticas y muchas otras partes que resultaron muy
interesantes y desafiantes para desmontar completamente.
Después de bastante de esta diseccién, sabia qué componentes electrénicos eran y mas
‘© menos lo que hicieron. Ademas, mi casa estaba llena de viejas revistas electrénicas
que mi padre debié haber comprado a principios de los afios setenta. Pasé horas
leyendo los articulos y mirando los diagramas de circuito sin entender mucho.
Este proceso de leer los articulos una y otra vez, con el beneficio del conocimiento
adquirido al desmontar circuitos, creé un circulo virtuoso lento.
Un gran avance llegé una Navidad, cuando mi papé me dio un kit que permitia a los
adolescentes a aprender sobre la electrénica. Cada componente se alojaba en un cubo
de plastico que se acoplaba magnéticamente con otros cubos, estableciendo una
conexién; El simbolo electrénico fue escrito en la parte superior. Poco sabia yo que el
juguete era también un hito del disefio alemén, porque Dieter Rams lo disefié en los
afios 60,
Con esta nueva herramienta, podrfa répidamente montar circuitos y probarlos para ver
qué pasé. El ciclo de prototipado fue cada vez més corto.
Después de eso, construi radios, amplificadores, circuitos que producirian ruidos
horribles y sonidos agradables, sensores de lluvia y pequefios robots.
He pasado mucho tiempo buscando una palabra en inglés que resumirfa esa forma de
trabajar sin un plan especifico, comenzando con una idea y terminando con un
resultado completamente inesperado. Finalmente, "jugueteat" vino adelante. Reconoci
cémo esta palabra se ha utilizado en muchos otros campos para describir una forma de
operar y retratar a las personas que emprenden un camino de exploracién. Por
ejemplo, la generacién de directores franceses que dieron a luz a la "Nouvelle Vague”
fueron llamados los "tinkerers", La mejor definicién de retoque que he encontrado
viene de una exposicién que se llevé a cabo en el Exploratorium en San Francisco:
Bricolaje es lo que sucede cuando se intenta algo que no saben cémo hacer, guiado por
el capricho, fa imaginacién y la curiosidad. Cuando usted juguetea, no hay instrucciones,
pero tampoco hay fracasos, no hay formas correctas 0 incorrectas de hacer las cosas. Se
trata de averiguar cémo funcionan las cosas y volverlas a trabajar.
vi Introduceién a AxduineContraptions, méquinas, wildly mismatched los objetos que trabajan en armonia - esto
es la materia del retoque.
El bricolaje es, en su forma mds bdsica, un proceso que combina juego e investigacién.
—[Link]/tinkering,
Desde mis primeros experimentos sabia cudnta experiencia necesitarias para poder
crear un circuito que haria lo que querias a partir de los componentes basicos.
Otro gran avance llegé en el verano de 1982, cuando fui a Londres con mis padres y
pasé muchas horas visitando el Museo de la Ciencia. Acababan de abrir una nueva ala
dedicada a las computadoras, y siguiendo una serie de experimentos guiados, aprendi
los fundamentos de la matemética binaria y la programacién.
Alli me di cuenta de que en muchas aplicaciones, los ingenieros ya no estaban
construyendo circuitos a partir de componentes basicos, sino que en su lugar
implementaban mucha inteligencia en sus productos usando microprocesadores. El
software estaba reemplazando muchas horas de disefio electrénico, y permitirfa un
ciclo més corto de manipulacién.
Cuando volvi empecé a ahorrar dinero, porque queria comprar una computadora y
aprender a programar.
Mi primer y mas importante proyecto después de eso fue usar mi nueva computadora
2X81 para controlar una maquina de soldar. Sé que no suena como un proyecto muy
emocionante, pero habia una necesidad para él y era un gran desafio para mi, porque
acababa de aprender cémo programar. En este punto, quedé claro que escribir lineas
de cédigo requeriria menos tiempo que modificar circuitos complejos.
Veinte afios més tarde, me gustaria pensar que esta experiencia me permite enseftar a
la gente que ni siquiera recuerdo haber tomado ninguna clase de mateméticas y para
infundirlos con el mismo entusiasmo y la capacidad de juguetear que tuve en mi
juventud y tener Desde entonces,
—Massimo
Prefacio viiExpresiones de gratitud
Este libro esta dedicado a Luisa y Alexandra
En primer lugar quiero agradecer a mis socios del Equipo Arduino
David Cuarteles, David Melis, Gianluca Martino, and Tom Igoe. Es una experiencia incre‘ble trabajar con ustedes.
Barbara Ghella, no lo sabe pero, sin su preciado consejo, Arduino y este libro tal vez no hayan pasado nunca,
Bill Verplank por haberme ensefiado mas que Computacién Fisica,
Gillan Crampton-Smith por darme una oportunidad y por todo lo que he aprendio de olla
Hernando Barragan por el trabajo que ha realizado en Cableado.
Brian Jepson por ser un gran editor y entusiasta partidario todo el tiempo.
Nancy Kotary, Brian Scott, Terry Bronson y Pati Schiendelman por convert lo que escrbi en un libro terminado,
‘Quiero agradecer a mucha més gente, pero Brian me dice que me estoy quedando sin espacio, ast que voy a
‘enumerar un pequefio nimero de personas que tengo que agradecer por muchas razones:
‘Adam Somlai-isher lat Cortellet, Alberto Pezzott,
‘Alessandro Germinasi, Alessandro Masserdott, Andrea Piccolo,
‘Anna Capen, Casey Reas, Chris Anderson, Claudio Moderni
Clementina Coppin, Concetta Capecchi, Csaba Waldhauser,
Dario Buzzin Dario Molinar, Dario Parravicin, Donata Piccolo,
tdoardo Brambilla Elsa Canducc Fabio Violante, Fabio Zanola,
Fabrizio Pignoloni, Flavio Mauri, Francesca Mocellin Francesco
Monico, Giorglo Olivere, Giovanna Gard, Giovanni Battistini, Heather Martin, Jennifer Bove, Laura Dellamotta,
Lorenzo
Parravicini, Luca Rocco, Marco Baloni, Marco Eynard, Maria
“Teresa Longoni, Massimiliano Bolondi, Matteo Rivolta, Mathias
Richter, Maurizio Proa, Michael Thorpe, Natala Jordan,
Ombretta Banal, Oreste Banal, Oscar Zogela, Pietro Dore,
Prof. Salvion, Raffaella Ferrara, Renzo Giusti, Sana Athanas, Sara Carpentier Sigrid Wiederhecker, Stefano Mit,
Ubi De Feo, Veronika Bucko.
vidi Introduceién @ ArduinoCémo contactarnos
Hemos verficado la informacién de este libro de a mejor manera posible,
pero puede que encuentre cosas que han cambiado (incluso que hemos
‘cometide errores!), Como lector ée este libro, puede ayudarnos a mejorar
{uturas ediciones envidnconos sus comentarios. Por favor, higanos saber
‘acerca de cualquier error, inexactitue, declaraciones engafosas 0 confusas y
‘erores tipogrdficas que encuentre en cualquier parte de este libro,
‘También higanos saber qué podemos hacer para que este libro sea ms Util
para usted, Tomamos en serio sus comentarios ytrataremos de incorporar
sugerencias razonables en futuras ediciones.
Puede escribienos a
Media Maker
1005 carretera de gravenstein norte
Sebastopol, CA 95472
(09) 998-9938 (en los Estados Unidos o Canad)
(707) 828-0515 (internacional / local)
(707) 828-0108 (fax)
“Maker Media es una division de O'Reilly Media dedicada enteramente ala
reciente comunidad de personas ingeniosas que creen que silo puedes
Imaginar, puedes hacerlo, Consistiendo en la revista MAKE, la revista CRAFT,
Maker Fare, asi como la sere de libros Hacks, Make: Projects y OV Science,
Maker Media fomenta la mentalidad Do-t-voursef proporcionanda
Inspiracine instruccién creativa.
Para mas informacién sobre Maker Media, vsitenos en linea:
HACER [Link]
CRAFT: [Link]
Hacer Maker: www [Link]
Hacks: www [Link]
Para comentar el libro, envie un correo electrénico a
bookauestions@[Link],
Elstio web de O'Reilly para Introduccién a Arduino incluye ejemplos, erratas
Yy planes para futuras ediciones. Puede encontrar esta gina en
‘[Link]/getstartedarduino,
Para obtener més informacién sobre este libro y otros, consulte el sitio web
de OReilly: [Link]
Para obtener més informacién sobre Arduino, incuidos foros de discusion y
documentacisn adicional, consute [Link]1/ Introduccién
Arduino es una plataforma de computacion fisica de
cédigo abierto basada en una sencilla tarjeta de
entrada / salida (E / S) y un entorno de desarrollo
que implementa el lenguaje de procesamiento
(www. [Link]). Arduino puede usarse para
desarrollar objetos interactivos independientes o
puede conectarse al software de su computadora
(como Flash, Processing, VVVV 0 Max / MSP). Los
tableros se pueden montar a mano o se pueden
adquirir preensamblados; El IDE de cddigo abierto
(Integrated Development Environment) se puede
descargar gratuitamente desde [Link].
Arduino es diferente de otras plataformas en el mercado debido a estas caracteristicas:
»Es un entorno multiplataforma; Puede funcionar en Windows, Macintosh y Linux.
»Se basa en la programacién de procesamiento IDE, un entorno de desarrollo facil de
usar utilizado por artistas y disefiadores.
»Se programa a través de un cable USB, no de un puerto serie. Esta caracteristica es util,
porque muchas computadoras modernas no tienen puertos serie.
»Se trata de hardware y software de cédigo abierto, si lo desea, puede descargar el
diagrama de circuitos, comprar todos los componentes y hacer su propio, sin pagar nada
a los fabricantes de Arduino.
duceién 1» El hardware es barato, La tarjeta USB cuesta unos 20 € (actualmente, unos 35
dilares) y la sustitucién de un chip quemado en la placa es facil y cuesta no més de 5 € 0
4€. Asi que puedes permitirte cometer errores.
» Hay una comunidad activa de usuarios, por lo que hay muchas personas que pueden
ayudarte.
» El Proyecto Arduino se desarrollé en un entorno educativo y por lo tanto es ideal para
los recién llegados para que las cosas funcionen rdpidamente.
Este libro esté disefiado para ayudar a los principiantes a comprender los beneficios que
pueden obtener al aprender a usar la plataforma Arduino y adoptar su filosofia
Audiencia deseada
Este libro fue escrito para los usuarios “originales” de Arduino: disefiadores y artistas.
Por lo tanto, trata de explicar las cosas de una manera que podria conducir a algunos
ingenieros locos. En realidad, uno de ellos llamé a los capitulos introductorios de mi
primer borrador "fluff". Ese es precisamente el punto. Seamos realistas: la mayoria de
los ingenieros no son capaces de explicar lo que hacen a otro ingeniero, y mucho menos
aun ser humano normal. Ahora vamos a profundizar en la pelusa.
NOTA: Arduino se basa en el trabajo de tesis que Hernando Barragan hizo en la
plataforma Wiring mientras estudiaba bajo Casey Reas y yo en IDII Ivrea.
Después de que Arduino comenzé a ser popular, me di cuenta de cémo los
experimentadores, aficionados, y los hackers de todo tipo estaban empezando a
utilizarlo para crear objetos hermosos y locos. Me di cuenta de que todos ustedes son
artistas y disefiadores por derecho propio, asi que este libro es para ustedes también.
Arduino nacié para ensefiar a Interaction Design, una disciplina de disefio que sittia al
prototipo en el centro de su metodologia. Hay muchas definiciones de Interaction
Design, pero la que yo prefiero es:
Interaction Design es el disefio de cualquier experiencia interacti
En el mundo actual, Interaction Design se ocupa de la creacién de experiencias
significativas entre nosotros (los seres humanos) y los objetos. Es una buena manera de
explorar la creacién de experiencias hermosas -y quizas incluso polémicas- entre
nosotros y la tecnologia. Interaction Design fomenta el disefio a través de un proceso
iterativo basado en prototipos
Introduccién a Arduino 2De fidelidad cada vez mayor. Este enfoque, también parte de algunos tipos de disefio.
"convencional", puede extenderse para incluir la creacién de prototipos con tecnologia;
En particular, la creacién de prototipos con electrénica,
El campo especifico de Disefio de Interaccién involucrado con Arduino es Computacién
Fisica (0 Disefio de Interaccién Fisica)
éQué es la informatica fisica
Computacién fisica utiliza la electrénica para el prototipo de nuevos materiales para los
disefiadores y artistas.
Implica el disefio de objetos interactivos que pueden comunicarse con humanos usando.
sensores y actuadores controlados por un comportamiento implementado como un
software que se ejecuta dentro de un microcontrolador (una computadora pequefia en
un solo chip).
En el pasado, usar la electrénica significaba tener que tratar con ingenieros todo el
tiempo, y construir circuitos un pequefio componente en ese momento; Estos temas
evitaban que las personas creativas jugaran con el medio directamente. La mayoria de
las herramientas estaban destinadas a los ingenieros y requerian un amplio.
conocimiento. En los ultimos afios, los microcontroladores se han vuelto mas baratos y
{féciles de usar, permitiendo la creacién de mejores herramientas.
El progreso que hemos hecho con Arduino es acercar estas herramientas un paso més al
novicio, permitiendo a la gente comenzar a construir cosas después de sélo dos o tres
dias de un taller.
Con Arduino, un disefiador o artista puede llegar a conocer los fundamentos de la
electronica y los sensores muy rapidamente y puede comenzar a construir prototipos
con muy poca inversi6n.
Introduccién 32/ El Camino del Arduino
La filosofia de Arduino se basa en hacer disefios en
lugar de hablar sobre ellos. Es una busqueda
constante de formas mas rapidas y mas potentes de
construir mejores prototipos. Hemos explorado
muchas técnicas de prototipado y desarrollado
maneras de pensar con nuestras manos.
La ingenieria clasica se basa en un proceso estricto para obtener de A a B; El Camino
‘Arduino se deleita en la posibilidad de perderse en el camino y encontrar C en su
lugar:
Este es el proceso de bricolaje que nos encanta-jugar con el medio de una manera
abierta y encontrar lo inesperado. En esta biisqueda de maneras de construir mejores
prototipos, también seleccionamos una serie de paquetes de software que permiten
el proceso de manipulacién constante del software y del hardware.
Las siguientes secciones presentan algunas filosofias, acontecimientos y pioneros que
han inspirado el Camino del Arduino.
El Camino a Arduino 5Prototipos
El prototipado esté en el corazén del Camino Arduino: hacemos cosas y construimos
objetos que interactian con otros objetos, personas y redes. Nos esforzamos por
encontrar una manera més sencilla y répida de prototipo en la forma mas barata
posible.
Muchos de los principiantes que se acercan a la electrénica por primera vez piensan
que tienen que aprender a construir todo desde cero. Esto es una pérdida de energia:
lo que quieres es poder confirmar que algo esté funcionando muy rdpidamente para
que puedas motivarte para dar el siguiente paso 0 tal vez incluso motivar a alguien a
darte mucho dinero para hacerlo.
Es por eso que desarrollamos el "prototipado oportunista": épor qué gastar tiempo y
energia construyendo desde cero, un proceso que requiere tiempo y conocimiento
técnico profundo, cuando podemos tomar dispositivos ya hechos y hackearlos para
explotar el duro trabajo realizado por grandes Empresas y buenos ingenieros?
Nuestro héroe es James Dyson, quien hizo 5127 prototipos de su aspiradora antes de
que estuviera satisfecho de que lo habia conseguido (www. international
[Link]/jd/[Link]).Jugueteando
Creemos que es esencial jugar con la tecnologia, explorando diferentes posibilidades
directamente en hardware y software, a veces sin una meta muy definida,
La reutilizacién de la tecnologia existente es una de las mejores maneras de manipuler.
Conseguir juguetes baratos 0 equipos viejos desechados y hackearlos para hacerlos
hacer algo nuevo es una de las mejores maneras de obtener grandes resultados.
El Camino a ArduiniParche
Siempre he sido fascinado por la modularidad y la capacidad de construir sistemas
complejos mediante la conexién de dispositivos simples. Este proceso esté muy bien
representado por Robert Moog y sus sintetizadores analdgicos. Los misicos
construyeron sonidos, intentando combinaciones interminables "juntando” diferentes
médulos con cables. Este enfoque hizo que el sintetizador parezca un viejo conmutador
telefénico, pero combinado con las numerosas perillas, era la plataforma perfecta para
mezclar misica sonora e innovadora. Moog lo describié como un proceso entre
“testificar y descubrir", Estoy seguro de que la mayoria de los muisicos al principio no
sabia lo que todos esos cientos de botones, pero lo intentaron y trataron, refinando su
propio estilo sin interrupciones en el flujo.
Reducir el ntimero de interrupciones en el flujo es muy importante para la creatividad:
mientras mds transparente sea el proceso, mas cambios tendrén.
Esta técnica ha sido traducida al mundo del software por ambientes de "programacién
visual" como Max, Pure Data 0 VWWV. Estas herramientas pueden visualizarse como
"cajas" para las diferentes funcionalidades que proporcionan, permitiendo al usuario
construir "parches" conectando estas cajas. Estos entornos permiten al usuario
experimentar con la programacién sin la interrupcién constante tipica del ciclo
habitual: "tipo programa, compilacién, maldicién-hay un error, error de correccién,
compilar, ejecutar". Si usted es més visual mente, le recomiendo que probarlos.8
So
Prererers
9
Q
eS
a
So
oO
Oo
oe
goo
oe
9a
9
El Camino a Arduino 9Curvado del circuito
El curvado de circuitos es una de las formas mas interesantes de manipulacién. Es
el cortocircuito creativo de los dispositivos audio electrénicos de bajo voltaje,
bateria-accionados como pedales del efecto de la guitarra, juguetes de los nifios, y
pequefios sintetizadores para crear los nuevos instrumentos musicales y los
generadores sanos. El coraz6n de este proceso es el "arte del azar". Comenzé en
1966 cuando Reed Ghazala, por casualidad, cortocircuité un amplificador de
juguete contra un objeto de metal en su cajén de escritorio, lo que resulta en una
corriente de sonidos inusuales. Lo que mas me gusta de los curvadores de circuitos
es su capacidad de crear los dispositivos més locos, alejéndose con la tecnologia sin
necesariamente entender lo que estén haciendo en el lado tedrico.SNIFFIN' GLUE.
+ OTHER Rock ‘nt’ Rout =
FOR Punks 1@ ore wnsee
ee Tals 1S A CHORD
ims 1S ANOtAay
Thin 15.4 THIRD
Now Foam 8 Bavp
Es un poco como el fanzine Sniffin ‘Glue mostrado aqui: durante la era del punk,
conocer tres acordes en una guitarra fue suficiente para comenzar una banda. No
dejes que los expertos en un campo te digan que nunca serds uno de ellos.
Ignorarlos y sorprenderlos.
El Camino aTeclado HacksLos teclados de computadora siguen siendo la principal forma de interactuar con
una computadora después de més de 60 afios. Alex Pentland, director académico
del MIT Media Laboratory, coment6 una vez: "Disculpe la expresién, pero los
Urinarios de los hombres son mas inteligentes que las computadoras. Las
computadoras estén aisladas de lo que esté a su alrededor "
Como tinkerers, podemos implementar nuevas formas de interactuar con el
software sustituyendo las claves por dispositivos capaces de detectar el entorno.
Desmontar un teclado de computadora revela un dispositivo muy simple (y barato).
El corazén de ella es una tabla pequefia. Normalmente es un circuito oloroso verde
© marrén con dos conjuntos de contactos va a dos capas de plastico que sostienen
las conexiones entre las diferentes teclas. Siretira el circuito y utiliza un cable para
conectar dos contactos, ver aparecer una letra en la pantalla del ordenador. Si
sales a comprar un detector de deteccién de movimiento y lo conecta a tu teclado,
verés que se presiona una tecla cada vez que alguien camina delante de la
computadora. Asigne esto a su software favorito, y usted ha hecho su
computadora tan elegante como un urinario. Aprender acerca de la pirateria de
teclado es un componente clave de creacién de prototipos y computacién fisica.Citado en Sara Reese Hedberg, "MIT Media Lab de la busqueda de computadoras
perceptivas," Sistemas Inteligentes y sus aplicaciones, IEEE, julio / agosto 1998.
E1 Camino a Arduino 13
Nos encanta Junk!
La gente tira lejos mucha tecnologia actualmente: viejas impresoras,
computadoras, maquinas extrafias de la oficina, equipo técnico, e incluso
muchos de materia militar. Siempre ha habido un gran mercado para esta
tecnologia sobrante, especialmente entre los jévenes y / 0 los hackers mas
pobres y los que estén recién comenzando. Este mercado se hace evidente en
Ivrea, donde desarrollamos Arduino. La ciudad era la sede de la empresa
Olivetti. Habian estado haciendo computadoras desde los afios sesenta; A
mediados de los noventa, arrojaron todo en las chatarrerias de la zona. Estos
estan llenos de piezas de computadora, componentes electrénicos y
dispositivos extrafios de todo tipo. Pasamos innumerables horas alli,
comprando todo tipo de artefactos por muy poco dinero y pirateando
nuestros prototipos. Cuando se puede comprar un millar de altavoces por muy
poco dinero, que esta obligado a llegar a una idea al final. Acumular basura ypasar por ella antes de empezar a construir algo desde cero.Juguetes de Hacking
Los juguetes son una fantastica fuente de tecnologfa barata para hackear y
reutilizar, como lo demuestra la préctica de la flexidn de circuitos antes
mencionada. Con la afluencia actual de miles de juguetes de alta tecnologia muy
baratos de China, puede crear ideas répidas con unos pocos gatos ruidosos y un par
de espadas ligeras. He estado haciendo esto por algunos afios para que mis
estudiantes comprendan que la tecnologia no es aterradora o dificil de acercarse.
Uno de mis recursos favoritos es el folleto "Low Tech Sensors and Actuators" de
Usman Haque y Adam Somlai-Fischer ([Link]). Creo que han
descrito perfectamente esta técnica en ese manual, y lo he estado usando desde
entonces.Colaboracién
La colaboracién entre los usuarios es uno de los principios clave en el mundo
Arduino-a través del foro en [Link], personas de diferentes partes de!
mundo se ayudan mutuamente a aprender sobre la plataforma. El equipo de
Arduino alienta a las personas a colaborar a nivel local, asi como ayudarles a crear
‘grupos de usuarios en cada ciudad que visiten. También creamos un Wiki llamado
Playground” ([Link]/playground) donde los usuarios documentan sus
descubrimientos. Es tan asombroso ver cudnto conocimiento estas personas
vierten en la Web para que todos lo usen. Esta cultura de compartir y ayudarnos
mutuamente es una de las cosas que mas me enorgullece de Arduino,3/ La Plataforma Arduino
Arduino se compone de dos partes principales: el
tablero de Arduino, que es la pieza de hardware en
la que trabajas cuando construyes tus objetos; Y el
Arduino IDE, el software que ejecuta en su
computadora. Utilice el IDE para crear un boceto
(un pequefio programa de computadora) que
cargue en la tarjeta Arduino. El boceto le dice al
consejo qué hacer.
No hace mucho tiempo, trabajar en hardware significaba construir circuitos desde cero,
usando cientos de componentes diferentes con nombres extrafios como resistencias,
condensadores, inductores, transistores, etc.
Cada circuito fue "cableado” para hacer una aplicacién especifica, y hacer cambios
necesarios para cortar cables, conexiones de soldadura, y més.
Con la aparicién de tecnologias digitales y microprocesadores, estas funciones, que una
vez se implementaron con cables, fueron reemplazadas por programas de software.
El software es més facil de modificar que el hardware. Con algunas pulsaciones de
teclas, puede cambiar radicalmente la légica de un dispositive y probar dos o tres
versiones en la misma cantidad de tiempo que le llevaria a soldar un par de
resistencias.
El hardware de Arduino
Eltablero de Arduino es un pequefio tablero del microcontrolador, que es un pequefio
Circuito (el tablero) que contiene una computadora entera en un pequefio.
microprocesador (el microcontrolador). Este equipo es por lo menos mil veces menos.
potente que el MacBook que estoy usando para escribir esto, pero es mucho mas
barato y muy ttil para construir dispositivos interesantes. Mira el tablero de Arduino:
verés un chip negro con 28 "piernas” - ese chip es el ATmega68, el corazén de tu
tablero.
La Plata
rma Arduino 19Nosotros (el equipo de Arduino) hemos colocado en esta placa todos los componentes
que son necesarios para que este microcontrolador funcione correctamente y para
comunicarse con su computadora. Hay muchas versiones de este tablero; El que
usaremos a lo largo de este libro es el Arduino Duemilanove, que es el mas sencillo de
usar y el mejor para aprender. Sin embargo, estas instrucciones se aplican a versiones
anteriores del tablero, incluyendo el més reciente Arduino Diecimila y el Arduino NG
més antiguo. La Figura 3-1 muestra el Arduino Duemilanove; La Figura 3-2 muestra el
Arduino NG.
En esas ilustraciones, ves la placa Arduino. Al principio, todos esos conectores podrian
ser un poco confusos. Aqui esta una explicacién de lo que hace cada elemento del
tabler
14 pines digitales de 1/0 (pines 0-13)
Estas pueden ser entradas o salidas, que se especifica mediante el croquis que se crea
en el IDE,
6 Pines de Entrada analégicos (pines 0-5)
Estos pines de entrada analégicos dedicados toman valores analégicos (es decir, lecturas
de tensién de un sensor) y los convierten en un ntimero entre 0 y 1023.
6 Pines de Salida analdgica (pines 3, 5, 6, 9, 10y 11)
Estos son en realidad seis de los pines digitales que se pueden reprogramar para la
salida analégica utilizando el boceto que se crea en el IDE
La placa puede ser alimentada desde el puerto USB de su computadora, la mayoria de
los cargadores USB, 0 un adaptador de CA (recomendado de 9 voltios, punta del cafién
de 2,1 mm, centro positivo). Sino hay ninguna fuente de alimentacién enchufada en el
enchufe, la energia vendrd de la tarjeta del USB, pero tan pronto como usted tapa una
fuente de alimentacién, la tarjeta la utilizard autométicamente.
NOTA: Si esté utilizando el Arduino-NG antiguo 0 Arduino Diecimila, deberd
configurafite de seleccién de potencia (denominado PWR_SEL en la placa) para
especificar la alimentacién EXT (externa) 0 USB. Este puente se puede encontrar entre
el enchufe para el adaptador de CA y el puerto USB.x Duemilanove,,
ess
a
3 Perr TOTTI
3
a
Figura 3-1, El Ardulno Duenilanove
5uGnd90 912845
Figura 3-2, Bi Arduino NG
La Plataforma Arduino 21El Software (IDE)
ELIDE (Integrated Development Environment) es un programa especial que se ejecuta
en su computadora y que le permite escribir bocetos para la placa Arduino en un
lenguaje sencillo basado en el lenguaje Processing ([Link]). La magia
ocurre cuando se presiona el botén que carga el boceto a la pizarra: el cédigo que se
ha escrito se traduce al lenguaje C (que generalmente es muy dificil para un
principiante) y se pasa al compilador avr-gcc , Una importante pieza de software de
cédigo abierto que hace la traduccién final al lenguaje entendido por el
microcontrolador. Este Ultimo paso es muy importante, porque es donde Arduino hace
su vida més simple ocultando lejos tanto como sea posible de las complejidades de la
programacién de microcontroladores,
Elcciclo de programacién de Arduino es basicamente el siguiente:
» Conecte su tarjeta en un puerto USB de su computadora,
» Escriba un bosquejo que traeré el tablero a la vida
» Cargue este boceto en la placa a través de la conexién USB y espere un par de
segundos para que la tarjeta se reinicie.
» La tabla ejecuta el boceto que escribid,
NOTA: La instalacién de Arduino en Linux es algo complicada en el momento de
escribir este articulo. Consulte [Link]/playground/Learning/Linux para
obtener instrucciones completas.
Instalacién de Arduino en el equipo
Para programar la placa Arduino, primero debe descargar el entorno de desarrollo (IDE)
desde aqui: [Link]/en/Main/Software. Elija la versién correcta para su
sistema operativo.
Descargue el archivo y haga doble clic en él para descomprimirlo; Esto creard una
carpeta llamada arduino- [version], como arduino-0012. Arrastra esa carpeta a donde
quieras que sea: tu escritorio, tu carpeta / Aplicaciones (en un Mac) 0 tu carpeta C: |
Archivos de programa (en Windows). Ahora, siempre que desee ejecutar el IDE de
‘Arduino, abrird la carpeta arduino y haga doble clic en el icono de Arduino. Pero no
hagas esto todavia; Hay un paso més para realizar.NOTA: Si tiene problemas para ejecutar el IDE de Arduino, consulte el Capitulo 7,
Solucién de problema:
Ahora debe instalar los controladores que permiten que su computadora hable con su
tarjeta a través del puerto USB.
Instalacién de controladores: Macintosh
Busque la carpeta Drivers dentro de la carpeta orduino-0012 y haga doble clic en el
archivo llamado FTDIUSBSerialDriver_x_x_x.dmg (x_x_x ser reemplazado por el
niimero de versién del controlador, por ejemplo FTDIUSBSerialDriver_
v2_2_9 [Link]). Haga doble clic en el archivo dmg para montarlo.
NOTA: Si estd utilizando una Mac basada en Intel, como MacBook, MacBook Pro,
MacBook Air, Mac Pro o Intel Mini-Mac o iMac, asegurese de instalar el controlador
con “Intel” en su nombre, como En FTDIUSBSerialDriver_v2_2_9_Intel.dmg. Sino esta
indo una Mac basada en Intel, instale la que no tenga "Intel" en su nombre.
A continuacién, instale el software del paquete FTDIUSBSerialDriver haciendo doble clic
en él, Siga las instrucciones proporcionadas por el instalador y escriba la contrasefia de
un usuario administrativo si se le solicita. Al final de este proceso, reinicie el equipo para
asegurarse de que los controladores estén correctamente cargados. Ahora conecte la
tarjeta en su computadora. La luz PWR de la tarjeta debe encenderse y el LED amarillo
con la etiqueta "L" deberia comenzar a parpadear. Sino es asi, consulte el Capitulo 7,
Solucién de problemas.
Instalacién de controladores: Windows
Enchufe la tarjeta Arduino en la computadora; Cuando aparezca la ventana Asistente
para hardware nuevo encontrado, Windows intentard primero encontrar el controlador
en el sitio de Windows Update.
Windows XP le preguntaré si desea comprobar Windows Update; Si no desea utilizar
‘Windows Update, seleccione la opcién "No, no en este momento” y haga clic en
Siguiente.
En la siguiente pantalla, elija "Instalar desde una lista o ubicacién especifica" y haga clic
en Siguiente
2 Arduino 23Marque la casilla "Incluir esta ubicacién en la busqueda", haga clic en Examinar,
seleccione la carpeta donde instalé Arduino y seleccione la carpeta Drivers \ FTDI USB
Drivers como ubicacién. Haga clic en Aceptar y en Siguiente.
Windows Vista primero intentara encontrar el controlador en Windows Update; Si esto
falla, puede indicarle que busque en la carpeta Drivers \ FTDI Drivers USB.
Pasaré por este procedimiento dos veces, porque el equipo primero instala el
controlador de bajo nivel, luego instala un cédigo que hace que la tarjeta se vea como
un puerto serie en el equipo.
Una vez instalados los controladores, puede iniciar el IDE de Arduino y comenzar a
utilizar Arduino,
A continuacién, debe determinar qué puerto serie esta asignado a su tarjeta Arduino:
necesitard esa informacién para programarla més tarde. Las instrucciones para obtener
esta informacién se encuentran en las siguientes secciones.Identificacién de puertos: Macintosh
En el ment Herramientas del IDE de Arduino, seleccione "Puerto serie" y seleccione el
puerto que comienza con /dev/[Link]-; Este es el nombre que utiliza su computadora
para referirse a la placa Arduino. La Figura 3-3 muestra la lista de puertos
Hel
‘utoFormat 37
Copy for Forum
Archive Seaton
Board i 2
7/ Bearole OL Bi lnKing LED ‘/dev/[Link]-A7007xQ8
PALIT TE
‘ev tty SerialPort-1
‘/devjcu SerialPort-1
‘dev tty Jep95-DataTransfer-1
‘dev cu Jep9S-ataTransfer-1
‘/ev/[Link]-Moder
‘[Link]-Moder
‘ev/[Link]-POA-Syne
Emi c
Paes ine
io Burn Bootloader >
void satunt)
pieode(LeD, ouTeUTs
old Lo900)
digitatieise(Len, HoH);
dainut2)
digitatarise(Le0, Lo
dalag(12)s
Figura 2-3
3 serie del IDE de ArduinoLa Plataforma Arduino 25
Identificacion del Puerto: Windows
En Windows, el proceso es un poco mas complicado, al menos al principio. Abra el
‘Administrador de dispositivos haciendo clic en el ment inicio, haga clic con el botén
secundario en Equipo (Vista) 0 Mi PC (XP) y seleccione Propiedades. En Windows XP,
haga clic en Hardware y elija Administrador de dispositivos. En Vista, haga clic en
‘Administrador de dispositivos (aparece en la lista de tareas a la izquierda de la ventana).
Busque el dispositive Arduino en la lista bajo "Puertos (COM & LPT)". El Arduino
apareceré como un puerto serie USB y tendré un nombre como COM3, como se muestra
en la Figura 3-4
[ 2: Device Manager Sie
peeeaaaeaamia
@9|/5|/O/bm|e/ ems
2 BESON- VMWARE
"Batre
sl Computer
ty Disk dives
A Display odopters
Puerto serie en el IDE de Arduino.
Ahora, el entorno de desarrollo de Arduino puede hablar con la placa Arduino y
programario.La Plataforma Arduino 274/ Realmente empezando
con Arduino
Ahora aprendera como crear y programar un
dispositivo interactivo.
Anatomia de un dispositivo interactivo
Todos los objetos que construiremos usando Arduino seguirdn un patrén muy simple
que llamaremos “Interactive Device". E! dispositive interactivo es un circuito electrénico
que es capaz de detectar el ambiente utilizando sensores (componentes electrénicos
que convierten las mediciones del mundo real en sefiales eléctricas). El dispositive
procesa la informacién que recibe de los sensores con un comportamiento que se
implementa como software. El dispositivo sera capaz de interactuar con el mundo
utilizando actuadores, componentes electrénicos que pueden convertir una sefial
eléctrica en una accién fisica.
/ percepeién
ow.
(mre )
era 4
El dispositive interactive
La Plataforma Arduino 29
Sensores y ActuadoresLos sensores y actuadores son componentes electrénicos que permiten que una pieza
de electrénica interactie con el mundo.
Como el microcontrolador es una computadora muy simple, slo puede procesar
sefiales eléctricas (un poco como los impulsos eléctricos que se envian entre las
neuronas de nuestro cerebro). Para que detecte luz, temperatura u otras cantidades
fisicas, necesita algo que pueda convertirlas en electricidad. En nuestro cuerpo, por
ejemplo, el ojo convierte la luz en sefiales que se envian al cerebro usando los nervios.
En electrénica, podemos utilizar un dispositivo simple llamado una resistencia
dependiente de la luz (un LDR o fotorresistor) que puede medir la cantidad de luz que lo
golpea y reportarlo como una sefial que puede ser entendida por el microcontrolador.
Una vez que los sensores han sido lefdos, el dispositivo tiene la informacién necesaria
para decidir como reaccionar. El proceso de toma de decisiones es manejado por el
microcontrolador, y la reaccién es realizada por actuadores. En nuestros cuerpos, por
ejemplo, los misculos reciben sefiales eléctricas del cerebro y las convierten en un
movimiento. En el mundo electrénico, estas funciones podrian ser realizadas por un
motor eléctrico 0 un motor eléctrico,
En las siguientes secciones, aprenderd a leer sensores de diferentes tipos y controlar
diferentes tipos de actuadores.
Parpadeando un LED
El boceto de parpadeo de LED es el primer programa que debe ejecutar para comprobar
sisu tarjeta Arduino funciona y esta configurada correctamente. También suele ser el
primer ejercicio de programacién que alguien hace cuando aprende a programar un
microcontrolador. Un diodo emisor de luz (LED) es un pequefio componente electrénico
que es un poco como una bombilla, pero es més eficiente y requiere voltajes mas bajos
para operar.
Su tarjeta Arduino viene con un LED preinstalado. Esté marcado con "L". También puede
agregar su propio LED-conectarlo como se muestra en la Figura 4-2.
K indica el catodo (negativo), 0 el plomo mas corto; A indica el 4nodo (positivo), 0 el
plomo mas largo.
Una vez que el LED esté conectado, necesita decirle a Arduino qué hacer. Esto se hace a
través de cédigo, es decir, una lista de instrucciones que le damos al microcontrolador
ara que haga lo que queremos.Figura 4-2
Conexion de un LED a Arduino
En su computadora, abra la carpeta donde copié el IDE de Arduino. Haga doble clic en el
icono de Arduino para iniciarlo. Seleccione Archivo> Nuevo y se le pedira que elija un
nombre de carpeta de boceto: aqui se almacenaré su boceto Arduino. Asigne un
nombre a Blinking_LED y haga clic en Aceptar. A continuacién, escriba el siguiente texto
(Ejemplo 01) en el editor de bocetos de Arduino (la ventana principal del IDE deArduino). También puede descargarlo desde [Link]/ getstartedarduino.
Deberd aparecer como se muestra en la Figura 4-3.
Verificar Cargar para 1/0 la tarjeta7/ Exanple 81 : Blinking LEI
define LED 13 // LED connected to
7/ digital pin 13
oid setun()
{
pinllodeCLED, OUTPUT): / sets the digitel
—> Hf iin om alitgie
,
oid loop)
q
Gigitalinite(LED, HIGH); // turns the LED on
de lay(1888) ; 77 waits for a second
igitotllniteCLED, LOH), Carne the LED off
‘ay( 188): If eaite for a second
+
Li sa posquejo va ac
Figura 4-3
E1 ZDE de Arduino con el primer dibujo cargado
Ahora que el cédigo estd en su IDE, debe verificar que es correcto. Presione el botén
"Verificar” (Ia Figura 4-3 muestra su ubicacién); Si todo esté correcto, aparecerd el
mensaje "Done compilacién" en la parte inferior del IDE de Arduino. Este mensaje
significa que el IDE de Arduino ha traducido su boceto en un programa ejecutable que
puede ejecutar la placa, un poco como un archivo .exe en Windows 0 un archivo .app
en una Mac.
En este momento, puede cargarlo en la placa: presione el botdn Cargar en la tarjeta de
VO (consulte la Figura 4-3). Esto restableceré la placa, obligandola a detener lo que esta
haciendo y escuchar las instrucciones procedentes del puerto USB. E! IDE de Arduino
envia el boceto actual al tablero, que lo almacenard en su memoria y lo ejecutaré
eventualmente.
La Plataforma Arduino 33Vera que aparecen algunos mensajes en el area negra en la parte inferior de la
ventana y, justo encima de esa zona, aparecerd el mensaje "Finalizar la carga" para
que sepa que el proceso se ha completado correctamente. Hay dos LEDs, marcados RX
y TX, en el tablero; Estos parpadean cada vez que un byte es enviado o recibido por el
tablero. Durante el proceso de carga, siguen parpadeando.
Sino ve el parpadeo de los LEDs, o si aparece un mensaje de error en lugar de
“Finalizar la carga", hay un problema de comunicacién entre su computadora y
‘Arduino. Aseguirese de haber seleccionado el puerto serie correcto (consulte el
Capitulo 3) en el mend Herramientas> Puerto serie, Ademés, compruebe el ment
Herramientas> Panel para confirmar que el modelo correcto de Arduino esta
seleccionado alli
Si todavia tiene problemas, consulte el Capitulo 7, Solucién de problemas.
Una vez que el cédigo esté en tu tablero de Arduino, permanecerd alli hasta que
pongas otro dibujo en él. El boceto sobrevivird sila tarjeta se reinicia o se apaga, un
poco como los datos en el disco duro de su computadora.
Suponiendo que el dibujo haya sido cargado correctamente, vera que el LED "L" se
enciende por un segundo y después se apaga durante un segundo. Si instalé un LED
separado como se muestra en la Figura 4-2, ese LED parpadeard también. Lo que
acaba de escribir y ejecutar es un "programa de computador”, 0 esbozo, como se
liaman los programas de Arduino. Arduino, como he mencionado antes, es una
computadora pequefia, y se puede programar para hacer lo que quieras. Esto se hace
usando un lenguaje de programacién para escribir una serie de instrucciones en el IDE
de Arduino, que lo convierte en un ejecutable para su placa Arduino.
Te mostraré luego cémo entender el boceto. En primer lugar, el Arduino ejecuta el
cédigo de arriba a abajo, por lo que la primera linea en la parte superior es la primera
lectura; A continuacién, se mueve hacia abajo, un poco como la forma en la cabeza de
reproduccién de un reproductor de video como QuickTime Player o Windows Media
Player se mueve de izquierda a derecha que muestra dénde en la pelicula que esta.
Pasame el Parmesano
Observe la presencia de corchetes, que se utilizan para agrupar lineas de codigo. Estos
son particularmente iitiles cuando se desea dar un nombre a un grupo de instrucciones.
Si estés en la cena y le preguntas a alguien: "Por favor, pasame el queso parmesano",
esto inicia una serie de acciones que se resumen en la pequefia frase que acabas de
decir. Como somos humanos, todo viene naturalmente, pero todas las pequefias
acciones individuales necesarias para hacer esto deben ser explicadas al Arduino,
porque no es tan poderoso como nuestro cerebro. Asi que para agrupar una serie de
instrucciones, se pega un fantes de su cédigo y un) después.Puede ver que hay dos bloques de cédigo que se definen de esta manera aqui. Ante
cada uno de ellos hay un extrafio mandamiento:
void setup()
Esta linea da un nombre a un bloque de cédigo. Si escribieras una lista de instrucciones
que ensefien a Arduino cémo pasar el parmesano, escribirias void passTheParmesan ()
al principio de un bloque, y este bloque se convertiria en una instruccién que puedes
llamar desde cualquier parte del cédigo de Arduino, Estos bloques se llaman funciones.
Si después de esto escribes passTheParmesan () en cualquier parte de tu cédigo,
‘Arduino ejecutard esas instrucciones y continuaré donde lo dejé.
Ard
0 no es para Nifios (Quitters)
Arduino espera que existan dos funciones: una llamada setup () y otra llamada loop ().
setup () es donde pone todo el cédigo que desea ejecutar una vez al principio de su
programa y loop () contiene el niicleo de su programa, que se ejecuta una y otra vez
Esto se hace porque Arduino no es como su computadora normal: no puede ejecutar
varios programas al mismo tiempo y los programas no pueden salir. Cuando se
enciende la tarjeta, el cédigo se ejecuta; Cuando quieras parar, simplemente apdgalo.
Reales Gitanos (Tinkeres) Escriben Comentarios
Cualquier texto que empiece por // es ignorado por Arduino. Estas lineas son
comentarios, que son notas que dejas en el programa por ti mismo, para que puedas
recordar lo que hiciste cuando lo escribiste, o para alguien mas, para que puedan
entender tu cédigo.
Es muy comin (lo sé porque lo hago todo el tiempo) escribir un pedazo de cédigo,
subirlo al tablero, y decir "Okay-yo nunca voy a tener que tocar a este chupén de
nuevo!” Sélo para Tenga en cuenta seis meses después que necesita actualizar el codigo,
© corregir un error. En este punto, se abre el programa, y sino ha incluido ningiin
comentario en el programa original, usted pensaré: "Wow, iqué desastre! Nuevo (si tiene otro boceto abierto, puede guardarlo
primero). Cuando Arduino le pide que nombre su nueva carpeta de boceto, escriba
PushButtonControl. Escriba el cédigo del ejemplo 02 en Arduino (o descérguelo desde
[Link]/getstartedarduino y péguelo en el IDE de Arduino). Si todo es
correcto, el LED se encenderé al presionar el boténn.éComo funciona esto?
He introducido dos nuevos conceptos con este programa de ejemplo: funciones que
devuelven el resultado de su trabajo y la instruccién if.
La sentencia if es posiblemente la instruccién més importante en un lenguaje de
programacién, ya que permite que la computadora (y recuerde, el Arduino es un
pequefio ordenador) para tomar decisiones. Después de la palabra clave if, hay que
escribir una "pregunta" dentro de paréntesis, y sila "respuesta", o resultado, es
verdadera, se ejecutard el primer bloque de cédigo; De lo contrario, se ejecutard el
en lugar
de =. El primero se utiliza cuando se comparan dos entidades, y se devuelve TRUE 0
bloque de cédigo después de otro. Tenga en cuenta que he usado el simbolo
FALSE; Este ultimo asigna un valor a una variable. Asegurese de que utiliza el correcto,
en cuyo caso su programa nunca
funcionard. Lo sé, porque después de 25 afios de programacién, todavia cometo ese
porque es muy facil cometer ese error y usar sél
error.
Mantener el dedo en el botén durante el tiempo que necesita luz no es practico.
‘Aunque te haria pensar en la cantidad de energia que estas desperdiciando cuando te
alejas de una lmpara que te quedaste en, tenemos que averiguar como hacer que el
botén de encendido "palo",
Un circuito, mil comportamientos
La gran ventaja de la electronica digital y programable sobre la electrénica clasica es
ahora evidente: te mostraré cémo implementar muchos "comportamientos" diferentes
usando el mismo circuito electrénico que en la seccidn anterior, simplemente
cambiando el software.
Como he mencionado antes, no es muy préctico tener que mantener el dedo en el
botén para encender la luz. Por lo tanto, debemos implementar alguna forma de
"memoria", en forma de un mecanismo de software que recordaré cuando hayamos
presionado el botén y mantendré la luz encendida incluso después de haberla liberado.
Para hacer esto, vamos a utilizar lo que se llama una variable. (Ya hemos usado uno,
pero no lo he explicado.) Una variable es un lugar en la memoria de Arduino donde
puedes almacenar datos. Piense en él como una de esas notas adhesivas que utiliza
para recordarse algo, como un niimero de teléfono: usted toma uno, usted escribe
"Luisa 02 555 1212" en él, y se pega a su monitor de la computadora o su refrigerador.
En el lenguaje Arduino, es igualmente sencillo: sélo decide qué tipo de datos deseaalmacenar (un numero 0 un texto, por ejemplo), dale un nombre y cuando lo dese,
puede almacenar los datos 0 recuperarlos . Por ejemplo:
int val = 0;
int significa que su variable almacenaré un niimero entero, val es el nombre de la
variable, y = Ole asigna un valor inicial de cero.
Una variable, como su nombre indica, se puede modificar en cualquier parte de su
cédigo, para que més adelante en su programa, podria escri
val = 112;
Que reasigna un nuevo valor, 112, a su variable.
NOTA: ¢Ha notado que en Arduino, todas las instrucciones, con una excepcién
(#define), termina con un punto y coma? Esto se hace para que el compilador (la parte
de Arduino que convierte su boceto en un programa que el microcontrolador puede
ejecutar) sabe que su declaracién ha terminado y una nueva est comenzando.
Recuerde usarlo todo el tiempo, excluyendo cualquier linea que comience con #define.
Los #tdefine son reemplazados por el compilador antes de que el cédigo se traduce en
un ejecutable de Arduino.
En el programa siguiente, val se utiliza para almacenar el resultado de digitalRead(); Lo
que Arduino obtenge de la entrada termina en la variable y permanecerd alli hasta que
otra linea de cédigo la cambie. Observe que las variables utilizan un tipo de memoria
llamada RAM. Es bastante répido, pero cuando se apaga la placa, se pierden todos los
datos almacenados en la memoria RAM (lo que significa que cada variable se restablece
a su valor inicial cuando la placa se enciende de nuevo). Sus propios programas se
almacenan en memoria flash -es el mismo tipo utilizado por su teléfono mévil para
almacenar niimeros de teléfono- que conserva su contenido incluso cuando la tarjeta
est apagada
Ahora vamos a usar otra variable para recordar si el LED tiene que permanecer
encendido o apagado después de soltar el botén. El ejemplo 03A es un primer intento
de lograr:
11 Bjemplo 034: Encender el LED cuando se presiona el botda
#1 y mantenerlo encendido después de que se libere
fMdefine LED 13 Vel pin para el LED#Hdefine BUTTON 7 // el pin de entrada donde
lpulsador estéconectado
‘val se utilizar para slmecenarel estado
del pin de entrada
int state ED eneendido
//0= LED spagado mientras
void setup0 (
pinMode(LED, OUTPUT); 1! decir Arduino LED es una salida
ppinMode(BUTTON, INPUT); //y BUTTON es una entrada
)
void loop0) {
val = digitalRead(BUTTON); leer el valor de entrada y almacenarlo
1 compruebe sila entrada es ALTA (botén pulsado)
Vy cambiar el estado
if val = HIGH) {
state =1 state;
AigitalWrte(LED, HIGH); ura LED ON
else
digialWrie(LED, LOW);
)
)
Ahora prueba este cédigo. Usted notara que funciona. . . algo. Usted encontraré que la
luz cambia tan répidamente que usted no puede fijarla confiablemente encendido o
apagado con una prensa del botén.
Veamos las partes interesantes del cédigo: state es una variable que almacena 0 0 1
para recordar si el LED est encendido 0 apagado. Después de soltar el botén, lo
inicializamos a 0 (LED apagado).
HIGH), cambiamos
el estado de 0 a 1, 0 viceversa. Hacemos esto usando un pequefio truco, ya que el
Ms tarde, leemos el estado actual del botén, y si se presiona (valestado puede ser solo 10 0. E! truco que uso involucra una pequefia expresién
matemitica basada en la idea de que 1-Oes 1y1-1es0:
state 1 state;
La linea puede no tener mucho sentido en matematicas, pero si en la programacién. El
simbolo = significa "asignar el resultado de lo que esta detrés de mi al nombre de la
variable antes de mi"; en este caso, el nuevo valor de estado se asigna al valor de 1
menos el valor antiguo del estado.
Mas adelante en el programa, puede ver que usamos el estado para averiguar si el LED
debe estar encendido 0 apagado. Como mencioné, esto conduce a resultados algo
escamosos.
Los resultados son escamosos debido a la forma en que leemos el botén. Arduino es
muy répido; Ejecuta sus propias instrucciones internas a una tasa de 16 millones por
segundo, podria estar ejecutando unas pocas millones de lineas de cédigo por segundo.
Asi que esto significa que mientras tu dedo est presionando el botén, Arduino podria
estar leyendo la posicién del botén unos miles de veces y cambiando de estado en
consecuencia. Asi que los resultados terminan siendo impredecibles; Podria estar
apagado cuando usted lo quisiera encendido, o viceversa. Como incluso un reloj roto es
correcto dos veces al dia, el programa puede mostrar el comportamiento correcto de
vez en cuando, pero la mayor parte del tiempo va a estar mal.
ECémo arreglamos esto? Bueno, necesitamos detectar el momento exacto en que se
presiona el botén, ese es el tinico momento que tenemos que cambiar de estado. La
forma en que me gusta hacerlo es almacenar el valor de val antes de leer un nuevo;
Esto me permite comparar la posicién actual del botén con el anterior y cambiar el
estado sélo cuando el botén se convierte en ALTO después de ser LOW.
El ejemplo 038 contiene el cédigo para hacerlo:
Example 03B: Turn on LED when the button is pressed
‘1nd keep it on after it is released // Now with a new and
improved formula
‘Mefine LED 13. the pin forthe LED
‘define BUTTON 7 the input pin where the !
pushbutton is connected
int val=0; val wil be used to store the state ofthe inpur pin
{nt old_val = 0; this variable stores the previous 1 value of val”
int sate=0; //0=LED offand 1 = LED onvoid setup0 ¢
pinMode(LED, OUTPUT); tell Arduino LED isan output_pinMode(BUTTON,
INPUD); // and BUTTON is an input )
void loop(){
vval= digitalRead(BUTTON); //read input value and store it yum, fresh
/ check i'there was transition if (val = HIGH) &&
LOW) state=1-states }
(old_val
‘old_val~ val; val is now old, let's store it
if (state= 1) ¢
igitalWrite(LED, HIGH); / tum LED ON } else {
igitalWrite(LED, LOW);
)
Pruébelo: estamos casi alll!
Usted puede haber notado que este acercamiento no es enteramente perfecto, debido
a otro problema con los interruptores mecénicos. Los pulsadores son dispositivos muy
simples: dos pedazos de metal separados por un resorte. Cuando presiona el botén, los
dos contactos se unen y la electricidad puede fluir. Esto suena bien y simple, pero en la
vida real la conexién no es tan perfecta, especialmente cuando el botén no estd
completamente presionado, y genera algunas sefiales espurias llamadas rebote.
Cuando el pulsador est rebotando, el Arduino ve una secuencia muy répida de sefiales
de encendido y apagado. Hay muchas técnicas desarrolladas para hacer de-rebote, pero
en este pedazo simple del cédigo he notado que es generalmente bastante para agregar
Un retraso 10 - a 50 milisegundos cuando el cédigo detecta una transicién.
El ejemplo 03C es el cédigo final:5/ Entrada y salida
avanzadas
Lo que acabamos de aprender en el Capitulo 4
son las operaciones mas elementales que
podemos hacer en Arduino: controlar la salida
digital y leer la entrada digital. Si Arduino fuera
algun tipo de lenguaje humano, éstas serian dos
letras de su alfabeto. Teniendo en cuenta que hay
sdlo cinco letras en este alfabeto, se puede ver
cuanto mas trabajo que tenemos que hacer antes
de que podamos escribir Arduino poesia.
Prueba de otros sensores de encendido / apagado
Ahora que ha aprendido a utilizar un pulsador, debe saber que hay muchos otros
sensores muy bdsicos que funcionan de acuerdo con el mismo principio:
Interruptores
Al igual que un pulsador, pero no cambia automdticamente el estado cuando se
suelta
Termostatos
Un interruptor que se abre cuando la temperatura alcanza un valor establecido
Interruptores magnéticos (también conocidos como "relés de lémina")
Tiene dos contactos que se juntan cuando estén cerca de un iman; Utilizado por las
alarmas antirrobo para detectar cuando se abre una ventana
Interruptores de alfombraPequefias esteras que se pueden colocar debajo de una alfombra o un felpudo
para detectar la presencia de un ser humano (0 gato pesado)
Interruptores de inclinacién
Un componente electrénico simple que contiene dos contactos y una pequefia
bola de metal (o una gota de mercurio, pero no recomiendo usarlos) Un ejemplo
de un interruptor de inclinacién se llama un sensor de inclinacién. La figura S-1
muestra el interior de un modelo tipico. Cuando el sensor esta en su posicién
vertical, la bola puentea los dos contactos, y esto funciona como si hubiera
presionado un botén. Cuando inclina este sensor, la pelota se mueve y el contacto
se abre, lo cual es como si hubiese soltado un pulsador. Utilizando este
componente simple, puede implementar, por ejemplo, interfaces gestuales que
reaccionan cuando un objeto se mueve o se sacude.nterior de un sensor de inclinacién
Otro sensor que quizds quiera probar es el sensor de infrarrojos que se encuentra
en las alarmas antirrobo (también conocido como sensor infrarrojo pasivo o sensor
PIR, vea la Figura 5-2). Este pequefio dispositivo se activa cuando un ser humano
(u otro ser vivo) se mueve dentro de su proximidad. Es una forma sencilla de
detectar movimiento.5-2
Sens!
Ahora debe experimentar mirando todos los dispositivos posibles que tienen dos
contactos que se cierran, como el termostato que fija la temperatura de la
habitacién (use una vieja que ya no esté conectada), o simplemente colocando dos
contactos uno al lado del otro y dejando caer agua sobre ellos.
Por ejemplo, usando el ejemplo final del Capitulo 4 y un sensor PIR, usted podria
hacer que su lémpara respondiera a la presencia de seres humanos, o podria usarun interruptor de inclinacién para construir uno que se apague cuando est
inclinado en un lado.
Control de luz con PWM
Con el conocimiento que usted ha ganado hasta ahora, podria construir una
lampara interactiva que puede ser controlada y no sélo con un aburrido
interruptor de encendido / apagado, pero tal vez de una manera que es un poco
mas elegante. Una de las limitaciones de los ejemplos de LED parpadeantes que
hemos utilizado hasta ahora es que sélo se puede encender y apagar la luz. Una
lampara interactiva de fantasia necesita ser regulable. Para resolver este
problema, podemos usar un pequefio truco que hace posible muchas cosas como
‘TVo cine: la persistencia de la vision.
Como he sugerido después del primer ejemplo en el capitulo 4, si cambia los
niimeros en la funcién de retardo hasta que no vea el LED parpadeando mas,
notard que el LED parece atenuado al 50% de su brillo normal. Ahora cambie los
niimeros para que el LED esté encendido es un cuarto del tiempo que esté
apagado. Ejecute el boceto y vera que el brillo es aproximadamente el 25%. Esta
técnica se llama modulacién de ancho de pulso (PWM), una manera elegante de
decir que si parpadea el LED lo suficientemente répido, no lo ve parpadear mas,
pero puede cambiar su brillo cambiando la relacién entre el tiempo de encendido
El tiempo de apagado. La Figura 5-3 muestra cémo funciona esto,
Esta técnica también funciona con dispositivos que no sean un LED. Por ejemplo,
puede cambiar la velocidad de un motor de la misma manera
Mientras experimenta, verd que parpadear el LED poniendo retrasos en su cédigo
es un poco incémodo, porque tan pronto como quiera leer un sensor o enviar
datos en el puerto serie, el LED parpadeara mientras espera que termine Lectura
del sensor. Por suerte, el procesador utilizado por la placa Arduino tiene un
pedazo de hardware que puede parpadear muy eficientemente tres LED mientras
su boceto hace otra cosa. Este hardware esta implementado en los pines 9, 10 y
11, que pueden ser controlados por la instruccién analogWrite ().ON
OFF
OFF
25% 75%3
Por ejemplo, escribir analogWrite(9,128) Ajustara el brillo de un LED conectado al
pin 9 al 50%. €Por qué 128? AnalogWrite () espera un nimero entre 0 y 255 como
argumento, donde 255 significa brillo completo y 0 significa apagado.
Nota: Tener tres canales es muy bueno, porque si usted compra LeDs rojo, verde
yazul, usted puede mezclar sus luces y hacer la luz de cualquier color que te
gustal
Vamos a probarlo. Construye el circuito que ves en la Figura 5-4. Tenga en cuenta
que los LED estén polarizados: el pasador largo (positivo) debe ir a la derecha y el
pasador corto (negativo) a la izquierda, Ademas, la mayorfa de los LED tienen un.
lado negativo aplanado, como se muestra en la figura.\ SA
Oo «8
a
la
eval E
OO Bess szeas
A continuacién, cree un nuevo boceto en Arduino y utilice el Ejemplo 04 (también
puede descargar ejemplos de cédigo de [Link]/getstartedarduino):
1/ Example 04: Fade an LED in and out like on
‘1a sleeping Apple computer
fidefine LED 9//the pin forthe LED
0; /Wellluse this to count up and down,
void setup0 ¢
pinMode(LED, OUTPUT); tell Arduino LED is an output }
void loop 0¢for (= 0;1< 255; {U!loop from 0 o 254 (fade in) analogWrite(LED, ; 1! set
the LED brightness delay(10);/ Wait 10ms because analogWrite His
instantaneous and we would
'/mot see any change)
for (i= 25551 > 0; =) {loop from 255 t0 1 (fade out)
analogWrite(LED, i); //set the LED brightness delay(10};
Wait 10ms_)
Ahora usted tiene una copia de una caracteristica de fantasia de una computadora
portatil (tal vez es un poco de un desperdicio para utilizar Arduino para algo tan
simple). Vamos a usar este conocimiento para mejorar nuestra limpara.
Afiada el circuito que usamos para leer un botén (en el Capitulo 4) a esta tabla de
pruebas. Vea si puede hacer esto sin mirar la siguiente pagina, porque quiero que
comience a pensar en el hecho de que cada circuito elemental que muestro aqui
es un "bloque de construccién" para hacer proyectos més grandes y mas grandes.
Si necesita mirar hacia el futuro, no se preocupe; Lo més importante es que pases
un tiempo pensando en cémo podria verse.
Para crear este circuito, tendré que combinar el circuito recién construido
(mostrado en la Figura 5-4) con el circuito de pulsador mostrado en la Figura 4-6,
Silo desea, puede simplemente construir ambos circuitos en diferentes partes de
la placa de pruebas; Tienes un montén de espacio. Sin embargo, una de las
ventajas de la placa de pruebas (véase el apéndice A) es que hay un par de rieles
que se extienden horizontalmente a través de la parte inferior y superior. Uno esta
marcado rojo (para positivo) y el otro azul o negro (para el suelo).
Estos rieles se utilizan para distribuir la energ(a y la tierra a donde se necesita. En
el caso del circuito que necesita construir para este ejemplo, tiene dos
componentes (ambos resistores) que deben conectarse al pin GND (tierra) del
Arduino. Debido a que el Arduino tiene dos pines GND, simplemente podriaconectar estos dos circuitos exactamente como se muestra en cada una de las dos
figuras; Sélo enganchar a los dos hasta el Arduino al mismo tiempo. O bien, podria
conectar un cable del carril de tierra de la placa de panificacién a uno de los pines
GND del Arduino y, a continuacién, tomar los cables que estén conectados a GND
en las figuras y conectarlos al carril de tierra de la placa de paneles.
Sino esta listo para probar esto, no se preocupe: simplemente conecte ambos
Circuitos a su Arduino como se muestra en las Figuras 4-6 y 5-4. Verd un ejemplo
que usa los carriles de tabla de pruebas de tierra y positivo en el Capitulo 6.
inte ejemplo, si solo tenemos un pulsador, écémo controlamos
el brillo de una lémpara? Vamos a aprender otra técnica de disefio de interaccién:
detectar cuanto tiempo se ha presionado un botén. Para hacer esto, necesito
actualizar el ejemplo 03C del capitulo 4 para agregar atenuacién. La idea es
construir una "interfaz" en la que una accién de prensa y liberacién encienda y
apague la luz, y una accién de presionar y mantener cambia el brillo.
Echemos un vistazo al bosquejo:
1 Example 05: Turn on LED when the button is pressed
1 and keep it on after itis released // including simple
de-bouncing,
1 Ifthe button is held, brightness changes.
‘define LED 9 {/ the pin for the LED #define BUTTON 7 1 input
pin of the pushbutton
int val = 0; 1 stores the state ofthe input pin
in old_val = 0;1/ stores the previous value of "val" at state=0;,//0=LED off while
1=LED on
int rightaess= 128; 1! Stores the brightness value unsigned long startTime = 0; / when did we
begin pressing?
void setup0 ¢
pinMode(LED, OUTPUT); tell Arduino LED is an output_pinMode(BUTTON,
INPUT); // and BUTTON isan input }analogWrito(LED, brightness); / tum LED ON at the Heurrent
brightness level} else {
analogWrite(LED, 0); //turn LED OFF
Ahora inténtalo. Como puede ver, nuestro modelo de interaccién estd tomando
forma, Si presiona el botén y lo suelta inmediatamente, se enciende o apaga la
lampara. Si mantiene pulsado el bot6n, el brillo cambia; Sélo deje ir cuando haya
alcanzado el brillo deseado.
Ahora vamos a aprender a usar algunos sensores més interesantes.
Utilice un sensor de luz en lugar del pulsador
Ahora vamos a intentar un experimento interesante. Tome un sensor de luz, como
el que se muestra en la figura 5-5. Usted puede obtener un paquete de cinco de
estos de RadioShack (niimero de parte 276-1657).Resistencia dependiente de 1a luz (LDR)
En la oscuridad, la resistencia de una resistencia dependiente de la luz (LOR) es
bastante alta. Cuando usted brilla algo de luz en ella, la resistencia répidamente
cae y se convierte en un conductor razonablemente bueno de la electricidad. Por
lo tanto, es una especie de interruptor activado por luz.
Construya el circuito que viene con el Ejemplo 02 (vea "Uso de un botén pulsador
para controlar el LED" en el Capitulo 4), luego cargue el cédigo del Ejemplo 02 en
su Arduino.
Ahora conecte el LDR en la placa de pan en luger del botén. Usted notaré que si
Usted cubre el LOR con sus manos, el LED se apaga. Descubre el LDR, y la luz
contintia. Acabas de construir tu primer sensor LED impulsado por sensores. Esto
es importante porque, por primera vez en este libro, estamos utilizando un
componente electrénico que no es un simple dispositivo mecénico: es un sensor
real rico.Entrada analdogica
Como aprendié en la seccién anterior, Arduino es capaz de detectar si hay un
voltaje aplicado a uno de sus pines e informarlo a través de la funcién
digitalRead() . Este tipo de respuesta esté bien en muchas aplicaciones, pero el
sensor de luz que acabamos de usar es capaz de decirnos no sélo si hay luz, sino
también cudnta luz hay. Esta es la diferencia entre un sensor de encendido /
apagado (que nos dice si hay algo) y un sensor analégico, cuyo valor cambia
continuamente. Para leer este tipo de sensor, necesitamos un tipo de pin
diferente.
En la parte inferior derecha de la placa Arduino, verds seis pasadores marcados
con "Analog In"; Estos son pernos especiales que pueden decirnos no sélo si hay
un voltaje aplicado a ellos, pero sies asi, también su valor. Usando la funcién
analogRead() , podemos leer el voltaje aplicado a uno de los pines. Esta funcién
devuelve un niimero entre 0 y 1023, que representa voltajes entre 0 y 5 voltios.
Por ejemplo, si hay una tensién de 2,5 V aplicada al nimero de pin 0, analogRead
(0) devuelve 512,
Si ahora construye el circuito que ve en la Figura 5-6, usando una resistencia de
10k, y ejecute el cédigo listado en el Ejemplo 06A, verd el LED integrado (también
podria insertar su propio LED en los pines 13 y GND como Que se muestra en
"Parpadeando un LED" en el Capitulo 4) parpadeando a una velocidad que
depende de la cantidad de luz que golpea el sensor.sappy 08 2
atzersoe GERbE
Gsécisea wecsssza O
egico
Example O6A: Blink LED at a rate specified by the
Ii value of the analogue input
‘Hdefine LED 13 // the pin forthe LEDint val
1 variable used to store the value «coming from the
sensor void setup) {
pinMode([Link], OUTPUT); // LED is s an OUTPUT
/ Note: Analogue pins are
1 automatically set as inputs }
void foop0) {
logRead 0); ! read the valu from Vv the
digital Write13, HIGH; // um the LED on
Aelay(val); stop the program for some time
AigitalWrite(13, LOW): /tum the LED off
delay(val); stop the program for some time
Ahora, pruebe el Ejemplo 06B: pero antes de hacerlo, tendré que modificar su
Circuito, Eche un vistazo a la Figura 5-4 y engancha el LED hasta el pin 9 como se
muestra. Debido a que ya tienes algunas cosas en la tabla de pruebas, necesitards
encontrar un punto en la placa de pruebas donde el LED, los cables y la resistencia
no se superpongan con el circuito LOR.
‘7 Example O6B: Set the brightness of LED to
1a brightness specified by the
value of the analogue input
define LED 9 // the pin forthe LED
I vatiable used to store the value coming from the