er ee
GUIA DEL INVENTOR DE REFLEXIONAUNAS POCAS PALABRAS
SOBRE ESTE KIT
El objetivo general de este kit es pasarselo bien. Partiendo de esa base, nuestro
mayor deseo es hacer que te resulte lo mas placentero posible el utilizar una
amplia variedad de componentes electrénicos, a través de unos pequefios circuitos
muy faciles y sencillos de montar. La férmula consiste en hacer funcionar estos
Circuitos, faclitindote las herramientas para que puedas entender como funcionan todos
ellos. Si encuentras algin tipo de problema, quieres hacer alguna pregunta o te gustaria
saber mas sobre algin tera en particular siempre puedes ponerte en contacto con nosotros mandando un correo
electrénico a shop @retlexiona.biz,
SOBRE EL HARDWARE DE CODIGO ABIERTO
Todos los proyectos presentados en esta guia son de cédigo abierto. Esto significa que todo lo relacionado con el
desarrollo de este kit, ya sea la propia guia, los modelos 3D o el cédigo fuente, estan disponibles para que te los
descargues de forma gratuita. Pero la cosa va mas lejos todavia, también eres libre de reproducir y modificar
cualquier parte de este material, y de distribuirlo tt mismo. {A que te preguntas donde esta el truco o la trampa?
Nada mas lejos, todo lo anterior tiene una explicacién muy sencilla. Todo este material esté publicado bajo licencia
Creative Commons Reconocimiento-Compartirigual 3.0 Espafia (CC BY-SA 3.0). Esto significa que debes nombrar
‘a sus desarrolladores iniciales en tu disefio y compartir tus desarrollos del mismo modo. zY por qué? Porque todos
nosotros hemos crecido aprendiendo y jugando con software de cédigo abierto y la experiencia ha sido realmente
divertida. Pensamos que seria igual de genial si puede volver a repetirse la experiencia con objetos fisicos.
Puedes encontrar mas detalles sobre las licencias Creative Commons en http:/wiki.creativecommons.org/spain
SOBRE OOMLOUT
Oomlout es una pequefia pero valiente empresa de disefio, orientada a la produccién de productos de cédigo
abierto exquisitamente originales y divertidos, Mas informacion en http:/Awww.comlout.com
SOBRE SPARKFUN
Sparkfun es una empresa joven y dindmica que pretende convertir a electronica en algo divertido, accesible y
ccercano para todo el mundo, desde chavales que se encuentran en educacién elemental a ingenictos superiores.
Mas informacion en hittp:/www.sparkfun.com
SOBRE REFLEXIONA
Reflexiona es un estudio creativo multidisciplinar especializado en Disefio de lluminacién, Integracién Audiovisual
y Consultoria en Tecnologia del Espectaculo, que considera el software y el hardware de cédigo abierto como una
{formula de aprendizaje y desarrollo de proyectos muy atractiva. Mas informacién en http:/mwwreflexiona biz
SOBRE PROBLEMAS
Nos esforzamos por ofrecer la mayor calidad posible en todos y cada uno de los productos que desarrollamos y
distribuimos, Si encuentras alguna instruccién ambigua, faltan piezas o, simplemente, quieres formular una consul-
ta, mandanos un correo electrénico a shop@reflexiona biz.(nos gusta escuchar tus problemas para mejorar las
préximas versiones)
MUCHAS GRACIAS POR ESCOGER A OOMLOUT, SPARKFUN Y REFLEXIONADonde encontrar cada cosa
: ANTES DE EMPEZAR
[ENSAMBLAJE] Uniendo las piezas .... 02
[INSTALACION] Instalando o! IDE 03
[PROGRAMACION] Fundamentos de programacién 04
[ELECTRONICA] Fundamentos de electronica ... 07
: LOS CIRCUITOS
[CIRC - 01] Blinking LED 12
[CIRC - 02] Maltiples LEDs... 14
[CIRC - 03] Transistor + Motor 16
[CIRC - 04] Servomotor 18
[CIRC - 05] Registro electrénico .. 20
[CIRC - 06] Piczo elemento 22
[CIRC - 07] Pulsador 24
[CIRC - 08] Potenciémetro .. 26
[CIRC - 09] Fotorresistencia 28
[CIRC - 10] Sensor de temperatura 30
[cIRC - 11] Relé 32
[CIRC - 12] LED RGB 34
[CIRC - 13] Sensor flexible 36
[CIRC - 14] Potenciémetro de membrana... 38
INOTAS] Espacio para tus apuntes 40AS 1K 1x af
q Soporte r => Tablero Arduin
SA para Arduino “de circuitos eeInstalando el IDE INSTALACION
EI IDE 0 Entomo de Desarrollo Integrado es el software que se utiliza para escribir el cédigo con Arduino. Al principio puede
parecer un poco desalentador, peto una vez que lo tienes instalado y empiezas a trabajar con él, irés poco a poco descubrien-
do todos los secretos que esconde.
PASO 1 =: Descargar el software
Vote ala pagina
hitp:Varduino.cclen/Main/Sotware
y descarga el sofware para tu sistema operative.
WINDOWS XP
MAC OS X
PASO 2:: Descomprimir el archivo *2ip
Descomprime ol archivo Arduino-0OXX.2ip (XX = vers)
La uta de descompresion recomendada os:
‘eMrchives de programah
PASO 2 :: Abril archivo “dmg
Voto a a carpeta de descargas
yy haz doble cick on Arcuino-00XX-2p (XX = versin)
PASO 9 : Ieono de acceso directo
‘Abro.¢\Archvos de programatarduino-0OXX\ (XX = vers)
Paulsa el botén derecho sobre ol archivo Arduino. exe
y selacciona Enviar a> Eseritorio (crear acceso directo)
En la ventana que aparece selecciona el icone de Arduino y
arrsralo ala carpata de Aplicaciones
PASO 9 =: Coplar la aplicacion
PASO 4 :: Conectar tu Arduino
Usa el cable USB incuido en el kt para conectar tu Arduino en el
puerto USB de tu ordenador que est lire.
Espora a que aparezca una ventana.
PASO S :: Afiade el nuevo hardware
De las tres opciones que aparecen en esa ventana selection:
*No por el momento”.
(pulsa on botén do *Siguionta" cuando este aparezca)
‘Ahora selecciona
Instalar desde una Ista o ubicacion especifca (avanzado)”
(pulsa en bot de “Siguionte")
‘Selecciona la open:
"incur esta ubicacion on la busqueda"
introduce
‘eMuchivos de programalarduino-00XX drvers\FOTI USB Drvers\
parala placa Duemilanove o
‘oMrchivos de programa\arduino-00XX\ drvers\FDTI USBADrvers\
para la placa UNO,
‘Ya has terminado la instalacién.
WINDOWS VISTA / WINDOWS 7
PASO 5 : Afiade ol nuevo hardware
‘Abra el Administrador de Dispositvos:
Inicio > Panel de control» Hardware y Sonido > Admin. de cispositvos|
‘Selecciona Arduino Uno en “Otros dispostvos"
JAnora actuaiza ol Drverpulsando a botin decocho sobre Arduino Uno
Y selocionando “Actualizar software de controlador."
Seloccona ia opcion "Buscar software de controlador on ol equipo".
‘Solocciona ol river correspondiente pulsando on “Examinar”
y seleccionando la ruta
‘eMrchivs de programalarduino-OoxXarivers.
(Pulsa el botén de "Siguerto")
Ya has terminado la instalacién.
PASO 4 ::Instalar ios Controladores (solo Duemilanove)
En a misma ventana en la que tenias el icone de Arcuino
‘ispones de un archivo que se llama:
FTDIUSBSerialDriver (XX_X_YX_X_ OLX). mpke
Haz doble cick en 2 para incall.
Una ver terminado ol proceso de insalacién renicia el sistema,
PASO 5 = Conecta tu Arduino
[Conecta tu placa de Arduino al ordenador usando el eable de USB|
‘en uno de los puertos USB que tangas lore
‘Ya has terminado Ia instalacién
Nota 1
Sia tenido problomas a a hora de Ia instalacion, o tenes
Cutiosidad por algin detalle en particular, puedes solicar ayuda
‘mandando un correo electrénice a shop @rellexona.biz
*Nota 2:
Sl sas ol sistoma operative Linux puedes encontrar més
informacion en hip: ww.arduio.celplayground/.earnngiLinuxPROGRAMACION Fundamentos de programaci6n
PRINCIPIOS DE PROGRAMACION CON ARDUINO
Arduino se programa con lenguaje C. A continuacién se explican algunas nociones basicas para aquellas personas
que tienen ciertos conocimientos de programacion y que solo necesitan una pequefia introduccién en la idiosincra-
sia de C y del IDE de Arduino. Si te parece que estos contenidos son un poco desalentadores, no te preocupes.
Puedes empezar directamente a trabajar con los circuitos, e ir adquiriendo estos conocimientos de programacién a
medida que vas practicando.
Para una introduccién mas a fondo, la web http//arduino.ce es una gran fuente de recursos.
ESTRUCTURA
Cada uno de los programas de Arduino (a menudo llamados sketch) tiene dos funciones fundamentales en su
estructura (también conocidas como rutinas)
void setup ()
(inicializaci6n) Esta funcién se establece cuando se inicia un sketch. Se emplea para iniciar variables, establecer el
estado de los pines, inicializar librerias, etc, Esta funcion se ejecutara una Unica vez después de que se conecte la
placa Arduino a la fuente de alimentacion, 0 cuando se pulse el botén de reinicio de la placa.
void loop ()
(bucle) Esta funcién arranca cuando el “setup” ha terminado. Después de reproducirse la primera vez volverd a
reproducirse una y otra vez hasta que se desconecte la fuente de alimentacién
SINTAXIS
Uno de los aspectos mas frustrantes de C (pero que también lo hace realmente potente) son los requisites de
formato. Si eres capaz de acordarte de lo siguiente, todo ira a la perfeccién.
“uw
(comentarios en una linea) Estas dos barras son muy atiles para que, a medida que avanzas por cada linea de
cédigo, escribas notas sobre los que estas haciendo. Estas lineas son ignoradas por el compilador y no se expor-
tan al procesador. Por lo tanto, no ocupan espacio en el chip ATmega.
yey
(comentarios en miltiples lineas) Si tienes mucho que escribir puedes extender los comentarios a lo largo de
varias lineas. Todo lo que escribas entre estos dos simbolos sera ignorado por el compilador y no se exporta al
procesador. Por lo tanto, no ocupa espacio en el chip ATmega.
4
(llaves) Se usan para definir cuando empieza y cuando acaba un bloque de cédigo (también se usa en funciones
como void loop)
(punto y coma) Cada linea de cédigo debe terminar con un punto y coma (la falta de punto y coma al final de una
linea de cédigo es muchas veces el motivo de que un programa rechace la compilacién)..
Lt)PROGRAMACION
VARIABLES
Un programa no es mas que una serie de instrucciones que permiten mover los numeros en un sentido 0 en otro,
de manera inteligente. Las variables son las funciones que se utilizan para realizar todos esos movimientos.
int
(entero) El caballo de batalla principal. Aimacena un numero en 2 bytes (16 bits), No tiene decimales y almacenara
Un valor entre -32.768 y 92.767.
long
(entero 32b) Se utiliza cuando un entero no es lo suficientemente grande. Tiene 4 bytes (32 bits) de RAM y su
Tango se encuentra entre -2.147.483.648 y 2147.483.647.
boolean
(booleano) Se trata de una simple variable Verdadero o Falso. Muy atl por que solo utiliza 1 bit de memoria RAM.
float
(en coma flotante) Se utiliza con las matematicas de punto flotante (decimales). Tiene 4 bytes (32 bits) de RAM y
su tango se encuentra entre -3,4028235E+38 y 3,4028235E+38,
char
(caracter) Almacena un caracter utiizado en cédigo ASCII (por ejemplo ‘A’=65). Utiiza 1 byte (8 bits) de RAM,
Arduino maneja las cadenas como una matriz de caracteres.
OPERADORES ARITMETICOS
Los operadores aritméticos se utiizan para manipular los nimeros (funcionan como en las matematicas simples)
= (asignacién)
Hace que algo sea igual a algo otro (ej. x = 10 x 2 // x es por lo tanto igual a 20)
% (resto)
Calcula el resto de la divisién entre dos enteros, Es muy itil para mantener una variable dentro de un rango
particular (por ejemplo, el tamatio de un array).
+ (suma)
~ (resta)
x (multiplicacién)
7 (division)
OPERADORES COMPARATIVOS
Los operadores comparativos se utiizan para realizar comparaciones logicas,
(igual a) (x2:
(distinto de) (e, 121-20 os mnue 6 12112 es FALSE)
< (menor que) (o).12<10 os FALSE 6 12<12 08 FALSE 6 12<14 0s TRUE)
> (mayor que) (e).12>10 os TRUE 6 12512 05 PALSE 6 12>16 05 FALSE)PROGRAMACION
ESTRUCTURAS DE CONTROL
Los programas dependen de lo que se va a reproducir después. A continuacién se muestran los elementos
basicos de control (hay unos cuantos mas en internet).
if (comparador) { }
else if (comparador) { }
else{ }
Esto ejecutara el cédigo entre las llaves si el comparador es TRUE, y si es FALSE ejecutaré en comparador else
if, en caso de que este sea también FALSE se ejecutara el cédigo else.
For (int i = 0; ix #repeats; it+) {
Se usa cuando quieres repetir un trozo de cédigo un numero determinado de veces (puede contar hasta i++ 0
hasta i--, o usar cualquier otra variable)
FUNCIONES DIGITALES
pinMode(pin, mode) ;
Se usa para configurar el modo de un pin, donde pin es el nmero de salida que quieres direccionar del 1 al 19
(los pines analégicos 0 a § se corresponden con los numeros del 14 al 19). El parametro mode (modo) puede ser
NPUT (entrada) o ourPur (salida).
digitalRead (pin) ;
Una vez que el pin a sido establecido como zwpur (entrada), puede ser configurado para que responda como
HIGH (valor del voltgje a SV) o Low (valor del volaje a OV).
digitalwrite(pin);
Una vez que el pin ha sido establecido como ourPur (salida), puede ser configurado para que responda como
HIGH (valor del voltaje a 5V) 0 LOW (valor del voltaje a OV).
FUNCIONES ANALOGICAS
Arduino es una maquina digital pero tiene la habilidad de funcionar también en el dmbito analégico (por medio de
Ciertos trucos). A continuacién se explica como se trabaja con dispositivos que no sean digitales.
analogRead (pin);
Cuando los pines de entrada anal6gica son configurados como INPUT (entrada) puedes leer su voltaje. Estos
pines pueden leer un valor entre 0 (para 0 voltios) y 1024 (para 5 votios).
analogWrite(pin, value);
Algunos pines de Arduino soportan PWM (o Modulacién por Ancho de Pulso), concretamente los pines 3, 5, 6, 9,
10 11, Esta técnica enciende y apaga el pin de forma muy rapida para que funcione como una salida digital. El
valor es cualquier numero entre 0 (ciclo de trabajo al 0%, siempre apagado, 0 voltios) y 255 (ciclo de trabajo al
100%, siempre encendido, 5 voltios)
*Nota: Para una referencia de programacién completa visita http://arduino.ccles/Reterence/HomePageFundamentos de electronica
PRINCIPIOS DE ELECTRONICA
No es necesaria experiencia previa con la electronica para divertirse con este kit. A continuacion, puedes encontrar
algunos detalles sobre cada uno de los componentes electrénicos que incluye el kit, para que lo puedas identificar
y entiendas en que consiste de manera mas sencilla. Si en algiin momento te preocupa el funcionamiento de
algin componente en particular, o si este no funciona, internet resulta una verdadera fuente de conocimientos.
Asimismo, siempre puedes ponerte en contacto con nosotros enviando un email a [email protected]
DETALLES DE LOS COMPONENTES
_LED (Light Emitting Diode)
Lo que hace: Emite luz cuando una pequefia corriente lo atraviesa.
Identificacién: Parece una pequeria bombil
Numero de conductores: 2 (Uno mas largo que el otro. EI mas largo se conecta al postivo)
‘Atener en cuenta: Solo funciona en una direccién. Requiere una resistencia (de 330 ohmios) que
limite el paso de la corriente.
Mas dotalles: hitp://es. wikipedia orgiwikilLed
Resistencia
; Lo que hace: Restringe la cantidad de corriente eléctrica que puede circular a través del circuto,
Identificacién: Es un cilindro con alambres que salen de cada uno de sus extremos. Su valor se
‘muestra utiizando un cédigo de color (ver pagina 11 para mas detalles)
Namero de conductores: 2
Atener en cuenta: Es muy facil equivocarse con el eédigo de color. Antes de uliizarlas, conviene
‘comprobar siempre por segunda vez que se trata de la resistencia correcta
Més detalles: hitp://es.wikipedia.orgiwikiResistor
Diode
Lo que hace: Es ol equivalente electrénico a una valvula de un solo sentido (0 antiretorno),
permitiendo que la corriente circule en una direccién pero no en la contraria,
Identificacién: Normaimente, es un cilindro con alambres que salen de cada uno de los extremos
7 yuna franja negra indicando la polaridad (la franja esta en el lado del positvo).
Numero de conductores: 2
‘Atener en cuenta: Solo funciona en una direccién (la corriente circulara a través del diodo si el
final de la linea esté conectado a tierra),
Mas detalles: hitp://es. wikipedia orgiwiki/DiodoTransistor
»
Motor eléctrico
NS
_Servo motor
_Registro electrénico
Lo que hace: Utiiza una pequefia corriente para conmutar o amplificar una corriente mayor.
Identificacién: Vione en diferentes formatos pero puedes leer ol nimero de pieza sobre su
superficie. El de este kites el P2N2222AG y su hoja de especificaciones esta en Internet,
Namero de conductores: 3 (base, colector, emisor)
‘tener en cuenta: Conectarlo correctamente (también suele sor necesario una resistencia
limitadora de corriente en el pin base)
Mas detalles: http //es.wikipedia.org/wikiTransistor
Lo que hace: Su eje rota cuando lo atraviesa una corriente eléctrica,
Identificacién: Este es facil, tiene pinta de motor. Normalmente es cilindrice con un eje que
sobresale de uno de los extremos,
Numero de conductores: 2
‘Atener en cuenta: Utiizar un transistor 0 un relé que sea el adecuado para el tamario del motor
eléctrico que estés utlizando,
Mas detalles: hitp-//es. wikipedia orgiwikiMotor_eléctrico
Lo que hace: Recibe un tiempo de pulso y lo convierte en una posicién angular del ej.
Identificacién: Es una pequeria caja negra con tres cables que salen de uno de sus lados y un eje
con una hélice de plastico que sobresale de su parte superior.
Namero de conductores: 3
‘tener en cuenta: El conector no esta polarizado asi que tienes que asegurarte que lo conectas
de forma correcta
Mas detalles: hitp://es.wikipedia.orgiwiki/Servo
Lo que hace: Almacena cualauier tipo de electrénica compleja dentro de un envoltorio que lo hace
‘muy f&cil de usar.
Identificacién: La ID (Identiicacién) de la pieza esta escrita en el exterior del envoltorio (para
poder leer asta ID se requiere, a veces, de mucha luz 0 una lupa).
Namero de conductores: De 2 a 100s. En este kit hay un con 3 pines (TMP36) y otro con 16
pines (74HC596).
Atener en cuenta: Orientarlo de manera correcta (hay que fijarse en las marcas que indican cual
ol pin numero 1)
Mas detalles: hitp-//es. wikipedia orgiwik/Circuito_integrado_Sensor plezoeléctrico
_Botén pulsador
_Potenciémetro
_Fotorresistencia
Lo que hace: Un pulso de corriente le hara emitir un “click” y una serie de pulsos de corriente le
hardn emitic un tono.
Identificacién: En este kit su forma es la de un pequerio barrilote negro, pero muchas veces son
tan solo un disco dorado.
Numero de conductores: 2
Atener en cuenta: Muy diffcl de usar mal
Mas detalles: http:/os.wikipedia orgiwiki/Sensor_piezoeléctrico
Lo que hace: Completa el circuit cuando es pulsado.
Identificacién: En este caso es un pequefio cuadrado con 4 patilas en su parte inferior y un botén
redondo en su parte superior.
Numero de conductores: 4
‘Atener en cuenta: La forma de estos pulsadores es cuadrada por lo que hay que tener culdado
de no conectarlos girados 90°.
Mas detalles: http/es.wikipedia.orgiwikiBotén_(dispositivo)
LLo que hace: Produce una resistencia variable en funcién de la posicién angular del eje
Identificacién: Pueden tener un montén de formas diferentes. En este caso, para identiticarlo
tienes que buscar un selector azul con una flecha en bajo relieve.
Numero de conductores: 3
A tener en cuenta: Existen potenciémetros lineales y logaritmicos. Ten cuidado de no comprar
accidentalmente uno de escala logaritmica.
Mas detalles: http:/os.wikipedia orgiwikiPotenciémetro
LLo que hace: Produce una resistencia variable en funcién de la cantidad de luz incidente
Identificacién: Normalmente es un pequefo disco con la parte superior blanca y una linea curva,
en su part inferior.
Namero de conductores: 2
A toner on cuenta: Recordar que necesita estar situado en un divisor de vottaje para poder
proporcionar una entrada tt
Més detalles: http://es.wikipedia.orgiwikiFotorresistenciaELECTRONICA
_Sensor de temperatura
Lo que hace: Proporciona un vole proporcional a la temperatura medida en grados centigrados.
Identificacién: Viene en diferentes formatos pero puedes leer el ndmero de pieza que viene
escrito en su superficie. El de este kit es el TMP36 y su hoja de especficaciones esta en Internet.
Numero de conductores: 2
‘Atener en cuenta: Conectarlo de la forma correcta,
Mas detalles: http:/es.wikipedia.orgiwiki/Sensor
Lo que hace: Funciona como un interruptor controlade por un circulto eléctrico que permite abrir 0
corrar otros circuitos eléctricas independientes.
Identificacién: Viene en diferentes tamafos y formatos, pero normalmente puedes leer las
ccaracteristicas del relé que vienen escritas en su superficie.
Namero de conductores: §
Atener en cuenta: Conectarlo de la forma correcta, Es un modelo de relé para soldar asi que
puede que tengas que presionarlo contra la breadboard para que haga contacto correctamente.
Mas detalles: http:/es.wikipedia.orghuikielé
_LED RGB
Lo que hace: Emite luz de cuando una pequefia corriente lo atraviesa. Un LED RGB es on
realidad 3 LEDs en uno: Rojo+ Verde +Azul. Cuando enciendes dos o més de ellos, se mezclan
para consegul el resto de colores del especto.
Identificacién: Parece una pequeria bombil.
Namero de conductores: 4 (uno mas largo que el resto que se conecta al positivo)
A tener en cuenta: Requiere de resistencias que limiten el paso de la cortiente,
Mas detalles: http:/bit yr QEHch
Lo que hace: Cuando se dobla, las laminas de color oscuro se separan y la resistencia a través
dol sensor aumenta.
Identificacién: Hay de diferentes tamafios. El de este kit es una lémina de plastico de 8 om. de
largo x 0,7 om. de ancho con franjas blancas y negras en uno de sus lados.
Numero de conductores: 2
‘Atener en cuenta: La resistencia del sensor flexible varia cuando las laminas de metal estan en el
exterior de la curva,
Mas detalles: http:/bit.ly/simPsvELECTRONICA
_Potenciémetro de membrana
Lo que hace: Se trata de una resistencia variable en la que la resistencia viene determinada por el
lugar de la superficie sobre el que se aplica una presin.
Identificacién: Existen de diferentes tamafios, El de este kit es una lamina de plastico de 6,5 em.
de largo x 2 cm. de ancho con una lengieta de color azul
Numero de conductores: 3
‘A tener en cuenta: Se le puede aplicar presién con un dedo, un boligrafo o un trozo de plastico,
Mas detalles: http:/bit y/s6akir
CODIGO DE COLOR DE LAS RESITENCIAS
Primer Digito
Ejemplos:
verde-aziLmarrén = $60 Ohmios
Tojo-ojo-rojo = 2200 Ohmios (2.2K)
marrén-negro-naranja = 10000 Ohmios (10k)
Segundo Digito
Nro. de Ceros
Tolerancia
MO -Negro MIS - Verde 20% -Ninguna
Mii-Marron = MG - Azul 10% -Plateado
M2 -Rojo 17 -Morado 5% -Dorado
3 -Naranja M8 -Gris
4 -Amarillo 9 -Blanco
RECORTAR LAS PATILLAS
Aigunos de los componentes de este kit vienen con unos cables o patillas realmente largos. Para hacerlos ms
‘compatibles con la breadboard (o tablero de circuitos) son necesarios un par de cambios.
_LEDs
Cort las patillas de los LEDs para que la patilla mas larga (positivo) tenga aproximadamente 10mm. y la patilla
mas corta (negativo) tenga aproximadamente 7mm.
_Resistencias
Dobia las patillas hacia abajo para colocarlas a 90° respecto del cilindro. Después recértalas para que tengan una
longitud de aproximadamente 6 mm.
Otros componentes
Algun otro de los componentes puede que también necesite ser cortado. Usa tu propio criterio.
ahCIRC - 01
LO QUE ESTAMOS HACIENDO
Los LEDs se utiizan en infinidad de ingeniosos objetos y ese es el principal
motivo por el cual han sido incluidos en este kit. Vamos a empezar con algo
realmente simple, encendiendo y apagando uno de estos LEDs repetidamente
para generar un agradable efecto de parpadeo. Para empezar tienes que coger los
Componentes que se muestran mas abajo. Después, coloca la plantila en el tablero de
circuitos y conecta todo tal y como te indica la plantilla. Una vez que el citcuito esta
ensamblado tendras que cargar el programa. Para llevar a acabo esta operacién tienes que conectar tu placa
Arduino al puerto USB de tu ordenador. Ahora tienes que seleccionar el puerto correcto en Herramientas >
Puerto Serial > (el puerto de comunicacién de tu Arduino). Vamos a utilizar un ejemplo de programa incluldo
en el IDE. Para abrirlo vete a Archivo > Ejemplos > 01.Basics > Blink.Lo siguiente es cargar ol programa yendo
a Archivo > Cargar (0 pulsando cmd+U) (ctri+U para PC). ;Por fin! ;Ya puedes disfrutar de la gloria! (y de las
posibilidades que ofrece la capacidad de controlar la luz).
Sitienes algin problema cargando el programa, dispones de una completa guia de soluci6n de problemas en la
pagina hitp://arduino.cc/es/Guide/Troubleshooting
EL CIRCUITO
Componentes
Petit + asin oemimens Zenon (71 Hemmer
Parable de eto (eranjo Naren)
_Esquema
a
aetiedsmer
Internet
are el CIRC-1 =n
aparaesana dinamo!
al vdoo de encambai anBlinking LED CIRC - 01
ELCODIGO
No es necesario que escribas todo el texto, solo tienes que pulsar en: Archivo > Ejemplos > 01.Basics > Blink
(ejemplo extraido de la pagina http:/Arduino.ce. Echale un vistazo para ver otras grandes ideas)
NO FUNCIONA (3 cosas que puedes probar)
_No se enciende el LED
‘Los LEDs solo funcionan en una direccién. Prueba a desconectarlo y conectarlo de nuevo pero girado 180° (no te preocupes,
Conectarlo al revés no causa dafios permanentes)
No se carga el programa
Esto sucede a veces, lo més comin es que no hayas elegido correctamente el puerto serie.
Puedes cambiarlo en Herramientas > Puerto Serial (el puerto de comunicacién de tu Arduino)
_Sigue sin funcionar
Un circuito roto no es nada divertido. Mandanos un email a shop@reflexiona biz y nos pondremos en contacto contigo lo antes
posible para que, en caso necesario, podamos reemplazar tu placa.
MEJORANDO EL CIRCUITO
Cambiar el pin
EI LED esté conectado al pin 13 pero puedes usar cualquiera de los pines de Arduino, Para cambiatlo, coge el cable conectado
al pin 13 y muévelo al pin que tu elas (de 0 a 13) también puedes conectarlo a las salidas analégicas: 3,5, 6, 9, 10,11)
‘Anora, en el cédigo, cambia la linea:
Ant led = 1: Ant led = nuevo pin;
YY, después, carga el sketch (edm+U para Mac OS o ctrl + U para Windows)
Cambiar el tiempo de parpadeo
ZNo te gusta que este 1 segundo encendido y 1 segundo apagado?
Cambia las siguientes lineas de cédigo:
digitalWrite(Ledpin, HIGH);
delay (tiempo de encendide); //(segundos * 1000)
digitalWrite(LeaPin, Low);
delay(tiempo de apagado); //(segundes * 1000)
_Controlar el brillo
‘Ademas del control digital (on/off), Arduino puede controlar algunos pines de forma analégica (control del bilo). Habré més
detalles sobre este tema en posteriores citcultos pero vamos a jugar un poco con esta caracteristca tan estupenda.
En el cbaigo, cambia el LED de salida del pin 19 al pin 9 (cambia también el cable que va a la breadboard):
int led = 13; => int led
Sustituye ol cddigo digitalwrite() en leop{ } poresto: analoghrite(9, mimero @ bits);
(namero 8 bits) = cualquier nimero entre 0 y 255. (0 = olf; 255 = on; Entre 0 y 255 = diterente brillo)
_-Controlar la intensidad:
Vamos a uilizar oro ejemplo de programa incluido en el IDE. Para abrirlo vete a Archivo > Ejemplos > 03.Analog > Fading.
‘Ahora carga este programa en la placa y observa como el LED se enciende y se apaga gradualmente.CIRC - 02
: LO QUE ESTAMOS HACIENDO
‘Ya hemos hecho parpadear un LED. Es momento de ir un paso mas allé. Ahora,
‘vamos a conectar 8 LEDs, También tendremos la oportunidad de forzar un poco
mas la placa Arduino creando varias secuencias de lluminaci6n. El circuito que
vamos a utilizar a continuacién es muy util para que experimentes escribiendo tus
propios programas y consigas hacerte una mejor idea de cémo funciona Arduino.
{Al mismo tiempo que controlamos los LEDs vamos a empezar a utlizar unos métodos muy simples de programa-
cién que nos ayudaran a mantener los programas mas cortos.
for () loops : Se usa cuado quieres reproducir una parte del cédigo vatias veces.
Arrays [ } : Se usa para manejar variables de forma sencilla (se trata de un grupo de variables).
= EL CIRCUITO
Componentes
# Ciovice2 pines
{Eo amare de mm. Cable conterinales Parente)
§ er ox P\ reastnca 290 Obmios
_Esquema
pins pins pin7 pins
the.
Internet
un planta
arse CIRC-02 on
epuetensnabipianemcec2
a idooMultiples LEDs CIRC - 02
ELCODIGO
No es necesario que escribas todo el texto. Descarga el cédigo desde http:rflexiona biz/codigo_circo2
Copia el texto y pégalo en un sketch vacio de Arduino.
NO FUNCIONA (3 cosas que puedes probar)
_Algunos LEDs no se encienden
Es muy facil conectar un LED al revés. Comprueba todos los LEDs que no se encienden y asegarate de que estan colocados
do forma correcta
_Funcionan de forma desordenada
Gon ocho cables atravesando el circuito es muy facil que se te haya cruzado alguno. Comprueba que el primer LED est
conectado al pin 2 y que el resto de LEDS estan conectados a los pines que siguen a este.
_Empezar de nuevo
Es muy facil conectar mal un cable de forma accidental, Mucha veces, es mejor desconectar todo y empezar otra vez con una
‘nueva plantila que intentar encontrar donde esté problema,
MEJORANDO EL CIRCUITO
Ajustando los ciclos
En la funcién Loop () hay 4 lineas de cédigo. Las tres titimas empiezan con //, esto significa que el compilador considera
‘esa linea como texto y no como programacién. Para ajustar el programa a la utllzacion de los diferentes ciclos disponibles, hay
‘que modificar el contenido dela funcién Loop () dol cédigo:
11 onedfteranotherNoLoop () +
oneafterAnotherLoop();
11 oneonatarime();
71 inandout();
Carga el programa y te dards cuenta de que nada a cambiado. Echa un vistazo a las dos primeras funciones, las dos hacen lo
mismo pero utlizan aproximaciones distintas (la segunda funcién utiliza un for Loop)
-Animaciones extra
{Te has cansado de esta animacién? Entonces, prueba las otras dos animaciones. Borra las barras que dan a cada linea el
formato de comentario, carga de nuevo el programa en tu placa y distruta de las nuevas animaciones de iluminacién. Prueba
primero, borrando las barras solo delante de las inea 3, y después haz lo mismo con las de la linea 4. Al principio, solo tendria
que haber una linea de las cuatro sin barras cada vez que cargas el programa. Mas tarde puedes probar a quitar las barras de
todas las lineas.
Comprobando tus propias animaciones
Introddcete en el cédigo y empieza a cambiar cosas. El objetivo es encender un LED usando digitalwrite(pinkumber,
HIGH) ; después apagar ese mismo LED usando digitalWrite(pinNumber}, Low) ; Escribe todo lo que te dé la gana.
‘Aunque cambies un montén de lineas de cédigo no vas a romper nada.CIRC - 03
LO QUE ESTAMOS HACIENDO
Los pines de Arduino son estupendos para controlar directamente pequefios
dispositivos eléctricos como los LEDs. En cualquier caso, cuando hay que lidiar
con dispositives mas grandes (como un motor eléctrico 0 una lavadora) es
necesario un transistor extero. Los transistores son increiblemente ittles, ya que
proporcionan mucha corriente usando una corriente mucho menot. Los transistores
tienen 3 pines (base, colector y emisor). En los transistores en modo amplificador (NPN),
la carga se conecta al colector, y la tierra al emisor, Cuando una pequefia corriente pasa desde la base al emiscr,
la corriente fluye a través del transistor y hace girar el motor (esto sucede cuando configuras el pin de tu Arduino
como HIGH ). Hay miles de tipos diferentes de transistores, lo que permite cumplir a la perfecci6n con cualquier
cometido. Para este circuito se ha escogido un transistor P2N2222AG, se trata de un transistor comin y de uso
general. Lo que hay que tener en cuenta, en este caso, es que su tensién maxima (40V) y su corriente maxima
(200mA) sean los suficientemente altas para el motor eléctrico. (Puedes encontrar la hoja de especiticaciones de
este transistor visitando la pagina http:/reflexiona.biz/p2n2222aq). En este circuito, el diodo 1N4001 acta como
diodo de retomno, Puedes encontrar mas detalles sobre porque esta ahi en http:/en.wikipedia.org/wiki/Flyback_diode,
EL CIRCUITO
"_Componentes
> anata cRe9 fa “anton ana a 7” Rinna de 14 onion
Sovueecicunee # Sevesezpines |) eRe Chon con mines ("ue 14 cn
Nooreeccs — (*" Dadocron)
_Esquema Eltransistor lev
aes ‘el codigo P2N222286
a Impreso en su superficie |
Descarga un planta
para el CIRC-03 en
opureesana binant eed
al vidoo 32 encase an
NOTA: 61 Arduino se resetea, sora necesario que instales el capacitor opcionalTransistor + Motor CIRC - 03
EL CODIGO
No es necesario que escribas todo el texto. Descarga el cédigo desde http:reflexiona bizicodigo_circo3
Copia el texto y pégalo en un sketch vacio de Arduino.
:: NO FUNCIONA (3 cosas que puedes probar)
El motor no da vueltas
Sihas utiizado un transistor que no os el que incluye este kit, vuelve a comprobar on su hoja de especificaciones que los pines
‘son compatibles con los de un P2N2222AG (en muchos casos pueden estar invertidos)
_Sigue sin haber suerte
Sihas utiizado un motor que no es el suministrado con el kit, vuelve a comprobar en su hoja de especiicaciones que funcione
BV y que no necosite mas potencia,
_Sigue sin funcionar
A veces, la conexién entre la placa Arduino y el ordenador, se puede interrumpir. Prueba a desconectar y volver a conectar el
cable USB.
MEJORANDO EL CIRCUITO
__Controlando Ia velocidad
Ya hemos practicado anteriormente con la capacidad de Arduino para controlar la intensidad de un LED. Ahora, usaremos esa
misma caracteristica para controlar la velocidad de un motor, Arduino realiza esta operacién haciendo uso de una técnica
llamada PWM o Power Wide Modulation (en castellano Modulacién de Ancho de Pulso). Esta técnica esta basada en la
‘capacidad que tiene un Arduino para funcionar realmente rapido. En lugar de controlar el voltaje que llega desde un pin,
‘Arduino encendera y apagara repetidamente ese pin, y de forma extremadamente veloz. En el mundo de los ordenadores, esto
‘supone ir de 0 a 5 voltios mucha veces por segundo, pero en el mundo de los seres humanos, lo vernos como si fuera voltaje,
Por ejemplo, siel ciclo de Modulacién de Ancho de Pulso esta al 50% vemos la luz emitida por un LED regulada al 50%, ya que
nuestros ojos no son lo suficientemente rapidos como para ver parpadear el LED. Esta teoria funciona del mismo modo con los
transistores. {Qué no te lo crees? jPues haz la pruebal.
En la funcién Leop() cambia el contenido por:
11 motoronthend££()
motoronthendffwithspeed() ;
11 wotordcceleration();
Ahora carga el programa. Puedes cambiar la velocidad, camibiando las variables en onspeed y of £Specd.
_Acelerando y decelerande
ZPor qué dejario solo en dos velocidades cuando puedes acelerar y desacelerar el motor? Para hacer esto solo tienes que
‘cambiar el cédigo en la funcién Leop() para que ponga:
11 motoronthendf£();
// motoronthendffwithspeed() ;
motorAcceleration();
‘Ahora carga el programa y observa como tu motor acelera poco a poco hasta alcanzar la maxima velocidad y luego vuelve a
docelerar. Si quieres cambiar en tiempo que tarda en acelerar y decelerar, cambia el parametro delayTime (un nimero mas
ato significa mayor tiempo de aceleracién).fol) Tomy}
LO QUE ESTAMOS HACIENDO
Hacer que un motor eléctrico gire es muy divertido, pero cuando hay que llevar a
cabo un proyecto en el que es necesario un control de movimiento mas preciso,
estos motores suelen quedarse un poco cortos. Una solucién adecuada en este
tipo de situaciones es la utiizaci6n de servomotores de modelismo. Estos motores
se fabrican al por mayor, estan disponibles en la mayoria de los establecimientos de
electronica y tienen precios que van desde los dos euros a los cientos de euros. En el
interior de estos motores podemos encontrar un pequefio mecanismo (que permite movimientos mas potentes) y
algo de electrénica (que facilita el control). Un servomotor estandar se puede posicionar de 0 a 180 grados. La
posicién del servomotor se controla mediante un tiempo de pulso que va de 1,25 milisegundos (pulso equivalente
a la posicién 0°) a 1,75 milisegundos (pulso equivalente a la posicién 180°), Siguiendo esta légica, para conseguir
posicionarlo a 90° haria falta un pulso de 1,5 milisegundos. Estos tiempos varian en funcién del fabricante. Si el!
pulso se envia cada 25-60 milisegundos el servomotor funcionara suavemente. Olra de las maravillosas caracte-
risticas de Arduino es que dispone de una libreria que permite controlar 2 servomotores (conectados a los pines 9
6 10) utilizando una sola linea de cédigo.
EL CIRCUITO
Componentes
ix 4x « Sx ix
D> Heworeet + Sinmarzame Linnea pis Savcortmime AY ise
Esquema
_Internet
Descarga un plans
pate el CIRC-04 on
phen bela see
cha un vitazo|Servomotor CIRC - 04
EL CODIGO
No es necesario que escribas todo el texto, solo tienes que pulsar en Archivo > Ejemplos > Servo > Sweep
(ejemplo extraido de pagina hitp://Arduino.ce, Echale un vistazo para ver otras grandes ideas)
NO FUNCIONA (3 cosas que puedes probar)
_El servo no da vueltas
incluso con los cables de colores sigue siendo facil equivocarse y conectar un servomotor del revés. Este podria ser tu caso,
_Sigue sin funcionar
‘Otto error que se suele cometer habitualmente es haber olvidado conectar la cortiente a +5V y a la tierra (GND), cable rojo y
cable negro respectivamente. ;Has comprobado si estan conectados?
Ajuste de la alimentacién
Siel servomotor empieza a moverse pero acto seguido va a trompicones y parpadea una luz en tu placa de Arduino, esto
significa que la fuente de alimentacion que estas usando no es lo suficientemente potente. Usar una pila nueva (0 una bateria)
‘en vez del puerto USB, daberia resolver este problema.
MEJORANDO EL CIRCUITO
Control mediante un potenciémetro
TTodavia tenemos que experimentar con las entradas de Arduino pero si quieres adelantarte unos pasos hay un programa
pulsando en Archivo > Ejemplos > Servo > Knob donde se utiliza un potenciémetro (ver CIRC-08) para controlar el servomo-
tor. Puedes encontrar las instrucciones en http:/Wwww.arduino.cc/es/Tutorial/Knob
_Auto-sineronizacién
‘Aposar de que os muy fl controlar un motor servo con la libreria que incluye la IDE de Arduino, a veces es mas divertdo
tratar de avoriguar como programar algo por t mismo INTENTALO! En anteriores ojercicios, ya hemos controlado directamente
€l pulso enviado desde un pin, asi que puedes utiizar este mismo método para controlar servernotores dasde cualquiera de los
20 pines disponibles de tu Arduino (para hacer esto necesitas cambiar ol parametro pulset ine}.
Int servopin
void setup(){
inode (servoPin, OUTPUT);
>
void Loop(){
int pulseTime = 2100; // el nimero de microsegundos
// para posicionar el servo (1500 es aprox. 90 grados,
// 900 es aprox. 0 grados y 2100 es aprox. 180 grados)
aigitalwrite(servoPin, HIGH);
delayMicroseconds(pulseTine) ;
digitalwrite(servoPin, Low);
delay (25);
»
Grandes ideas
{Los servomotores se pueden usar para hacer un montén de cosas interesantes.A continuacién, puedes encontrar algunos
proyectos basados en el uso de servomotores que son realmente interesantes:
Xmas Hit Counter: httpviardx.org/XMAS
(Open Source Robotic Arm (utiliza tanto un controlador de servo como un Arduino): http://ardx.org/RARM
‘Servo Walker: http://ardx.org/SEWACIRC - 05
LO QUE ESTAMOS HACIENDO
Es hora de empezar a ugar con chips 0 cieuitos integrados (como se les llama habitual-
mente). La parte extema de un chip puede resuttar realmente decepcionante. Para que te
hagas una idea, el chip de la placa de Arduino (un microcontrolador) y el que vamos a
utlizar en este circuto (un registro electrsnico) se parecen mucho exteriormente, pero en
realidad son completamente diferentes. El precio del chip ATmega de la placa de Arduino es de
unos cuantos euros, mientras que el chip de registro electrénico 74HC595 cuesta tan solo unos
Céntimos. Este atimo, es un buen chip de aprendizaje y en el momento que te encuentres cémodo con
su funcionamiento y seas capaz de entender su hoja de especiticaciones (ver en hitpzirelexiona biz/74he596), el mundo de los,
chips sera coser y cantar. El registro electrénico (también conocido como conwertidor de serie a paralelo) te proporciona 8 salidas
adicionales para controlar LEDS (0 similares), usando solo 3 pines de Arduino. También se pueden conectar varios chips 74HC595
juntos, para disponer de un ndmero de salidas cas ilimitado usando esos mismos tres pines. Para hacer uso de este chip,
registras os datos y luego los bloqueas (los asequras). Esto se consigue configurando el pin de datos, ya sea a HIGH a LOW, y
rogistrandolo; configurando el pin de nuevo y volviéndolo a registrar; y asi, repitiondo esta operacién hasta que has cambiado los 8
bits de datos, Después pulsas el bloqueo y los 8 bits se transfieren & los pines del chip de registro electrénico, Suena complicado
pero, una vez que le coges el truco, es realmente facil
Para disponer de mas informacin sobre como funciona un registo elécténico visita hitp/es wikipedia orgiwikifRegistto_electrnico
EL CIRCUITO
Componentes
1 re
a we
QP revs cve.05 Rigi ecwoico
poratasiecroutos Chin dp tf rac Ele con mien
§ ox Fesietencia de 20 Onmiot
Led Rojo (aranja-Naranjo-arron)
Esquema
Hay una endldura con
forma de media luna.
ota va ena parte de arriba
Internet
Descarga una planta
epulensna b2plents ees
Esha un vistazo|Registro electrénico CIRC - 05
EL CODIGO
No es necesario que escribas todo el texto. Descarga el cédigo desde http:/reflexiona biz/codigo_circOS
Copia el texto y pégalo on un sketch vacio de Arduino.
NO FUNCIONA (3 cosas que puedes probar)
_EILED de encendido de Arduino se apaga
Esto pasa algunas veces y es debido a que el chip de registro electrénico est conectado al revés. Silo cambias rapidamente
de posicion no tiene por que romperse nada.
Sigue sin funcionar
Sentimos mucho que este manual suene en ocasiones como un disco rallado, pero es que es muy probable que el problema
‘sea algin cable que esté cruzado o mal conectado.
_Te invade la frustracién
Este circuto es muy simple y muy complejo al mismo tiempo. Méndanos un correo electrénico a shop @reflexiona biz.
‘Queremos saber que problema has tenido con este circuilo para poder afiadirlo en las proximas ediciones de esta guia.
MEJORANDO EL CIRCUITO
Hacerlo de la manera mas dura
Un Arduino convierte en faciles las acciones mas difcles. El chip registro electronico es un claro ejemplo de esto. En cualquier
caso, una de las mejores caracteristicas de Arduino es que puedes hacer las cosas tan simples o tan complejas como desees.
‘Vamos a ver un ejemplo de esto. En tu linea de 1eep() haz el siguiente cambio
updateneps(i) > updateLeDstong(i);
‘Carga el programa y fjate que nada ha cambiado. Si te fjas en el cédigo se puede ver como nos estamos comunicando con el
chip bit a bit. Para obtener més detalles visita http:/es.wikipedia.orgiwiki/Serial_Peripheral_interlace,
_Controlando LEDs individuales
Es hora de controlar los LEDs de forma similar a como lo haciamnos en el ejercicio CIRC-02. Como los estados de los LEDs estén
almacenados en un solo Byte (un valor de & bits), para ver al detalle como funciona vete a httzfes. wikipedia orghwik'Sistema_binaro.
Un microcontrolador Arduino es muy bueno manipulando bitsy tiene un montén de operadores que nos pueden ayudar con esta tarea
Puedes encontrar mas detalles sobre matemitica de nivel debits en http:/es. wikipedia orgiwikilOperador_a_nivel_de_bits.
Nuestra implementacién. Sustituye ol cédigo de leep() por:
int delayrime = 100; //e1 mimero de milisegundos de retardo
//entre 1a actualizacién de los LEDs
for (int i= 0; i < 8; itt){
changeLED(i, oN);
delay (delayTine) ;
y
for (int i= 0; i < 8; i44){
changeLED(i, OFF);
delay (delayTime) ;
y
Cargar este cédigo hard que las luces se enclendan una detras de otra, para apagarse después del mismo modo.
‘Ahora es cuando las cosas se ponen interesantes. Si retomas el cédigo utilizado en el CIR-02 (Miltiples LEDs) puedes
‘comprovar que cambiabamos los LEDs usando digitalWrite(led, State). Este cédigo es igual que la rutina que hemos
escrito con changeLED(1ed, State). Puedes utiizar las animaciones que creaste para el CIRC-02 con tan solo copiar el
Ccédigo en este sketch y camblando todos los digitalwrite() por changeLeD(). jRealmente potente!
2No te parece? (jAtencién! Vas a tener que cambiar otras cosas del cédigo pero sigue las indicaciones
de los errores de compilacién y terminaras haciendo que funcione correctamente).CIRC - 06
LO QUE ESTAMOS HACIENDO
Hasta el momento hemos controlado luz, movimiento y electrones, Ha llegado la
hora de abordar el sonido. Pero... jEI sonido es un fendmeno analégica! {Como
haré nuestro Arduino para enfrentarse a este roto?
Una vez mas, nos aprovecharemos de la increible velocidad de procesado de nuestra
placa para simular un comportamiento analégico. Para poner de nuevo en practica esta
estupenda habilidad de nuestro microcontrolador, conectaremos un zumbador piezoeléctrico a uno de los pines
digitales de nuestro Arduino.
Un zumbador piezoeléctrico emite un “click” cada vez que es accionado por la corriente que lo atraviesa. Silo
accionamos con la frecuencia adecuada, estos “clicks” sonaran de forma continua y nos permitiran reproducir
diferentes notas. Por ejemplo, si enviamos pulsos con una frecuencia de 440 Hz (veces por segundo} conseguire-
mos la nota La’, 0 si enviamos pulsos con una frecuencia de 261 Hz conseguiremos la nota “Do”, Vamos a
‘experimentar con esto y hacer que nuestro Arduino toque “Twinkle Twinkle Little Star’.
EL CIRCUITO
“componente
nr ie 6: a
Esquema
Arduino
ozo Elemento
Internet
Descarga ia sania
pata sICIRC-06 on
ptateonaelrile ett
ena un vietazoPiezo elemento CIRC - 06
EL CODIGO
No es necesario que escribas todo el texto. Descarga el cédigo desde http:ireflexiona bizicodigo_circos
Copia el texto y pégalo en un sketch vacio de Arduino.
:: NO FUNCIONA (3 cosas que puedes probar)
No hay sonido
En funcion del tamaho y la forma del zumbador plezoeléctrico es facil confundir cuales son los pines de la breadboard en los
que has introducide los pines del zumbador. Comprueba de nuevo donde has pinchado estos pines.
No puedes pensar cuando oyes la melodia
La melodia del zumbador piezoeléctrico puede llegar a ser un poco molesta. Solo tienes que desconectar el zumbador piezo-
‘léctrico mientras piensas, carga tu nuevo programa y conecta de nuevo el zumbador.
_Te has cansado de escuchar “Twinkle Twinkle Little Star”
El cédigo que has copiado ha sido escrito por “alguien cualquiera” asi que ti también puedes escribir tus propias canciones.
Echale un vistazo a los ejemplos de cédigo que hay mas abajo antes de ponerte con ello.
MEJORANDO EL CIRCUITO
_dugando con la velocidad
El tiempo para cada nota esta calculado baséndose en variables, de tal forma que podamos cambiar el sonido de cada nota 0
«el tiempo que dura, Para cambiar la velocidad de la melodia solo tienes que cambiar una linea
int tempo = 300; > int tempo = (nuevo néimero)
‘Cémbialo a un nimero mayor para que la melodia suene mas lento, 0 a un niimero menor para que vaya mas rapido.
—Alustando las notas
5i ests preocupado por que las notas suenan un poco desafinadas, esto también tiene remedio. Las notas han sido calcula
{das basdndose en la férmulasituada en el bloque de comentarios de la parte superior del programa. Pero para ajustar las
notas de forma individual solo tienes que ajustar sus valores hacia arriba o hacia abajo en a matriz de tones(] hasta que
suenen correctamente. Cada nota se corresponde con su nombre en la matriz de names[} (p. Ej: C = 1915)
char names{] = { ‘c', , etch ys
int tones{] = { 1915, 1700, 1519, 1432, 1275, 1136, 1014, 956 };
_Componiendo tu propias melodias
El programa esta configurado para que suene “Twinkle Twinkle Little Star” pero la forma en la que he sido programado permite
cambiar la cancién de forma rapida y sencilla, Cada cancién se define mediante un int y dos matrices, la longitud del int.
define el numero de notas, la primera matfiz notes[] define cada nola y a segunda beats| } define cuanto tiempo suena
cada nota,
Algunos ejemplos:
Twinkle Twinkle Lite Star
int Length = 15;
char notes(] = “ccggaagffeedde
int beats(] = { 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1,
Feliz Cumpleafos (primera linea)
int length = 13;
char notes[] = "ccdcfeccdegt *
int beats[] = (1, 1, 2, 2, 2, 4) 1, 1, 2, 2, 2,CIRC - 07
:: LO QUE ESTAMOS HACIENDO
Hasta el momento nos hemos centrado exclusivamente en las salidas. Ha
llegado la hora de hacer que Arduino “escuche, vea y sienta’. Empezaremos con
un simple bot6n pulsador. No te procupes, el cableado del botén pulsador es
realmente sencillo, En todo el circuito, solo hay un componente que puede dar la
sensacién de estar fuera de lugar: la resistencia de polarizacién (en este caso la
resistencia de 10k Ohmios). Esta resistencia ha sido incluida por que Arduino no siente de
la misma forma que lo hacemos los seres humanos (p. g).: bot6n pulsado, botén no pulsado), sino que atiende al
voltaje que hay en el pin y decide si es HIGH o LOW. El botén pulsador esta configurado para forzar el pin de
Arduino a Low cuando es pulsado, En cualquier caso, cuando el botén no esta pulsado el voltaje del pin “flotara’
{pudiendo provocar fallos ocasionales). Para conseguir que Arduino lea con exactitud el modo BIGH cuando el
botén no esta pulsado, se afiade la resistencia de polarizacién.
*Nota: el primer programa de ejemplo solo utiliza uno de los dos botones.
EL CIRCUITO
Componentes
Ken Uwemnmminon Lome
Puleador
2x
Fesletencla de 10k ohmios
(Marron Negro Naranja)
Internet
Descarga una lari
ate el CIRC-07 on
psa beante ea?
cha un isterPulsadores
EL CODIGO
No es necesario que escribas todo el texto, solo tienes que pulsar en: Archivo > Ejemplos > 2.Digital > Button
(ejemplo extraido de la pagina htip:/Arduino.cc, Echale un vistazo para ver otras grandes ideas)
NO FUNCIONA (3 cosas que puedes probar)
La luz no se enciende
Erbotén que usamos en este kit tiene forma cuadrada. Por este motivo, es muy facil equivocarse y colocarlo de forma incorrec-
ta. Gira ol pulsador 90° sobre la breadboard y comprueba si ahora funciona.
__La luz no se apaga gradualmente (cuando mejoramos el circuito)
Tn fallo que comentemos constantemente es que cuando cambias de un simple encendido/apagado a un apagado gradual no
cambiamos del pin 13 al pin 8 el cable conectado al LED.
_No estas impresionado
No te inquietes, todos los circuitos que hemos visto en esta guia son elementales para que aprender jugando con los compo-
rnentes te resulte muy fell, pero una vez que juntas en un solo circuto tados estos componentes que hemos visto (y que
vamos a ver)... jal imite es tu imaginacién!
MEJORANDO EL CIRCUITO
_Botén de encendido, botén de apagado
El primer ejemplo con los botones pulsadores puede ser un poco decepcionante. Vamos a complicarlo un poco mas haciendo
{que un botén encienda el LED y el otro botén lo apague, Sustituye el cédigo por:
int ledPin = 13; //escoge el pin para el LED
int inputPint //poten 1
int inputPin2 7fpotén 2
void setup() (
pintlede(LedPin, OUTPUT); J/peclarar el LED como salida
pinMode(inputPini, INPUT) ; 77fpotén 1
pinMode(inputPin2, INPUT); //potén 2
d
void leop() ¢
LE (digitalRead(inputPinl) == Low)
@igitalwrite(ledpin, Low); /fenciende 01 LED
else if (digitalRead(inputPin2) == Low)
digitalWrite(ledPin, HIGH); //apaga 01 LED
y
Y carga este programa en tu placa de Arduino para empezar a encender y a apagar el LED.
Apagando y encendiendo gradualmente
Uiilicemos ahora los botones pulsadores para controlar una sefial analégica. Para hacer esto, necesitas cambiar el cable que
‘conecta el pin 13 con la patila positiva del LED al pin 9, y cambiar también el cédigo siguiente:
int leapin = 13; ===> int leapin = 9;
‘Ahora afiades al principio del sketch:
int value = 0.
yy cambias el cédigo de Loop) para que ponga:
void Loop(){
Af (digitalnead(inputPini) == Low) { value--; }
else if (digitalRead(inputPin2) == LOW) { valuett; }
value = constrain(value, 0, 255)
analogirite(leaPin, value);
delay (10);
_Cambiando la velocidad de regulaci6n
Siquieres que el LED se apague y se encienda de forma gradual pero mas deprisa o mas despacio de lo establecido en el
cédigo anterior, solo es necesario que cambies una linea de cédigo:
delay (10 > delay(nuevo nimero) ;
Para que la regulacién sea mas rapida tienes que escribir un numero mas bajo y para que mas
lenta tienes que escribir un nimero mas alto.CIRC - 08
LO QUE ESTAMOS HACIENDO
Ademas de los pines digitales, Arduino también dispone de 6 pines que pueden
ser utiizados para sefiales de entrada analégicas. Estas entradas analégicas
admiten un voltaje de 0 a 5 voltios y lo convierten en un numero digital entre 0
(equivalente a 0 voltios) y 1024 (equivalente a 5 voltios), 0 lo que es lo mismo, con
tna resolucién de 10 Bits, Un componente que hace muy buen uso de esta caracteris-
tica de Arduino es el potenciémetro (también conocido como resistencia variable). Cuando
tun potenciémetro esta conectado ala placa con 5 voltios atravesando los pines de sus extremos, el pin central
(conocido también como cursor) reconocera un valor entre 0 y 5 voltios en funcién del Angulo al que haya sido
girado (p. ej: con el potenciémetro girado a la mitad serian 2,5 voltios). En nuestro sketch de Arduino, podemos
utilizar como una variable los valores que son enviados desde el potenciémetto al pin analégico al que este
conectado el cursor.
EL CIRCUITO
"_Componentes
i 4x ts 6: 1
tener. Venue Becomes Finca Vi
1
(771 essence de39 onion
{ (Naranja-Naranja-Marron)
“_Esquema
Internet
are el CIRC-08 en
apumatedana binant cece
video 3 encambaj anPotenciémetro CIRC - 08
EL CODIGO
No es necesario que escribas todo el texto, solo tienes que pulsar en: Archivo > Ejemplos > 3.Analog > Analoginput
(ejemplo extraido de la pagina hitp:/Arduino.cc. Echale un vistazo para ver otras grandes ideas)
:: NO FUNCIONA (3 cosas que puedes probar)
_Funciona de forma intermitente
Probablemente, esto es debido a una conexién dudosa con os pines del potenciémetro, Podemos solucionar este problema
faciImente. Basta con apretar el potenciémetro un poco en del tablero de circultos.
No funciona
‘Asegirate de no haber conectado accidentalmente el pin central del potenci6metro al pin digital 2 en lugar de conectaro al pin
analégico 2. (Los pines analégicos son la linea de terminales que esta debajo de los terminales de alimentacién)
_Sigue sin funcionar
intenta hacer funcionar e! circuito dandole la vuelta (poniéndolo boca abajo). A veces, asi si funciona.
MEJORANDO EL CIRCUITO
_Interruptor de umbral
Puede que en algiin momento quieras encender 0 apagar la sefial de salida cuando un valor exceda cierto umbral. Para hacer
‘esto con un potenciémetro cambia el cddigo de Loop) por:
void Loop (){
int threshold = 512;
A€ (analogRead(sensorPin) > threshold)
digitalwrite (ledPin, HIGH);
else (digitalwrite(ledPin, Low));
y
Esto hard que el LED se encienda cuando el valor sea superior a 512 (mas 0 menos la mitad del recorrido del potenciémetro).
Puedes ajustar la sensibiidad cambiando el valor de threshold.
_Regulacién
Ahora vamos a controlar el brill del LED directamente desde el potenciémetro, Para hacer esto primero tenemos que cambiar
el pin al que esta conectado el LED. Traslada el cable desde el pin 13 al pin 9 y cambia la siguiente linea de cédigo:
int leapin = 13; > int ledpin = 9;
Ahora cambias el cédigo de Leop() para que ponga:
void Lo0p(){
int potPin = 1024;
int value = analogRead(potPin) / 4;
analogwrite(ledPin, value);
»
Carga el cédigo y observa como tu LED se regula en funcién del giro del potenciémetro.
“Nota: el motivo por el que dividimos el valor value entre 4 es que la funcién analogRead() devuelve un valor entre 0 y
1024 (10 bits), y analogwrite() recibe un valor entre 0 y 255 (8 bits)
_Controlando un servo
Este es un excelente ejemplo en el que se funden un par de circuitos. Conecta el servo como hiciste en el CIRC-04, después
abre el programa de ejemplo en Archivo > Ejemplos > Servo > Knob
Carga el programa en tu placa de Arduino. Observa como ol eje del servo gira a la vez que giras ol potenciémetro.CIRC - 09
LO QUE ESTAMOS HACIENDO
Mientras que recibir una sefial de entrada puede ser realmente stil para los
experimentos que estan controlados por personas... Qué es lo que podernos
utilizar cuando queremos que sea el propio entorno el que controle nuestros
experiments? Pues se utilizan los mismos principios, pero en vez de un potencié-
metro (resistencia variable basada en la rotacién de un eje) utlizamos, por ejemplo,
una fotorresistencia (resistencia variable basada en la cantidad de luz).
Arduino no puede recibir directamente el valor de la resistencia (puede interpretar el voltae), por lo que tenemos
que configurar un divisor de tensi6n (http://es.wikipedia.org/wikiDivisor_de_tensién). Se puede calcular el voltaje
exacto en ol pin de entrada pero en nuestro caso (solo queremos distinguir la iluminacién relativa) podemos
experimentar con los valores y ver que es lo que mejor funciona para nuestro caso. Obtendremos un valor bajo
cuando el sensor esta bien iluminado y un valor alto cuando esta a oscuras.
EL CIRCUITO
Componentes
a
OP Prantits cinc-09 ax en ox 1x
Riawoncee Siwazome Honwennce “> Boeconsmnase Pld smut
1 1x
Resistencia de390 onmice "1 esatonca de 10k Ohmioe
(Warana-taraiastarron) (Marron Negro aranja)
_Esquema
ce
Internet
ar el CIRC-09 en
apunatena binant cco
al vidoo de encambaie2nFotorresitencia CIRC - 09
EL CODIGO
No es necesario que escribas todo el texto. Descarga el cédigo desde hitp:lIreflexiona bizicodiga_circo9
Copia el texto y pégalo en un sketch vacio de Arduino.
NO FUNCIONA (3 cosas que puedes probar)
_EILED se mantione apagado
Este es ol tipico error que se repite una y otra vez, por lo menos hasta que inventen un LED que funcione en los dos sentides.
Desconéctalo del tablero de circuitos y conéctalo al revés.
_No responde a los cambios de luz
Debido a que los espacios entre las patillas de las fotorresistencias no son estndar, es muy facil colocarlas mal. Comprueba
ue has conectado cada patila en su sito.
_Sigue sin funcionar
Puede que te encuentres en una habitacién que es demasiado clara o demasiado oscura, Prueba a apagar 0 encender las
luces para intentar que funcione. Si dispones de una linterna a mano prueba con ella,
MEJORANDO EL CIRCUITO
_Invertir la respuesta
Es posible que quieras que el LED responda a la contra. No te preocupes, es muy facil conseguir esto con tan solo cambiar:
analogirite(ledPin, lightLevel); > analogWrite(1edPin, 255 - lightLevel);
‘Carga el programa y observa como se produce el cambio.
Luz nocturna
‘Anora vamos a usar nuestras recién adquiridas capacidades de percepcién dela luz para controlar un servo (y al mismo
tiempo realizar un pequefio pirateo del obdigo de Arduino). Tienes que conectar un motor servo al pin 9 (como en el CIRC-04).
Después abre el ejemplo de KNOB (el mismo que usabamos en el CIRC-08) Archivo > Ejemplos > Servo > Knob. Carga el
programa y observa como funciona sin necesidad de modificar practicamente nada.
_Utilizar todo el recorrido del servo
Habras observado que el motor servo solo funciona en una porcién limitada de todo el recorrido. Esto es debido a que con el
Circuito divisor de tensién que usamos el voltae en el pin analégico AO no recibe tensién de 0 a SV, sino que recibe dos valores
intermedios (estos valores varian en funcién de tu configuracién)
Para arreglar esto juega con la linea:
val = map (val, 0, 1023, 0, 179);
Para obtener mas pistas sobre lo que tienes que hacer vista: http://arduino.cc/es/Reference/MapCIRC - 10
LO QUE ESTAMOS HACIENDO
{Cual va a ser el préximo fendmeno que vamos a medir con nuestro Arduino?
iTEMPERATURAI Para hacer esto vamos a utilizar un complejo circuit integra-
do que esta ocutto dentro de una envolvente idéntica a la de nuestro transistor
P2N222AG. Este circuito integrado dispone de tres pines (tierra, sefial, +5 voltios) y
6 realmente facil de usar. Emite una sefial de salida de 10mV (miivoltios) por grado
centigrado a través del pin de sefal. Para permitir temperaturas bajo cero hay una
compensacion de 500mV (25 °C = 750mV, 0 °C = 500mV). Para convertir los valores digitales en grados centigra-
dos haremos uso de algunas de las habilidades matematicas de Arduino. Después, para mostrar los resultados,
ullizaremos una de las caracteristicas mas potentes de la IDE de Arduino, la ventana de depuracion. Extraeremos
el valor obtenido a través de una conexién serie para visualizario en la pantalla. |VAMOS APOR ELLO! Solo una
cosa mas. Este circuito hace uso del monitor serie de la IDE de Arduino. Para abriflo, primero tienes que arrancar
el programa y pulsar el botén que parece una antena, =I)
Puedes encontrar la hoja de especificaciones del TMP36 en hitp://reflexiona.biz/tmp36
EL CIRCUITO
Componentes
1
ara tableo de ercultos
Claua de 2 pines
Sensordetempertura 52s taaan
uae
_Esquema
Elchip tone
‘TMP36 improco
‘nia supertice
Descarga una sale
peor e10
Eenaun esa0|Sensor de temperatura CIRC - 10
ELCODIGO
No es necesario que escribas todo el texto. Descarga el cédigo desde http:irftexiona biz/codigo_circ10
Copia el texto y pégalo en un sketch vacio de Arduino.
NO FUNCIONA (3 cosas que puedes probar)
_Parece que no pasa nada
Este programa no dispone de un indicador que te diga que esta funcionando. Para ver los resultados tienes que monitorizarlo
desde la IDE de Arduino (instrucciones en el apartado LO QUE ESTAMOS HACIENDO).
Lo que se ve en el monitor serie no tiene sentido
Esto sucede por que la monitorizacién en serie recibe los datos a una velocidad diferente de lo esperado. Para solucionar esto
pulsa el cuadro desplegable donde pone “XXXX baudio" y cémblalo a “9600 baudio"
El valor de temperatura no camt
Intenta generar calor apretando el sensor con tus dedos, o colocando una bolsa de hielo encima para entrar.
MEJORANDO EL CIRCUITO
_Enviando voltaje
Esto es sencillamente cuestién de cambiar una linea, Nuestro sensor emite 10m (milivotios) por grado centigrade, asi que
para conseguir una tensién sencilamente mostramos el resultado de getVoltage() «
Bora lalinea temperature = (temperature - .5) *100;
_Enviando grados Farenheit
Una vez mas con hacer un simple cambio que requiere algo de matematicas,
Para cambiar de °C a°F utiizamos la formula: (F = c#1.8) + 32)
Afiade lalinea temperature = (((temperature - .5) *100)*1.8) + 32;
antes de Serial.printin (temperature);
_Una salida con més informacién
‘Afiadamos un mensaje a la salida serie para hacer que lo que aparece en el moritor serie sea mas informativo, Para hacer
esto tienes que volver al cédigo original. Después, haz el siguiente cambio:
Serial.printin(temperature) ; Serial.print (temperature);
Serial.printin(" grados centigrados");
Ese cambio en la primera linea significa que cuando recibamos la siguiente salida aparecera en la misma linea, entonces
afiadimos el texto informativo y una nueva linea
_Cambiar la velocidad de los datos serie
Si alguna vez quieres recibir muchos datos a través del puerto serie, la esencia es la linea de tiempo. Estamos transmitiendo a
'9600 baudios pero es posible ulizar velocidades de transmision mucho mayores. Para cambiar esto tienes hacer el siguiente
cambio:
serial begin(9600) > serial-begin(115200) ;
Carga el programa y encionde el monitor seria, después cambia la velocidad de 9600 baudios a 115200 baudios en el mend
desplegable. Ahora esta transmitiendo los datos 12 veces mas rapido.(ol toa
LO QUE ESTAMOS HACIENDO
El proximo circuito que vamos a hacer es una especie de test. Vamos a combinar
los conocimientos adquiridos sobre transistores en el CIRC-03 para controlar un
6. Un relé es un interruptor mecanico controlado eléctricamente. Dentro de
esa pequefia caja negra hay un electroiman que al recibir energia, abre o cierra
otros circuitos eléctricos independientes (a menudo con un sonido caracteristico que
rel
produce mucha satisfaccién). Puedes encontrar relés de distintos tamafios, tan peque-
fios como la cuarta parte del que incluye este kit o tan grandes como un frigorifico, cada
uno capaz de admitir una cantidad determinada de tensién de control. Es muy divertido trabajar con ellos por que
incorporan cierto elemento fisico. Mientras que toda la silicona con la que hemos jugado hasta el momento es
divertida eventualmente, puede que lo que realmente desees sea cablear cientos de interruptores para controlar
tna instalaci6n espectacular. Los relés te permiten sofiar con lograr esto, ademas de permitirte controlar todo con
tu Arduino, Utilizando tecnologia del presente controlamos la tecnologia del pasado. En este circuito, el diodo
1N4001 acta como diodo de retomo. Mas detalles sobre porque est ahi en http:/en.wikipedia.org/wiki/Flyback_diode.
EL CIRCUITO
Componentes
‘x ax 1x
D> Prontitacine-1 ax 2) dodo nas 13x
DES cnce + Siewenzpene Peon Sn ab con amines
1 tx 1 A aK
“naisor Resistencla do 300 Ohmios Reslstencla do 10k Ohmios
_Esquema
Internet
Descarga una pana
ara el CIRCé11 on
apuhetenara palace
alvdoo densa on
E_ transistor llevar
{el cédigo P2N2222AG.Cells Toe h|
EL CODIGO
No es necesario que escrbas todo el texto, solo tienes que pulsar en: Archivo > Ejemplos > 1.Basic > Blink
{ejemplo extraido de la pagina hitp:/Arduino.ce. Echale un vistazo para ver otras grandes ideas).
NO FUNCIONA (3 cosas que puedes probar)
No pasa nada
E1 cédigo del ejemplo utliza el pin 13 y tenemos el relé conectado al pin 2. Asegirate de haber echo este cambio en el cédigo.
No hace “llck”
El transistor o la bobina del ciculto no trabaja lo suticiente. Comprueba que el transistor esta conectado de forma correcta.
_Sigue sin funcionar
El relé que incluye este kt esta pensado para ser soldado més que para ser utlizado con un tablero de circuitos. Es por este
motivo que tienes que presionarlo bien para asegurarte de que funcione (puede que incluso se suelte en alguna ocasién)
MEJORANDO EL CIRCUITO
_Viendo e! Pulso Electromagnético (EMP)
‘Sustituye el diodo por un LED. Podras observar como parpadea cada vez que “rechaza’ la tensién de la bobina cuando esta se
apaga,
_Controlando un motor
En el CIR-08 controlébamos un motor utlizando un transistor. Si quisioras controlar un motor mayor, la mejor opcién es utlizar
Un relé. Para poder hacer esto bastaria con retiar el LED rojo y conectar el motor en su lugar (acuérdate de derivar la resisten-
cia de 330 ohmios)
_Controlando la direccién de un motor
‘Una mejora algo mas complicada para terminar. Para controlar la direccién de rotacién de un motor eléctrico debernos ser
‘capaces de cambiar de sentido el paso de la corriente por el mismo. Para hacer esto de forma manual usamos los cables. Para
hacerlo de forma eléctrica necesitamos una cosa llamada Puente-h. Eslo puede lograrse, usando un relé DPOT para controlar
la direcci6n de rotacion del motor. Cablea el circuto. Ast de sopetén, puede parecer complicado, pero es posible realizar esta
prueba usando tan solo un par de cables extra, |INTENTALO!CIRC - 12
:: LO QUE ESTAMOS HACIENDO
Cuando empezaste con el CIRC-01, seguro que te alegraste un montén al hacer
que un LED rojo parpadease, pero...2A qué ya has superado esa fase? jAhora
los que quieres es desarrollar proyectos con todo tipo de colores: naranja, rosa,
turquesa, morado y mucho mas! =)
Afortunadamente, existe una sencilla formula para conseguir todos esos colores a partir
de un Gnico LED, es decir, sin necesidad de disponer de un LED de cada color para
realizar la mezcla, y se trata de un LED RGB. Un LED RGB es en realidad 3 LEDs dentro de una pequefa envol-
vente: uno LED rojo, un LED verde y un LED azul (Red-Green-Blue). Cuando enciendes a la vez dos 0 mas
colores, estos se mezclan para conseguir el resto de colores del espectro. El color que obtienes es la mezcla de
las intensidades de los LEDs individuales de color rojo, verde y azul.
La intensidad de cada uno de ellos se controla mediante modulacién de ancho de pulso (PWM), técnica que ya
habiamos utilizado para controlar el brilo de un LED y la velocidad de un motor.
: EL CIRCUITO
Componentes
1x
Clavjade2pines YY LED AGE desmm
aa tablro de cireuttos
_Esquema
Internet
ara el CIRG-12 en
apanatlena bnpiantm cet?
alvidoo de encambais 20LED RGB
EL CODIGO
No es necesario que escribas todo el texto. Descarga el cbdigo desde hitpireflexiona.bizicodigo_circt2
Copia el texto y pégalo en un sketch vacio de Arduino.
NO FUNCIONA (3 cosas que puedes probar)
_EILED no se enciende o muestra un color incorrecto
Como los cuatro pines del LED estan muy pegados los unos a los otros, es bastante comin conectar uno de ellos mal
Comprueba que cada uno de los pines esta conectado donde debe de estarto.
_Se ve todo rojo
Es muy probable que el diodo rojo del LED RGB sea mucho mas brillante que los otros dos. Para conseguir que los colores.
‘estén mas balanceados, conviene que utllices una resistencia mayor. También puedes ajustar esto mediante cédigo:
analogirite(RED_LED_PIN, redintensity);
analogWrite(RED_LED PIN, redintensity/3);
_Buscas algo mas
{Esto os un poco de propaganda) Si quieres ir un paso mas alla con el tema de los LEDs RGB deberias echar un vistazo a
todos los dispositvos disponibles en www.etlexiona.biz/shop
MEJORANDO EL CIRCUITO
_Utlizar eédigos de color HTML
Si estas habituado a trabajar con paginas web es posible que pretieras especificar los colores de forma hexadecimal, igual que
haces cuando estas usando HTML y CSS. El modo hexadecimal espectica un color utlizando una serie de letras y de nimeros
‘como "#FF0000" para el rojo 6 “#800080" para el morado. Puedes aprender mas sobre el funcionamiento de este tema en la
Wikipedia (http:/ies.wikipedia.org/wiki/Colores_ HTML). También encontraras una lista de nimeros hexadecimales para no tener
que hacerlo tu mismo.
Descargate el cédigo desde hitp:retlexiona bizicodigo_circ12>
—Usar un difusor
Una de las desventajas de usar un LED RGB (echo a partir de tres LEDs individuales) a la hora de generar colores es que. a
veces, es posible distinguir claramente los colores de cada una de las distintas fuentes de luz, Un método para solucionar esto
{es buscar la forma de hacer que la luz sea més ditusa, de forma que la mezcla de color sea mejor.
Para mejorar la efectividad de la mezcla de color, el LED suministrado con este kit dispone de una envolvente difusa (en vez de
transparente). Site parece que la luz sigue sin ser lo suficientemente difusa, puedes probar a colocar el LED detras de un trozo
de papel 0 de acrilico, 0 incluso dentro de una bola de ping pong o de poliestireno.CIRC - 13
LO QUE ESTAMOS HACIENDO
Dicen que en la vida es importante ser flexible pero... ,Cémo te las apafias
cuando quieres medir a flexibilidad de un objeto? jPues utiizas un sensor
flexible!
Un sensor flexible utiliza una tira de carbén (o de plastico) para actuar como un
potenciémetro o resistencia variable (acuerdaté del CIRC-08) pero en vez de cambiar la
resistencia girando un dispositivo rotatorio, lo cambias flexionando (doblando) el compo-
nente. Usamos de nuevo un divisor de tensién (acuerdate de los CIRC-08 y CIR-09) para detectar un cambio en la
resistencia. El sensor se dobla en una direccién, y contra mas se dobla, la resistencia es mayor. Dispone de un
intervalo que va de los 10k Ohmios a los 35k Ohmios. En este circuito vamos a utilizar la curva de flexi6n del
sensor flexible para controlar la posicién de un servo.
EL CIRCUITO
Componentes
Pi ax a Za ra ox
Pantie cne-12
Pant CIRC TS utos # Chwlade2 pres $f Gavia ce pines Senaor exe tol con termina
-
”
Internet
Descarga un planta
ara el CIRC-13 on
apnaossna npn ce!9
al vidoo encase onSensor flexible CIRC - 13
EL CODIGO
No es necesario que escribas todo el texto. Descarga el cédigo desde http:/rflexiona biz/codigo_circt3
Copia el texto y pégalo en un sketch vacio de Arduino.
NO FUNCIONA (3 cosas que puedes probar)
_Fl servo no da vueltas
incluso con los cables de colores sigue siendo extraordinariamente facil conectar un servomotor del revés. Este podria ser tu caso.
_EI servo no se mueve como esperabas
El sensor ha sido disefiado para trabajar en una Gnica direcci6n. Prueba a doblarlo en sentido contrario (de forma que la cara
con la superficie rallada quede en el lado convexo)
EI servo se mueve solo una vez
Es posible que tengas que modificar el intervalo de valores en la llamada a la funci6n map () (puedes encontrar mas detalles
cen la seccion MEJORANDO EL CIRCUITO)
MEJORANDO EL CIRCUITO
_Calibrando el interval
‘A pesar de que el servomotor se esta moviendo, es muy probable que el intervalo no sea demasiado perfecto. Para ajustar este
intervalo tenemos que cambiar los valores en la funcién map)
map(value, frontow, fromigh, toLow, tofigh)
Para ver todos los detalles sobre como funciona vista hitp:/ivww.arduino.ccfes/Reference/Map
Para calibrar nuestro sensor podemos ullizar la ventana de depuracién (como en el CIRC-11). Abre la ventana del monitor
serie y sustituye el valor fromtow (por defecto a 50) con el valor que sale cuando el sensor esta sin doblar, Después sustituye
el valor fromligh (por defecto a 300) con el valor que obtienes al doblar el sensor por completo
Aplicaciones
Con los sensores flexibles la verdadera diversion llega cuando los utlizas de forma ingeniosa e inesperada. A continuacién, os
presentamos algunas de nuestras aplicaciones favoritas:
Guante para jugar un solitario de piedra papel o tjera:hitp:/ardx.org/RPS
Abrazadera electronica para plantas: http/ardx.org/BRACEfel Toa
LO QUE ESTAMOS HACIENDO
Un potenciémetro de membrana funciona como un potenciémetro convencional
el que hemos visto en el CIRC-08) pero con la diferencia de que es plano, muy
fino, flexible y no dispone de mando rotatorio. Como ya hemos comentado
anteriormente, al potenciémetro también se le conoce como resistencia variable. El
caso de un potenciémetro de membrana la resistencia viene determinada por el lugar
sobre el que se aplica una presién, Esta presién puede aplicarse con un dedo, un
boligrafo o un trozo de plastico, Pulsando en diferentes zonas de la membrana la resisten-
cia varia de 100 a 10k Ohmios, permitiéndote calcular la posicién relativa del punto de presién sobre la membrana.
Puedes utilizar esta caracteristica para seguir el movimiento de algun dispositivo sobre la membrana o como
pulsaciones en un botén disoreto,
En este circuito, usaremos el potenciémetro de membrana para controlar el cambio de color de un LED RGB.
EL CIRCUITO
Componentes
ax
a
QP Pana cvs oo
para ablero de crettos
_Esquema
mt
Internet
Descarga un planta
pate el CIRC on
punetenonabapianthe cers
cha un visazo|Potenciémetro de membrana toll toe
EL CODIGO
No es necesario que escribas todo el texto. Descarga el cédigo desde hitp:ireflexiona bizicodiga_ciret4
Copia el texto y pégalo en un sketch vacio de Arduino.
NO FUNCIONA (3 cosas que puedes probar)
_FILED no se enclende o muestra un color incorrecto
Gomo los cuatro pines del LED estan muy pegados los unos a los otros, es bastante comUn conectar uno de ellos mal
‘Comprueba que cada uno de los pines esta conectado donde debe de estaro,
_Se ve todo rojo
Es muy probable que el diodo rojo del LED RGB sea mucho mas brillante que los otros dos. Para conseguir que los colores
‘estén mas balanceados, conviene que utlices una resistencia mayor. También puedes alustar esto mediante cédigo:
analogWrite(RED_LED_PIN, redIntensity); => analogWrite(RED_LED_PIN, redIntensity/3);
Resultados bizarros
la causa mas probable de que suceda esto, es que estés presionando el potenciémetro en mas de un punto a la vez. Que
suceda esto es bastante normal, y la verdad es que puede usarse para crear algunos resultados estupendos.
MEJORANDO EL CIRCUITO
Modelo de color HSB (Tonalidad, Saturacién, Brillo)
Nuestro LED RGB muestra un color utiizando cddigos de color RGB. Sin embargo, esta no es siempre la forma mas facil de
trabajar con colores. Un modelo de color mucho mas intultivo es el HSB, Si quieres obtener mas detalles sobre este modelo de
color vista hitp:/es.wikipedia.orgiwikl/Modelo_de_color_ HSV
Para convert de RGB a HSB todo lo que hace falta es un poco de matemticas “igeramente complicadas”. Para ver un
programa de ejemplo visita itp:/rtlexiona bizicodigo_cire1 4b
Esto es un programa basado en el cédligo original de www kasperkamperman.com
‘Anora, cuando utilices el potenciémetro de membrana, notaras que la transicién del rojo al violeta es mucho mas clara y
‘completa,
Botones de imitacién
Tal y como funciona el potenciémetra de membrana, este puede ser usado para hacer botones personalizados. Para hacer
esto tienes que definir un intervalo de valores que se correspondan con un botén discreto
Uiliza el 1r0z0 de cédigo de abajo y la ventana del monitor serie para determinar los valores deseados:
I£(analogueRead(0) > minValue && analogRead(0) < maxValue){
buttonAction()
>
‘Ahora puedes cubrir el potenciémetro de membrana con el disefio de un bot6n dibujado o impreso.NOTAS
40OL)
err rt ee ttn rn et ater
Ce eee eer ay
ee ee ey