0 calificaciones0% encontró este documento útil (0 votos) 1K vistas145 páginasManual Arduino Robotica y Domotica
Manual arduino robotica y domotica
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido,
reclámalo aquí.
Formatos disponibles
Descarga como PDF o lee en línea desde Scribd
a
EEN Att Eee hed is
PROPOSITO DEL MANUAL,
El presente manual disefiado tiene como propésito apoyar como guia hacia el
participante, mostrando de manera tedrico practico los contenidos pertinentes a la
tematica Arduino desde cero con el IDE Arduino, se espera que el manual cumpla
con su finalidad ajustandose a las necesidades del participante acompafiado de la
guia del docente.
OBJETIVO DEL TALLER.
Analizar, disefiar y desarrollar prototipos que resuelvan necesidades de uso diario
a través de la herramienta Arduino, optimizando recursos a fin de obtener el mejor
producto posible.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeGeneralidades
Arduino es una plataforma de hardware libre, basada en una placa con un
microcontrolador y un entorno de desarrollo, disefiada para facilitar el uso de la
electronica en proyectos multidisciplinares.
El hardware consiste en una placa con un microcontrolador Atmel AVR y puertos de
entrada/salida. Los microcontroladores mas usados son el Atmega 168,
Atmega328, Atmega1280, Atmega8 por su sencillez y bajo coste que permiten el
desarrollo de multiples disefios.
Por otro lado el software consiste en un entorno de desarrollo que implementa el
lenguaje de programacién ProcessingMWiring y el cargador de arranque que es
ejecutado en la placa.
Historia
Arduino se inicié en el afio 2005 como un proyecto para estudiantes en el Instituto
IVREA, en Ivrea (Italia). En ese tiempo, los estudiantes usaban el microcontrolador
BASIC Stamp, cuyo coste era de 100 délares estadounidenses, lo que se
consideraba demasiado costoso para ellos. Por aquella época, uno de los
fundadores de Arduino, Massimo Banzi, daba clases en Ivrea.
El nombre del proyecto viene del nombre del Bar di Re Arduino (Bar del Rey
Arduino) donde Massimo Banzi pasaba algunas horas. En su creacién, contribuy6
el estudiante colombiano Hernando Barragan, quien desarrollé la tarjeta electronica
Wiring, el lenguaje de programaciin y la plataforma de desarrollo.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeAplicaciones
El médulo Arduino ha sido usado como base en diversas aplicaciones electronicas.
* Xoscillo: Osciloscopio de cédigo abierto.
* Equipo cientifico para investigaciones.
* Aduinome: Un dispositive controlador MIDI.
* OBDuino: un econémetro que usa una interfaz de diagnéstico a bordo que se
halla en los automéviles modernos.
+ Humane Reader: dispositivo electronico de bajo coste con salida de sefial de TV
que puede manejar una biblioteca de 5000 titulos en una tarjeta microSD.
* The Humane PC: equipo que usa un médulo Arduino para emular un computador
personal, con un monitor de televisién y un teclado para computadora.
* Ardupilot: software y hardware de aeronaves no tripuladas.
* ArduinoPhone: un teléfono mévil construido sobre un médulo Arduino.
Lenguajede programacién Arduino
La plataforma Arduino se programa mediante el uso de un lenguaje propio basado
en el lenguaje de programacién de alto nivel Processing. Sin embargo, es posible
utilizar otros lenguajes de programacién y aplicaciones populares en Arduino,
debido a que Arduino usa la transmisién serial de datos soportada por la mayoria
de los lenguajes mencionados. Para los que no soportan el formato serie de forma
nativa, es posible utilizar software intermediario que traduzca los mensajes enviados
por ambas partes para permitir una comunicacién fluida. Algunos ejemplos son:
* 3DVIA Virtools: aplicaciones interactivas y de tiempo real.
* Adobe Director.
+ BlitzMax (con acceso restringido)
“Cc
* C++ (mediante libSerial 0 en Windows).
° C#
* Cocoa/ Objective-C (para Mac OS X).
* Flash (mediante ActionScript)
* Gambas.
* Isadora (Interactividad audiovisual en tiempo real).
+ Instant Reality (X3D).
+ Java
* Software de medicién y experimentacién.
* Mathematica.
* Matlab.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizaje* MaxMSP: Entorno grafico de programacién para aplicaciones musicales, de
audio y multimedia
* Miniblog: Entoo grafico de programacién, corre también en las computadoras
OLPC.
* Perl
* Php.
* Physical Etoys: Entorno grafico de programacién usado para proyectos de
robética educativa
* Processing,
* Pure Data.
* Python.
* Ruby.
* Scratch for Arduino (S4A). Entorno grafico de programacién, modificacién del
entomo para nifios Scratch, de! MIT).
‘Squeak: Implementacién libre de Smalltalk.
SuperCollider: Sintesis de audio en tiempo real
VBScript.
Visual Basic NET.
VWVV: Sintesis de video en tiempo real.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeComponentes del kit
Durante este primer curso, iremos utilizando diversos componentes para el armado
de nuestros proyectos. En este documento describiremos las principales
caracteristicas de dichos componentes, lo cual nos permitira un correcto uso de los
mismos.
Placa de Arduino UNO
1. Conector USB para el cable Tipo AB.
2. Pulsador de Reset.
3. Pines de E/S digitales y PWM.
4. LED verde de placa encendida.
5. LED naranja conectado al pin 13.
6. ATmega 16U2 encargado de la comunicacién con el PC.
7. LED TX (Transmisor) y RX (Receptor) de la comunicacién serial.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizaje8. Puerto ICSP para programacién serial.
9. Microcontrolador ATmega 328.
10. Cristal de cuarzo de 16 Mhz,
11. Regulador de voltaje.
412. Conector hembra 2.1mm con centro positivo.
13. Pines de voltaje y tierra
14, Entradas andlogas.
La placa Arduino UNO sera la encargada de procesar las entradas y salidas que
vayamos conectando en nuestros proyectos. Si bien el que se encarga del
procesamiento especificamente es el microcontrolador que esta integrado (9),
podriamos decir que el Arduino seria el cerebro de nuestros proyectos,
Arduino UNO.- El protoboard (la placa de pruebas) de desarrollo de
microcontroladores que estar en el corazon de tus proyectos. Es un ordenador
sencillo, pero con el todavia no tienes forma de interactuar. Vas a construir los
circuitos y las interfaces para la interaccién, y le diras al microcontrolador como
interactuar con otros componentes.
Protoboard
Es una placa reutilizable usada para construir prototipos de circuitos eléctricos sin
soldadura. Este dispositivo es muy importante ya que nos permite probar nuestros
disefios sin que sea necesario soldar y desoldar componentes. Las protoboard 0
breadboard estan compuestas por bloques de plastico perforados y numerosas
laminas delgadas de una aleacién de cobre, estafio y fésforo. Internamente, una
protoboard tiene conexiones preestablecidas que nos ayudaran a la hora de
‘conectar unos componentes con otros. El esquema de conexiones internas de una
protoboard es el siguiente:
LMM
URUUUUUUEUEUUUUUUEUEAEAUUUAAE A
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeProtoboard. Una placa sobre la que puedes construir circuitos electrénicos. Es como
un panel de parches, con filas de agujeros que te permiten conectar cables y
‘componentes.
Los del lado son columnas y filas los del centro, hay 5 grupos, en medio hay una
separacién.
LED y Resistencia
El diodo LED, Light-Emitting Diode, es un tipo especial de diodo semiconductor, que
tiene la capacidad de emitir luz al disponerse en polarizacién directa, Se usan como
indicadores en muchos dispositivos y cada vez con mucha més frecuencia en
iluminacién. Los LEDs presentan muchas ventajas sobre las fuentes de luz
incandescente como un consumo de energia mucho menor, mayor tiempo de vida,
menor tamafio, gran durabilidad y fiabilidad. El LED tiene una polaridad, un orden
de conexién, y al conectarlo al revés se puede quemar.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeLa resistencia por otro lado es un componente eléctrico pasivo de dos terminales
que introduce una resistencia eléctrica en el lugar del circuito donde se coloque.
Esta formada por carbén y otros elementos que en cierto modo “absorben” la
cortiente que circula por ellas. Entonces podriamos decir basicamente el concepto
general es “absorber”.
Centro Educativo
Innovacién, libertad y devocién por el aprendizaje‘Como se puede ver en la imagen, las resistencias tienen bandas de colores a lo
largo de las mismas y es a partir de esas que se puede obtener el valor de
resistencia. El valor de la resistencia eléctrica se obtiene leyendo las cifras como un
numero de una, dos o tres cifras; se multiplica por el multiplicador y se obtiene el
resultado en Ohmios (22).
Usamos de diferentes tipos de resistencias, el trabajo de las resistencias. Esto es
una montafa, la altura de la montafia lo consideramos como el voltaje, la corriente
Centro Educative Guaymax
libertad y devocién por el aprendizajeson las piedras que caen y las resistencias son unos bloques para que las piezas.
no caigan todas.
Qué es una resistencia?
Es un elemento electronico que limita el paso de corriente en un circuito.
Fisicamente estan hechos de carbono o metal. Estén en radios, televisores,
amplificadores, etc.
La unidad de medicién de la resistencia es el ohm (0).
Representacién grafica.
Centro Educative Guaymax
libertad y devocién por el aprendizaje4Cémo se leen los colores?
Se leen de izquierda a derecha, la primera y segunda cifra representan la primera
cifra del valor de la resistencia comprendida entre 0 y 9
re CULL ee ee)
PoE Par LE Lae St Retr T lle
Diferentes colores que puede tener una resistencia.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeCircuitos Basicos
Ejempl
El primer color vale 1(uno)
El segundo color vale O(cero)
El tercer color vale 100(cien)
Por lo que 10 * 100 = 1000 © (Ohms) = 1 kQ
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizaje] n
10 X100 = 1000 er
Negro
ea st sara ee pea es] Se
(a ae a |
Tabla de equivalencias.
1000 9 = 1 KO
10,000 9 = 10 KO
100,000 9 = 100 KO
1,000,000 9 = 1000 KN = 1 MO
Continuando con el primer ejemplo:
El color dorado tiene una tolerancia del 5%. Entonces es 1 kOhm con 5% de
tolerancia.
Ejemplo 2:
Valor rojo = 2.
Valor violeta = 7.
entro Educative Guaymax
Innovaci jan tbertad y devocién por el aprendizajeValor café = 10.
El Ultimo color es el dorado que equivale a 5%.
El resultado seria:
El resultado es 270 Q con 5% de tolerancia
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeCentro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeCentro Educativo
Guaymax
Innovacién, libertad y devocién por el aprendizajePulsador y Potenciémetro.
Un botén o pulsador es utilizado para activar alguna funcién. Los botones son por
lo general activados al ser pulsados, normalmente con un dedo. Un botén de un
dispositivo electrénico funciona por lo general como un interruptor eléctrico, es decir
en su interior tiene dos contactos, si es un dispositivo NA (normalmente abierto) 0
NC (normaimente cerrado), con lo que al pulsarlo se activara la funcién inversa de
la que en ese momento este realizado.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeUn potenciémetro es una resistencia variable en la cual podemos elegir el valor que
puede tomar. De esta forma, controlamos la intensidad de corriente que fluye por
Un circuito si éste esta conectado en paralelo, asi como la diferencia de potencial si
esté conectado en serie. El potenciémetro es un componente analogico el cual y
que me da valores de entrada entre 0 y 1023.
Simbologia.
Centro Educative Guaymax
libertad y devocién por el aprendizajeLavadoras 0 lamparas como esta integrado el circuito.
1.- Dos cables en forma de cruz,
2.- los dos cables pasan juntos y no se tocan, no interaccién.
3.- Dibujo de un botén.
4.- motor.
5. led. Es de salida. Energia en luz.
6.- Resistencia.
7.- Pila
8. Conexion a tierra. Gnd.
Ejemplo
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeSefial Analégica o Digital.
a: . H
Entradas digitales: Lo que hicimos con nuestro bot6n, o esta prendido o esta
apagado, no hay intermedio, en cddigo binario es un uno, 0 cero.
Entradas analégicas: Si hay intermedio, cuando utilizamos sensores, por ejemplo
tun sensor de temperatura, sensor de inclinacion. Puede variar.
Estructura basica de un programa
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeLa estructura IF.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeEstructura FOR.
Centro Educative Guaymax
libertad y devocién por el aprendizajeEstructura DO-WHILE.
Estructura SWITCH-CASE
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeQué es programar?
Es el arte de ensefiarle a una computadora que es Jo que tiene que hacer.
Ensefarle a realizar estas operaciones, debemos dar instrucciones especificas,
para que las ejecute secuencialmente, es a partir de esas instrucciones que las
computadoras son capaces de mostrarnos un video, una pagina web, 0 el personaje
favorito en un videojuego. Entonces, {qué es programar? Darle instrucciones
especificas a la computadora para que las ejecute secuencialmente
Aligual que usamos un lenguaje para comunicarnos entre unos a otros igual es para
comunicamos con una computadora, debemos aprender un lenguaje especifico
Una semejanza de comunicacién con las computadoras, la computadora tiene un
montén de lenguajes, cada uno para determinadas tareas. Para construir
aplicaciones web, construir videojuegos, aplicaciones para robotica.
La programacién en la vida cotidiana.
Como microondas.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeMicrocontrolador que regula las temperaturas y el tiempo de coccién
Aplicacién de mensajeria en el celular, cuando pagamos a través de una tarjeta el
colectivo 0 subterrdneo. Moldeen y mejoren la calidad de vida.
Descripcién del hardware y software de Arduino.
Comunidad oficial de Arduino.
https://forum.arduino.ccl
Que es Arduino.
Es una plataforma construida sobre hardware y software libre muy faciles de usar.
Por un lado cuenta con una placa.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeEste es un circuito integrado, en el cual uno puede grabar instrucciones en un
lenguaje de programacién en especifico, para que sean ejecutadas. Estas
instrucciones 0 cédigos se escriben, utilizando el software Arduino.
Lenguaje conocido como Processing, basado en la plataforma JAVA.
Otro aspecto de Arduino es su comunidad, tiene una gran cantidad de usuarios, que
constituyen su corazén, desde su foro oficial hasta su wiki, proyectos compartidos y
mejorados continuamente.
‘Que puedo hacer con la placa Arduino.
ePara qué podemos usar Arduino?
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeUna analogia con su hermano mayor, que es la computadora, una computadora
tiene un procesador central al cual podemos dar distintos dispositivos de entrada
‘como un mouse, teclado, etc.
El procesador utiliza esa informacion, para generar acciones de salida, escribir
informacion en un monitor, reproducir musica en un parlante. Esas entradas pueden
ser, perillas, botones, incluso un micréfono. Estas entradas o sensores se procesan
en el cerebro de nuestro arduino y nos permiten generar salidas como mostrar
informacion en una pantalla LCD, o accionar un bot6n eléctrico. Hacer proyectos
con domatica 0 robética.
Qué es Arduino?
Una plataforma de Hardware y Software libre
Preguntas.
1 £Qué significa que Arduino es una plataforma Open Source? {Una plataforma Open Source es lo
mismo que gratuita?
2 éPor qué creen que es importante generar una cultura DIY (Do It Yourself) en las escuelas?
3. €Por qué algunos especialistas afirman que la programacién es el inglés del futuro?
Antes de empezar: IDE de Arduino.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeConocer las distintas secciones de este entorno de desarrollo integrado. Crear y
editar sketches 0 bocetos, que son los archivos que contienen estas instrucciones
especificas para Arduino, escritas en lenguaje Processing
1.- Instalar el programa de arduino.
2. Ir a la pagina oficial de arduino.
3.- Sector de descargas.
4. Reconocer los principales botones del entorno.
5.- Iremos conociendo todas las secciones del menu: Botén abrir, ver nuevos
bocetos, checkear que mi cédigo compile, o crear uno nuevo.
Pasos previos.
1.- Ingresamos a la pagina oficial de Arduino, cual es la siguiente liga:
https://www.arduino.ce/
Como se muestra en la siguiente imagen.
2.- Enel menu superior seleccionamos la opcién Download, hacemos clic izquierdo
sobre el boton.
3.- Nos abriré una ventana como la que se muestra a continuacién. En la parte de
la derecha nos muestra un recuadro azul donde tendremos varias opciones de
descargas ya sea para Windows, Mc OS X y Linux. En nuestro caso
seleccionamos la opcién haciendo clic izquierdo sobre Windows Installer. Elegir la
version que se ajuste a nuestras necesidades.
Hay dos caminos para instalar Arduino:
Instalador: Seguir el asistente.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeLa carpeta: Ejecutar la aplicacion.
Download the Arduino Software
4. Aparecerd una nueva ventana como la siguiente, donde nuevamente se nos
pedira si queremos realizar la descarga 0 contribuir con una donacion y al mismo
tiempo descargar el software. En nuestro caso descargamos haciendo clic izquierdo
sobre Just Download y listo.
Support the Arduino Software
Instalando Drivers.
1.- Una vez terminada la descarga de nuestro programa nos dirigimos a la direccion
de la carpeta de la aplicacién Arduino como se muestra en la siguiente imagen:
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeai... 82)x =| bass acoso
90°? eerie
En el caso personal la aplicacion se instalé en la ubicacién
ademas se cred una carpeta para tener un orden.
rogram Files (x86),
2. Como se aprecia en la siguiente imagen dentro de la carpeta Arduino-1.6.9 se
encuentra la aplicacién ejecutable arduino. Para ejecutarlo hacemos doble clic
izquierdo o simplemente un clic izquierdo y presionamos la tecla Enter.
© o + 1 Wr em » Deco) » keer de
Se fonine
—
re
po rnathog
Base
veer
Boome)
ne Smee
3.- También podemos acceder al programa desde el escritorio siempre y cuando lo
hayamos especificado dentro de la aplicacién. Como se muestra en la siguiente
imagen:
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizaje[o.o}
12)
Aelia
4. Habré ocasiones, no siempre donde nuestro programa no responda de forma
correcta por lo que habré que instalar de nuevo los drivers, veamos los siguientes
pasos:
1.- Una vez instalado ir:
Administrador de dispositivos o Device Manager.
Para este paso ya debemos tener lo siguiente: Modelo Arduino R3 y el cable usb
AB.
Importante: COM: Puerto de comunicacién serial de la computadora, es decirle a
la computadora en que canal esta conectado el arduino para que al momento de
subir los programas le llegue la informacién a arduino.
a) — Buscamos el Panel de Control.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeb) Una vez abierto abrimos el Administrador de dispositivos, hacemos clic
izquierdo.
Rann —— sevmynapcin DR Capen trp
Ocemarvenauns Peewneewnn comeamonneainon — B conesnanynamncngn
we
Siewert
¢c) Nos abrira una ventana como la siguiente, nos enfocaremos en Puertos (COM y
LPT). En caso de que el puerto esté con un mensaje de advertencia serd necesario
por recomendacién instalar los drivers, que podemos encontrar en la carpeta de
instalacion de Arduino.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeWy Aaptadores de pane
» Adaptadores cere
9 betes
| Colas deimpresion
(Gu Controlodras ATAVATAPI IDE
‘} Contrlacoras de stmacenamiento
Contcladoras de bus serie uriversal
% Contrladoras de sonido y vide y dispositive de juego
5 Dispostivos deinterax de vsumio (40)
11 Dispostvos de software
1M Dispostivos del stems
Entradas slides de ausio
8 Equipo
BE Monitores
1A, Neuse y atiosdispstivos seiaadores
DD Procesedores
Penne My)
"F Arduino Uno (COMS)
IB Sensors
Tecate
ea Unidas de disco
‘Dundes de OVO o Co-ROM
d) Hacemos clic derecho sobre el puerto Arduino Uno (COM3) y hacemos clic
izquierdo sobre Actualizar software de controlador.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizaje@) Nos abrira una ventana como la siguiente, por lo general cuando hacemos clic
izquierdo sobre la primera opcion Buscar automaticamente software de
controlador actualizado nos avisa que todo esta correctamente, por lo que es
mejor seleccionar con clic izquierdo la opcién Buscar software de controlador en
ol equipo.
Como desea buscar el software de controlador?
‘> Buscar autométicamente software de controlador actualizado
Windows buscar en equip yen ntemet el sofware de contcladr més
reciente para el dspostivo, s menos que hay deshabta eta caactersica en
Ia cenfiguacin de mstaacin de! depose
> Buscar software de controlador en el equipo
Buscar einstalarel software decontrlador de form manus,
f) Especificamos la ruta de nuestro arduino en el equipo, podemos ubicar la carpeta
general o especificar en la carpeta drivers. Damos clic izquierdo en siguiente.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeBusque software de controlador en el equipo
aca stave ecole tubo
‘Agregamos la ruta de la carpeta
de instalacién de arduino, de ser
‘> #legiren una lista de controladores de dispositive en el equiponecesario a nivel de los drivers.
‘etnre ecole gue teen misma catego gue cope,
(ire) ear
9) Una vez realizado la busqueda e instalaci6n, nos mostraré la siguiente ventana.
Windows actualiz6 correctamente el software de controlador.
Windows fini a intalcin dl oftware de contador para ie depo:
Arduino Uno
h) De tal manera, que nos quedaré lo siguiente, una instalacién sin errores.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajea
a '} Puertos (COM y LPT)
'} Arduino Uno (COM3)
Interfaz de Arduino.
‘De zquierda a derecha: Editor de
_A.Verificar Compiler... cédigo/
area de
trabaio
2. Subit". 3° NUGV6,4. ABA,
‘5 Salvar.
Informacién de la placa
arduino y puerto.
Detalles:
Un proyecto en arduino se llama sketch.
1.- Verificaricompilar: Revisar que no haya errores. Verificar es igual a
Compilar. Verificar que no haya problemas.
2.- Subir:
‘orrer programa.
3. Nuevo: Nuevo proyecto.
4.- Abrir: Ya sea proyecto propio, librerias, ejemplos, etc.
5.- Salvar: Guardar.
Centro Educative Guaymax
Innovacién, libertad y devocién pi
aprendizajeConociendo la placa Arduino
Nuestras tarjetas de arduino traen un led color naranja ese led esta conectado al
pin 13 intemamente en el arduino lo que no quiere decir que no vamos a usar algun
‘componente extemo.
Tenemos 14 pines, del 0 al 13 son pines digitales.
En la parte de abajo tenemos del 0 al 5 con una A antes de cada numero. Esos son
los pines analégicos.
Diferencias.
Los digitales es decir hay voltaje o no hay voltaje. Son 1 y 0. Representados por
la palabras HIGHT 5 Volts- LOW 0 Volts.
Y en los analdgicos es decir que tanto voltaje hay. Rango de 0 a 1023. Para decir
que tanto voltaje hay.
Arduino es un lenguaje sensible a las mayuisculas.
Poner paréntesis después de cada comando, cada argumento separado por una
‘coma, y al final punto y coma para decir que alli termina la instruccién.
Importante: La velocidad en la que se lee las lineas de cédigo es bastante rapido.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeAprendiendo a programar nuestro Arduino y subir nuestro primer Sketch.
1.- Al ejecutar el programa nos aparecerd una ventana como la siguiente:
Con los siguientes bloques de cédigo:
cup code here,
2. En el primer bloque de cédigo setup se va a leer solo una vez en si el arduino
solo lo va a leer una vez.
3. En el segundo bloque de cédigo loop en espafol significa ciclo, se repite
indefinidamente hasta que se desconecte el arduino de la corriente o se le cargue
otro programa.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeEjercicio #1: Hola mundo del hardware (parpadear el led del Arduino).
1.- Hacer parpadear el led integrado en la placa arduino, encender un led (un tiempo
en especifico) en este caso de la placa de arduino.
Conectar el arduino a la computadora.
1.-Conectar el arduino a la PC.
2. Uti
run CASE, para tener aislacién estatica,
3.- Conectarlo al cable USB. Punta cuadrada ~ punta convencional.
4- El arduino esté vacio, no esté haciendo nada.
5.-Cargar un programa.
6.-Comprobar que nuestra placa esté conectada.
7.- Herramientas -> Placa/Puerto. Revisar seccién de puertos.
Los sketches 0 programas de Arduino se di
jenen 2.
‘Setup: Inicializar todos los componentes que voy a usar en el resto de nuestro
programa.
Antes: Decirle a nuestro arduino, IDE, software, en que puerto serial esté conectado
nuestro arduino, para eso es el Administrador de dispositivos, para ello iremos a
Herramientas (Tools)/Puerto (Port) y seleccionamos el puerto que ocupa nuestro
arduino. Como se muestra a continuacion:
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizaje2.- Al hacer el paso anterior nos muestra en la parte inferior derecha del programa
la informacién acerca de nuestro arduino y el puerto cual esta conectado que
esta listo para recibir las instrucciones que le mandemos.
Ejercicio resuelt
/* Ejercicio #1
*Encender led naranja que esta conectado al pin 13.
”
”
*Es decirle a arduino que tiene algo conectado en el pin 13,
”
void setup() {
1/ put your setup code here, to run once: Cédigo se lee solo una vez.
4#Comando pinMode: decirle al arduino si al pin que vamos a conectar es una
entrada 0 una salida.
W/Requiere 2 parémetros. El nimero del pin, que va ser: entrada o salida.
pinMode (13, OUTPUT);
by
void loop() {
1 put your main code here, to run repeatedly: cédigo se repite
indefinidamente.
WComando. Nos va a servir cuando queramos interactuar o escribir algo en
los pines digitales.
Leva 2 argumentos (pin donde vamos a escribir, mandar 0 6 1 (HIGHT, LOW).
digitalWrite(13, HIGH);
WEspérate mil milisegundos (1 segundo).
delay(1000);
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeMApagar (0 volts).
digitalWrite(13,LOW);
delay(1000);
}
Desafio
Una vez que hemos terminado el proyecto anterior, te proponemos la siguiente
actividad para ejercitar:
Realizar una modificacién del cédigo para que la luz parpadee de la siguiente
manera:
Prendido 3 segundos.
Apagado 2 segundos.
+ Prendido 2 segundos.
© Apagado 1 segundo.
+ Prendido 1 segundo,
‘* Apagado 0.5 segundos.
© Que luego wuelva arrancar.
Conceptos basicos de electrénica basica.
La materia esta compuesta de elementos quimicos que, en esencia, son todos
similares en su mindscula estructura: un nucleo en donde se acumulan particulas
denominadas protones y neutrones, en tomo al cual orbitan particulas denominadas
electrones. Al conjunto se le denomina atomo.
Los protones y los electrones tienen una tendencia natural a atraerse, por ello
establecemos que los protones tienen signo positivo (+) y los electrones signo
negativo (-). En esencia, las cargas contrarias se atraen y las cargas iguales se
repelen. Los protones y los electrones tienen una tendencia natural a atraerse, por
ello establecemos que los protones tienen signo positivo (+) y los electrones signo
negativo. Pero, cuando circulan los electrones? Para que un electron quiera
moverse tiene que tener ganas de ello, es decir, se tiene que sentir atraido por otra
zona e iniciar el camino hacia la misma. Ahora bien, no pueden moverse como
quieran, necesitan un camino especial para ello. Fruto de ello surge la electricidad,
que no es mas que el efecto de los electrones moviéndose por la atraccién que
surge con los protones.
éTe has fijado que los cables generalmente estan recubiertos de plastico y por
dentro tienen un filamento metélico? Son asi para que los electrones puedan “viajar”
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajepor el cable metalico y el plastico evita que salgan y los mantiene en el mismo. Esto
es porque el metal es CONDUCTOR DE LA ELECTRICIDAD y el plastico es
AISLANTE (no deja pasar a los electrones).
Conceptos clave.
Voltaje
Una magnitud fisica que impulsa a los electrones a lo largo de un conductor (por
ejemplo un cable) en un circuito eléctrico cerrado, provocando el flujo de una
corriente eléctrica. Su unidad es el Voltio (V). El instrumento usado para medir el
voltaje se lo conoce como Voltimetro.
Corriente
Es el flujo de electrones a través de un conductor 0 semiconductor en un sentido.
La unidad de medida de ésta es el amperio (A). Una corriente eléctrica, puesto que
se trata de un movimiento de cargas, produce un campo magnético, un fenomeno
que puede aprovecharse en el electroimadn, este es el principio de funcionamiento
de un motor. El instrumento usado para medir la intensidad de la corriente eléctrica
es el galvanémetro que, calibrado en amperios, se llama amperimetro, colocado en
serie con el conductor cuya intensidad se desea medir.
Resistencia
Centro Educative Guaymax
libertad y devocién por el aprendizajeEs la propiedad fisica mediante la cual todos los materiales tienden a oponerse al
flujo de la corriente. La unidad de este parémetro es el Ohmio (A). Puedes encontrar
resistencias en los calefactores eléctricos, tarjetas electronics, estufas son muy
utiles para limitar el paso de la corriente.
Ley de Ohm
La ley dice que la corriente (1) que circula por un conductor eléctrico es directamente
proporcional al voltaje (V) e inversamente proporcional a la resistencia (R). La
piramide de la derecha es muy util para conocer la formula a la que es igual la
variable que tapes con el dedo, por ejemplo: Tapa con tu dedo la V (voltaje),
entonces voltaje va a ser igual a | (corriente) por R (resistencia), una més tapa |
(Corriente), | va a ser igual a V dividido R.
Sistemas electrénicos
Un sistema electrénico es un conjunto de circuitos que interactuan entre si para
‘obtener un resultado. Una forma de entender los sistemas electronicos consiste en
dividirlos en entradas, salidas y procesamiento de sefial
Las entradas 0 inputs
Son sensores (0 transductores) electrénicos 0 mecdnicos que toman las sefiales
(en forma de temperatura, presion, humedad, contacto, luz, movimiento, pH, etc)
del mundo fisico y las convierten en sefiales de corriente o voltaje. Por ejemplo un
sensor de temperatura, un pulsador, una fotocelda, un potenciémetro, un sensor de
movimiento entre muchos mas.
Las salidas o Outputs
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeSon actuadores u otros dispositivos (también transductores) que convierten las
sefiales de corriente o voltaje en sefiales fisicamente Uitiles como movimiento, luz,
sonido, fuerza, rotacién, entre otros. Por ejemplo: un motor que gire, un LED 0
sistema de luces que se encienda automaticamente cuando esté oscureciendo, un
buzzer que genere diversos tonos.
Ojol!
La pata corta del led es siempre el polo negativo (catodo) y la pata larga el polo
Ppositivo (4nodo).
Primero conectar todos los componentes a la protoboard y a lo ultimo conectar la
placa Arduino al equipo portatil.
Desafio
La sintaxis ante todo
Los puntos y comas son uno de los elementos mas importantes para escribir codigo
para Arduino y uno de los que mas facilmente nos olvidamos. Se usan para separar
las diferentes lineas de cédigo en su programa e indica a Arduino donde termina su
comando. Completa el cédigo con los ; que falten.
Cambiando de pin
Modificar el cédigo para que el LED si en lugar de estar en el PIN 4, estuviera
conectado al PIN 8.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeEerrrrsy
Pema aoy
Parone
riteiraicemrt)
rae :
Pirie ete cnt)
delay is
Ejercicio #2: Encender led desde la protoboard.
Realizar el circuito como se muestra en la siguiente imagen.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeNota: Cabe destacar que se usan los cables MM (Macho-Macho), para conectar a
corriente o Tierra todo componente.
Desafio
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeUna vez que hemos realizado el proyecto anterior, donde hemos prendido el LED
en el protoboard, te proponemos algunas de las siguientes actividades para
ejercitar:
Realizar una modificacién en el cédigo para que la luz parpadee de la siguiente
manera:
+ Prendido 3 segundos.
+ Apagado 1 segundo.
+ Prendido 2 segundos.
‘© Apagado 0.5 segundos.
+ Prendido 1 segundo.
* Apagado 0.25 segundos.
* Que luego vuelva a arrancar.
Desafio
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeUna vez que hemos logrado realizar este proyecto te proponemos algunas de las
siguientes actividades para ejercitar:
3€ Realizar una modificacién del cédigo para que la luz parpadee de la siguiente
manera: Prendido 3 segundos, apagado 1 segundo, prendido 2 segundos,
apagado 0.5 segundos, prendido 1 segundo y apagado 0.25 segundos y que
luego vuelva a arrancar.
3€ Realizar el montaje como muestra la imagen y hacer que parpadeen los tres
leds.
Ejercicio #3: Encender un componente led desde la placa arduino.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeHacer el prototipo siguiente como se muestra en la siguiente imagen.
Pasos:
4.- Conectar la patita larga del led (4nodo) al pin digital nimero 13.
2.-Y la otra patita corta (cdtodo) a Tierra o Ground.
Nota: Cabe destacar que solo fue necesario cambiar el prototipo sin mover nada
de cédigo desde el IDE arduino.
Ejercicio 4: Encender led con Push Button.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeHerramientas:
1 LED externo. LED: Led emisor de luz (light-emitting diode).
Sensor: Push Button. Un bot6n tactil
Jumpers wires (4 puentes MM).
1 protoboard. Prototipado sin tener que soldar.
1 arduino.
2 resistencias. (220k para el led y de 10k para el botén).
Indicaciones generales:
1. Hacer que el led se encienda y apague presionando y soltando el botén.
2. La pata mas corta va a tierra y la mas larga a voltaje.
3.- Protoboard. Las dos primeras lineas estan conectadas horizontalmente (de
arriba hacia debajo de la imagen). Negativo o a tierra y el positivo 0 a 5 volts, para
alimentar toda una linea.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizaje4.- Tenemos dos partes donde van a ir conectados nuestros componentes. Cual
estén conectadas verticalmente.
Distinguir resistencias.
Para el boton: dorado, naranja, negro y café (10k).
Para el led: dorado, café, naranja y rojo (220k).
Cables para tierra: blanco y negro.
Cables para el voltaje: Rojo.
Procedimientos:
Para el L.E.D.
1.- Las patitas del led en cada extremo de los bloques.
2- Del lado de la pata corta (cétodo) sobre la misma linea vertical poner la
resistencia dejando pasar un espacio recibira tierra
Para el botén.
1.- Poner el botén atrds del led o delante segiin sea el caso, dos patas para un
bloque y el otro igual
2. Una resistencia de 10K conectaria al boton del lado de una patita sobre la misma
linea, esa resistencia recibira tierra.
Conectarlos al arduino.
4.- Conectar la tierra y el voltaje (Sv) a la protoboard.
2.- El voltaje pasara a través del pin digital #4 de la pata mas larga del led.
3.- La alimentacién a tierra, pasaré por la resistencia de una de las patas del boton.
Resumen:
Conectar la pata mas corta del led, conectarlo a través de la resistencia a la linea
azul, y del bot6n una de las patas est4 conectada a tierra a través de esta
resistencia.
Imagenes ilustrativas.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeCentro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeConectar los componentes al Arduino.
1- De la misma linea que tenemos conectada la tierra en el _botén, vamos a
conectarlo al pin digital #2 del arduino. De la otra patita conectarlo a 5 volts.
2.- La alimentacién del led vendra del pin digital #4 desde la pata larga. Del lado de
la patita corta del led, sobre la misma linea conectar una resistencia a Tierra.
3.- En la otra pata se le da voltaje al bot6n desde la linea roja de la protoboard
4.- Nota: Tierra como alimentacién que va ser controlada por el pin.
MIENTRAS SE TENGA PRESIONADO EL BOTON SE ENCIENDE EL LED Y SI
SE SUELTA SE APAGA.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeDisefio de prototipo
Muestra de cédigo.
r
“Debemos guardar siempre el estado de nuestro sensor,
“Como estamos introduciendo nuestro primer sensor, debemos guardar siempre un
estado,
*Un sensor que es digital, pushbuttons, basicamente son dos placas, de metal que
estan separadas y cuando no las presionamos
*se juntan, cerrando el circuito dando un 0 0 un uno.
q
int estadoBoton = 0;
1!Constante de tipo entero conectado al pin 2.
const int boton = 2;
Med conectado al pin 4.
const int led = 4;
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajevoid setup() {
r
* Decirle al arduino aqui, que nuestro led vale 4, conectado al pin 4, eso es salido
output.
* Boton es una entrada o input.
"
pinMode(led,OUTPUT);
pinMode(boton,INPUT);
}
void loop() {
r
* queremos leer un pin digital,
* argumento de digitalRead(Es que pin voy a leer).
1
estadoBoton = digitalRead(boton);
r
* Si nuestro botén, si esta presionado prende el led, sino esta presionado apaga
elled
a
1/Si nuestro botén la lectura de nuestro botén es igual a 5volts, uno 6 quiere decir
que esta en el estado HIGH.
a
if(estadoBoton == HIGH){
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajedigitalWrite(led, HIGH);//Escribir en el pin digital, que ponga el estado HIGH,
igual a uno. 0 5 volts.
Jelset
11 Sino esta presionado, que apague el led.
digitalWrite(led,LOW);
}
}
Ejercicio #5: Ahora, hacer que el led se encienda y apague al presionar dos
veces el push button.
Muestra de cédigo.
JIPARTE 2 LED Y PUSH BUTTON.
r
* Presionar el botdn que encienda el led, saltar el botén que se quede encendido.
que guarde el estado de que esta encendido,
* volverlo a presionar para que el led se apague.
"
const int boton = 2;
const int led = 4;
int estadoBoton = 0;
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajef
* Se utilizan como condicionales, de true 0 false, 10 0, HIGH o LOW,
”
boolean estadoAnteriorBoton = LOW; //Guardar el estado anterior del botén.
boolean encenderLed = false; //Nos va dar la pauta para encender nuestro led 0
apagar.
void setup() {
pinMode(led, OUTPUT);
pinMode(boton,INPUT);
void loop() {
estadoBoton = digitalRead(boton);
IiSaber si el botén esta siendo presionado en este momento,
/Si antes estaba LOW y ahora si esta presionado, vamos a encender nuestro led,
if(estadoBoton == HIGH && estadoAnteriorBoton == LOW){
iMnvertir el estado de la funcion booleana.
encenderLed = lencenderLed;
estadoAnteriorBoton = HIGH; //Se sale del if al no cumplir la condicién.
Jelsef
estadoAnteriorBoton = estadoBoton; //Igualar el estado anterior del bot6n a
cualquier estado del boton en este momento,
Centro Educative Guaymax
aprendizaje}
digitalWrite(led, encenderLed); _//que el led se encienda 0 apague, agarre
cualquier valor true o false.
}
Ejercicio #6. Encendiendo led RGB.
Prototipo/Disefio:
Cédigo.
Programa para controlar un LED RGB con arduino.
Usando las salidas PWM se puede controlar la intensidad de cada color para hacer
las mezclas.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizaje‘Se hacen dos funciones:
rgbon(): Muestra los 3 colores principales uno despues de otro (rojo, verde y azul)
colors(): Permite elegir entre tres colores (amarillo (y), narajno (0) rosado (p))
usando sus siglas en ingles*/
/* Materiales:
1 Arduino UNO.
1 LED RGB de 4 patas catodo comun
3 resistencias de 220[ohm]
Cables de conexi6n
Autor: Jesus.
Fecha: 18 Julio 2016*/
/*—Deelaracion de variables para cada color R G B—*/
1 Pin PWN 11 para led rojo
int bled = 10; // Pin PWM 10 para led azul
; II Pin PWM 9 para led verde
int rled = 11;
int gled =
f*-—-Declaracion de variables auxiliares——*/
int i; // Variable para ciclos repetitivos
int repeat = 5; // Variables para cantidad limite de repeticiones
void setup() {
[*— Se inicializan pines PWM como salida*/
pinMode(ried, OUTPUT);
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajepinMode(bled, OUTPUT);
pinMode(gled, OUTPUT);
}
void loop() {
for(i=0; i Import Library... > Add Library
en la barra de menu.
Arduino Archivo Editar [EESTI Herramientas Ayuda
Verificar | Compilar RK
Mostrar la Carpeta de Sketch 38K
Ea Caro
regar Archivo.
a ‘EEPROM
Esplora
Ethernet
Firmata
com
Lguidcrystat
Robot Control
Robot Motor
so
Servo
SoftwareSerial
SPI
Stepper
TFT
WiFi
Wire
utr
3.- Se mostrar la pantalla donde debemos indicar la ruta del archivo .ZIP que
contiene la libreria de arduino. Elegimos el archivo ZIP que acabamos de bajar y
damos clic en lect” o “Seleccionar”.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizaje$B icmogn
& mevasxtog.xmi.t
Basti mt.
hraatog mL 10
15 spvasxiog ami
parce
‘Burton amt tzck
S MPLABXLog.xmi.13
1 MPLABxtog.xmi.14
BS svastionsmts
5S hovaatog mt
3 nruatepnt
4.- Nuevamente hacemos clic en Sketch > Import Library y deberiamos ver la
librerfa nueva en la parte baja del mend
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeHerramientas Ayuda
Verificar / Compilar wR
Mostrar la Carpeta de Sketch 38K
‘Agregar Archivo.
‘Add Library...
EEPROM
Esplora
Ethernet
Firmata
Gsm
LiquidCrystal
Robot Control
Robot Motor
so
Servo
SoftwareSerial
SP
Stepper
1
Fi
Wire
Arduino Archivo
Después de completar estos pasos la libreria sera descomprimida en nuestro
directorio de sketches y podremos utilizarla en todos nuestros programas. Sin
‘embargo, los ejemplos contenidos con la libreria no seran visibles dentro del ment
File > Examples hasta que reiniciemos el entoro de desarrollo,
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizaje@_ Artaine EXSY ator Sheich Verranientas prada
Nuevo xN
dot xO
Sketchbook >
core x
Guardar xs
Guarda como eS O4.communcaon
Garg RU OSContat .
Carper mando Progrmador MU | O6-Seeor .
Cofgurcin de Poa om | S780 :
tmrimir me eee f
ST ose .
deeunot
ME Novi sserson
ur > NewPingventiner
eeprom >" TimerExampl
Esplora > ae
Ethernet :
Fata .
ca
Uvidcrstat
Robotcontrol
Ruta: Programa/ incluir Libreria/ Afiadir libreria ZIP.
Instalacion manual de una libret
Si el método anterior para instalar una libreria de arduino no funciona 0 queremos
instalar manualmente {a libreria para “un mayor control. Podemos hacerlo de la
siguiente forma:
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizaje+ Descomprimimos el archivo .ZIP.
* En Windows copiamos la carpeta de la libreria a la siguiente ruta: My
Documents\Arduinollibraries.
* En MAC copiamos la carpeta de la libreria a la siguiente ruta:
Documents/Arduinollibraries.
Al final deberiamos tener en nuestro directorio los siguientes archivos (Windows):
T Wy Documents Arduino\ libraries \NenPing WewPing. cpp
2 My Documents\Ardutno\1tbrartes\NewPing\NewPing.h
3__My Documents \Arduino\libraries\NewPing\examples
En MAC quedaria algo asi:
i Documents7Ardutno/librartes/NewPing/NewPing..cpp
2 Document's/Ardutno/Libraries/NewPing/NewPing.h
3. Documents/Ardutno/librartes /NenPing/examples
Ejercicio #9 Uso del sensor HC-SR04
Usaremos la siguiente libreria: https://goo.gl/4a8ViK
Objetivo: Conocer el funcionamiento del sensor HC-SR04. Y usarlo para detectar
qué tan lejos o cerca se encuentra un objeto.
Materiales.
1 Tarjeta Arduino Uno.
1 Cable USB para Arduino.
1 Tarjeta protoboard
1 Software IDE de Arduino.
1 Sensor HC - SR04
1 Led comin de cualquier color.
1 resistencia de 220 0 330 ohms.
1 zumbador o speaker para 5 volts.
Cables.
Descripcién
1. Conectamos en sensor HC- SRO4 a nuestra protoboard
2. El sensor trae marcado el nombre de los 4 pines con los que cuenta, realizamos
la conexién de la siguiente forma.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizaje1. El pin GND lo conectamos a la tierra
2.- El pin Vec lo conectamos a corriente.
3.- El pin trig lo conectamos al pin 4 digital de Arduino.
4.- El pin Echo lo conectamos al pin 5 digital de Arduino.
3. Conectamos un LED a nuestra protoboard, el extremo plano lo conectamos a
tierra mediante una resistencia de 220 ohms 0 330 ohm, y el extremo redondo lo
conectamos al pin 8 de Arduino.
4. Conectamos el zumbador a la protoboard, el cable negro lo conectamos a tierra
y el otro lo conectamos al pin 5 de nuestro Arduino.
5. Conectamos los cables de tierra y corriente del Arduino a la protoboard.
6. Cargamos el cédigo.
A continuacién se muestra el diagrama de conexion de la presente practica.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeth Fritingorg,
Practica - Uso de! Sensor ultrasonico"/
1/Se importa la libreria NewPing
#include
const int trig= 4; //Pin trig en pin 4
const
echo=3; //Pin Echo en pin3
const int zumbado!
5; /zumbador en pin 5
constintled=8; /LEDenpin8
int distancia; //Guardamos la distancia que detecte el sensor
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeint pausa; _//Guarda el tiempo de espera entre parpadeo
11 Se crea un objeto con la libreria NewPing llamado sonar
NewPing sonar(trig, echo, 200); // Each sensors trigger pin, echo pin, and max
distance to ping.
void setup(){
pinMode(zumbador,OUTPUT); //Declaramos el zumbador como salida
pinMode(led, OUTPUT); //Declaramos el LED como salida
}
void loop(){
J/en la variable distancia guardamos la distancia en centimetros que detecta el
sonar respecto al objetivo
distancia = sonar.ping_cm();
if (distancia < 100){ /irestringir el alcance a 1m (100cm)
pausa = distancia * 10; //guardamos el tiempo de pausa
digitalWrite(zumbador, HIGH); //encendemos el zumbador
digitalWrite(led, HIGH); //Encendemos el LED
delay(pausa); //Agregamos un delay que sea igual al tiempo de pausa
}
digitalWrite(zumbador, LOW); //apagamos el zumbador
digitalWrite(led, LOW); /apagamos el LED
delay(pausa); // esperamos el tiempo de pausa
Centro Educative Guaymax
aprendizajeFinalidad de la practica: Es que al posicionar un objeto en el rango del sensor, el
speaker emite un sonido y el LED comienza a parpadear, y entre mas cerca se esté
del sensor el ruido y el parpadeo seran mas rapidos.
Nota: Aparte del LED, también se encuentra un speaker conectado y funciona como
deberia emitiendo un sonido intermitente, el sonido es muy débil.
Se aprendié acerca del uso del sensor de proximidad, especificamente del HC-
SR04 y su correcta conexién al Arduino y en tanto a la programacién, aprendimos
a como usar las librerias, en este caso la New Ping que soporta el sensor HC- SRO4.
Ejercicio #10 Controlando leds con potenciémetro.
Objetivo: Controlar leds con la actividad recibida por un potencidmetro.
Materiales
Protoboard.
Arduino,
5 leds
5 resistencias de 220 ohms.
© Alambre o conectores MM.
* 1 potenciémetro
* Arduino IDE.
A continuacién se muestra el prototipo de la parte del hardware:
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeCédigo en el IDE.
0;
int pinPotenciometro =A0;
inti
int valorPotenciometro = 0;
void setup(){
pinMode(pinPotenciometro, INPUT);
for (i = 2; i< 7; i++)
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajepinMode(i, OUTPUT);
Serial.begin(9600);
void loop() {
valorPotenciometro = analogRead(pinPotenciometro);
Serial.printin(valorPotenciometro, DEC);
delay(100);
if (valorPotenciometro == 0) apagarLeds();
if (valorPotenciometro > 0 && valorPotenciometro < 200)
digitalWrite(2, HIGH);
(valorPotenciometro >= 200 && valorPotenciometro < 400)
italWrite(3, HIGH);
(valorPotenciometro >= 400 && valorPotenciometro < 600)
italWrite(4, HIGH);
(valorPotenciometro >= 600 && valorPotenciometro < 800)
italWrite(5, HIGH);
if (valorPotenciometro >= 800) digitalWrite(6, HIGH);
if (valorPotenciometro == 1023) encenderLeds();
}
void apagarLeds()
{
for (i = 2; i< 7; i++)
digitalwrite(i, LOW);
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizaje}
void encenderLeds(){
for
2i<7;
+)
digitalWrite(i, HIGH);
}
Explicacién del cédigo.
El potenciémetro entrega un limite minimo de 0 y un maximo de 1023.
Se inicializa i, pinPotenciometro, valorPotenciometro en 0.
Por medio del pinMode definimos que pinPotenciometro sera de entrada de
datos y desde el pin 2 hasta el 6, de salida (para enviar HIGH y LOW a los
leds).
Serial.begin (velocidad) inicializa o abre el puerto serie asignéndole una
velocidad de transmisién de datos (bits por segundo). Dicha funcién debe ser
llamada desde dentro de la estructura 0 seccién setup().
Luego en la linea valorPotenciometro = analogRead(pinPotenciometro);
estamos diciendo que los valores enviados por el potenciémetro se
almacenaran en la variable valorPotenciometro.
Serial.printin(valorPotenciometro, DEC), es para que si queremos ver los
valores que esta enviando el potenciémetro en pantalla, los envie en formato
decimal (para ver la consola o monitor, vamos a Tools > Serial Monitor).
Cada uno de los if que siguen en el cédigo, especifican una accién con
determinado valor que viene del potenciémetro, cuando es 0, se ejecuta el
método apagarLeds, lo que pone en LOW a los leds, apagandolos, cuando
es el maximo, 1023, se activa el método encenderLeds, el cual pone en HIGH
los leds, encendiéndolos todos. Las demas condiciones hace que pasando
por determinados valores, los leds enciendan uno por uno.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeEjercicio #11 Deteccién de luz con sensor LDR
Dificultad: Intermedio.
Alcance y objetivos: Aprenderemos teoria del sensor LDR, como conectarlo a la
placa de Arduino, su funcionamiento mediante ejemplos practicos por medio de
Arduino,
Hardware necesario: placa Arduino, resistores, sensor LDR, cables.
Software necesario: Los siguientes programas son necesarios antes de la
realizacion del proyecto:
1.- Para programar tu Arduino, software de Arduino, descarga en:
http://goo.gUrrO0OPP-
2- Para documentar tu proyecto, te recomendamos el uso de Fritzing:
http//goo.qV/fM6MEP-
Otras consideraciones antes de empezar: Ten en cuenta las siguientes
consideraciones antes de empezar:
* Tener precaucién en el manejo de los diferentes dispositivos. Evitar largas
exposiciones al sol de la electronica, verter agua, etc.
* Antes de alimentar la electronica, asegurate de haber realizado las
conexiones tal y como se muestran. De otro modo podrias dafiar la
electronica.
Prevencién de riesgos.
Los siguientes riesgos estan relacionados con este proyecto:
1.- Cortes en las manos. Ten precaucién cuando peles los cables. Usa una pela
cables. Evita usar tijeras.
Por favor, trabaja con precaucion durante la realizacién de tu proyecto.
Paso 1.
El sensor LDR tiene la siguiente forma y representacién eléctrica.
—
| N
1 —C_+—
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeTen en cuenta las siguientes consideraciones antes de empezar:
Un sensor LDR es un resistor que varia el valor en funcion de la cantidad de luz que
incide sobre él. Cuando no se incide luz sobre el sensor el valor de la resistencia es
muy alto, y a medida que se incrementa la luz que incide, baja el valor de la
resistencia. En la figura podemos verlo:
FIGURE 2 RESISTANCE AS FUNCTION OF ILLUMINATION
1000 ]
100
10
Resistance (kQ)
=
10
o1
oy 10 10 100 1000 10000
tun
Algunas caracteristicas de este sensor son:
1.- Tiempo de respuesta corto, ideal para aplicaciones que requieran respuesta
rapida.
2.- Varian su valor de acuerdo a la intensidad de la luz.
3.- Son analégicos.
Algunas aplicaciones del sensor LDR son:
1.- Uso en fotocopiadoras: Densidad del toner.
2. Aplicaciones de control luz en la calle.
3.- Balanzas electrénicas.
4. Equipos de pruebas colorimétricas.
Medicién de luz con mi sensor LDR.
La primera parte del proyecto consiste en conectar el sensor LDR a la protoboard
para poder empezar a hacer mediciones de luz. Las haremos mediante:
1.- Vamos a montar el siguiente circuito en la protoboard.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajewwew.opiron.com by AGirod
Deteccién de luz con sensor LOR:
Medicién de luz medi
LOR.
ite sensor
Cédigo colores cables:
Negro> GND
Rojo-> V+
Azul-> Sefial analégica
El circuito consiste basicamente en conectar en serie una resistencia de valor, y un
sensor LDR. Conectar entre la patilla Analog In 0 de Arduino y una pata de la
resistencia, tal como se muestra en la figura, un cable para poder hacer la medici6n
del sensor.
2.- Ahora vamos a trabajar con el software de Arduino.
3.- Compilamos y verificamos que el cédigo no presente ningun error.
Cédigo
r
“Lectura de los valores medidos por un sensor LDR.
b |
ILeeremos del pin 0.
int LDR_pin = 0;
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizaje/Nariable para leer los datos del LDR.
int LOR_val = 0;
void setup() {
INisualizacién de los valores por la consola, hay que clickear
Hen el boton Serial Monitor
Serial.begin(9600);
void loop() {
IIEn el loop iremos leyendo continuaamente del sensor LDR.
LDR_val = analogRead(LDR_pin);
//\mpresién de los valores leidos por el sensor por pantalla.
Serial.print("LDR =");
Serial.printIn(LDR_val);
1Paro 1 segundo
delay(1000);
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeEmpezamos a medir:
Cuando acercamos tenemos las luces encendidas, los valores se ven més altos,
cercanos a 30 y cuando apagamos la luz, los valores son bajos.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeEjercicio #13: LDR.
Informacién de referencia:
http/www.arduino.ce/playground/Learning/PhotoResistor
http://arduino.ccles/Reference/Map
Detalles: Este es un ejercicio muy sencillo en el que veremos como obtener lecturas
analégicas de un sensor y darles salida por el monitor del puerto serie para verlas.
Herramientas:
+ 1placa Arduino.
+ 1 resistencia sensible a la luz o fotoresistencia, 2 resistencias.
* led para que nos dé una salida proporcional a las lecturas recibidas desde
la entrada analégica mediante PWM.
Prototipo.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeCédigo.
/* Prueba simple del funcionamiento de una fotoresistencia
Conecta la fotoresistencia por una pata al pin 0 y por la
otra a +5V.
Conecta una resistencia de 10K entre el pin 0 y GND.
PhotoR 10K
+5 0--/WV--.~/W—-0 GND
I
Pin 0 0-——"
"
int lightPin = 0; // Pin para la fotoresistencia
int ledPin=11; // Pin al que se conecta el LED
void setup()
{
Serial.begin(9600); _// Inicia la comunicacién serie
pinMode(ledPin, OUTPUT); // Establece el pin del LED
4 como salida
void loop()
{
11 Primero leemos el valor que nos da la fotoresistecia
11 lo mostramos por el puerto serie
Serial.printin(analogRead(lightPin));
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizaje// Ahora cogemos Ia lectura de la fotoresistencia, la
11 dividimos por 4 y la mandamos como salida analdgica
WalLED
analogWrite(ledPin, analogRead(lightPin)/4);
1/ Hacemos una pequefia pausa para que el baile de
I/ numeros en el puerto serie no sea mareante
delay(100);
}
Muy probablemente el resultado sea decepcionante: el led brilla poco y cuando
pasamos la mano por encima de la fotoresistencia el brillo del led baja un poco mas,
pero dependiendo de las condiciones de luz ambiental es probable que no se note
apenas nada.
La solucién es el calibrado del sensor, esto es, hacer una lectura de los valores que
devuelve el sensor en el ambiente en el que va a trabajar y ajustar los valores de
salida a este rango. Para ello emplearemos el comando map.
Map(valor, desdeBajo, desdeAlto, hastaBajo, hastaAlto);
valor: el numero (valor) a mapear.
desdeBajo: el limite inferior del rango actual del valor.
desdeAlto: el limite superior del rango actual del valor.
hastaBajo: limite inferior del rango deseado.
hastaAlto: limite superior del rango deseado.
El comando map() re-mapea un numero desde un rango hacia otro. Esto significa
que, un valor contenido en el al rango desdeBajo, desdeAllto, seré mapeado al rango
hastaBajo-hastaAlto.
No se limitan los valores dentro del rango, ya que los valores fuera de rango son a
veces objetivos y utiles, asi que si le pasamos un valor fuera del rango inicial
calculara una salida dentro de! rango de salida. Se puede utilizar el comando
constrain() tanto antes como después de ésta funcién si es importante respetar los
limites de los rangos.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeTen en cuenta que los limites “inferiores” de algtin rango pueden ser mayores 0
menores que el limite “superior” por lo que map() puede utilizarse para revertir una
serie de nlimeros, por ejemplo:
y = map(x,1,50,50,1);
La funcién maneja correctamente también los numeros negativos, por ejemplo:
y = map(x,1,50,50,-100);
también es valido y funciona correctamente.
El comando map() usa matematica de enteros por lo que no generaré numeros en
coma flotante, es decir, su uso se limita a valores o variables del tipo int.
Trata de aplicar la funcién map() al ejercicio por ti mismo, de modo que el led brille
al minimo cuando tapas con la mano la LDR y al maximo cuando la LDR capta la
luz de ambiente.
Cédigo.
int lightPin = AQ; //define el pin de la foto-resistencia
int ledPin=11; _ //define el pin para el LED
int valor; _ //define una variable en la que haremos los calculos
int min=0; —_//valor minimo que da la foto-resistencia
int max=0; —_/ivalor maximo que da la foto-resistencia
void setup()
{
Serial.begin(9600); //Inicializa la comunicacion serie
pinMode( ledPin, OUTPUT );
void loop()
{
valor = analogRead(lightPin);
valor = map(valor, min, max, 0, 255);
analogWrite(ledPin, valor);
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeSerial.printin(valor);
delay(10); //pequerio retardo para darle
II tiempo al LED a responder.
Ejercicio #14 Encendido y apagado de led en funcion de la luz.
1.- Ahora lo que haremos sera encender y apagar un LED en funcién de la luz que
tengamos en nuestra habitacién. Del ejercicio anterior, hemos visto que cuando
tenemos la luz de la habitacion apagada, los valores son cercanos a 0, mientras que
‘cuando encendemos Ia luz, los valores superan 30. Con estos valores podemos
agregar una condicién para poder manipular un LED.
2.- Vamos a montar el siguiente circuito en la protoboard.
Mini ing
La principal diferencia con el esquema anterior es que hemos afiadido un LED con
una resistencia conectados al pin 13 de Arduino.
3.- Una vista del esquema del circuito.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizaje°
>
s
=
3
4.- Ahora vamos al software de Arduino y escribimos el cédigo necesario.
5.- Comprobaremos que encendiendo la luz de nuestra habitacién, el led se apaga,
y si apagamos la luz de la habitacién, el led se enciende.
‘También vemos que el tiempo de respuesta de un sensor LDR es muy corto, por lo
que podremos usarlo en aplicaciones que requieran de un tiempo de respuesta
corto,
Cédigo.
r
*Lectura de los valores medidos por un sensor LDR.
7
MLeeremos del pin 0.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeint LOR_pin = 0;
JNariable para leer los datos del LDR.
0;
int LDR_val
int LED_pin = 13; // el led esta en el pin 13.
void setup() {
pinMode(LED_pin,OUTPUT); // El led esta en el pin 13.
}
void loop() {
pr
* En el loop iremos leyendo continuamente del sensor LDR.
1
LDR_v
if(LOR_val >= 20){ //si hay luz, apago el led.
digitalWrite(LED_pin,LOW); //apagamos el led.
}
else if(LDR_val < 20){//si no hay luz enciendo el led.
= analogRead(LDR_pin); //lee el valor de entrada de LDR.
digitalWrite(LED_pin, HIGH); //encendemos el led
}
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeEjercicio #15. Fotoresistencia haciendo uso de tres leds.
Objetivo: Realizar un medidor de luz con nuestro arduino, utilizaremos un arduino
con fotoresistencia LDR, y mostraremos el resultado en la computadora asi como
en un grupo de leds. Aprender como conectar sensores que varian su resistencia
dependiendo de una magnitud fisica.
Conceptos basicos.
Para entender como funciona este circuito y el programa que corre en la tarjeta
Arduino debemos conocer tres conceptos clave:
+ Fotoresistencia LDR: Componente cuya resistencia varia sensiblemente, con
la cantidad de luz percibida. La relacion entre la intensidad luminica y el valor de la
resistencia no es lineal. Se utiliza ampliamente para medir la iluminacién en
dispositivos electrénicos que requieren un precio agresivo. Su comportamiento es
el siguiente:
* Mas luz = menor resistencia eléctrica.
+ Menos luz = mayor resistencia eléctrica
+ Divisor de voltaje: Mediante un par de resistencias en serie, es posible repartir
la tension suministrada por la fuente entre las terminales de estas, en nuestro caso,
el divisor se utiliza con el LDR para obtener un voltaje variable de acuerdo a la
cantidad de luz percibida
Ri
Vout
Rz
“R,
aap Vin
Ri+ Ro
* Conversién Analégico-Digital (ADC). Es el proceso mediante el cual se
convierte una magnitud fisica como un voltaje, corriente, temperatura, etc en un
numero binario (0 sefial digital) con el propésito de facilitar su manejo por circuitos
digitales como un CPU. El Arduino realiza este proceso para conocer la cantidad de
luz percibida por el LDR y poder procesarla numéricamente.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeMateriales.
1) 1 Arduino UNO.
2) 1 fotoresistor (LOR)
3) 1 resistencia de 10 kohm 1/4W.
4) 3 resistencias de 220 o 330 ohm 1/4 W.
5) 3 leds.
6) Cables para protoboard.
DiagramalPrototipo.
fritzin
Debemos armar el circuito como se muestra en el siguiente diagrama pictorico.
Recordar que los leds tienen polaridad y hay que respetarla. El pin mas largo va
conectado a la tarjeta Arduino, mientras que el pin mas corto va con una resistencia
a tierra, la resistencia también puede conectarse sin problema entre el Anodo del
led y el arduino (del lado positivo del led).
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeCédigo (Sketch)
Explicacién: En primer lugar se preparan los pines de salida donde estan
conectados los leds, el pin de entrada donde se conecta el divisor resistivo y el
puerto serie para la comunicacién. A continuacién se ejecuta un ciclo infinito en el
que se lee el valor de! voltaje en el pin del LDR y se accionan los leds segun
correspondan.
r
* Ejemplo de medidor de luz con Arduino utilizando una fotoresistencia LDR y
* un grupo de leds para mostrar el resultado de las lecturas.
1
// Pin donde se conectan los leds
int pinLed1 = 2;
int pinLed2 = 3;
int pinLed3 = 4;
1/ Pin analogico de entrada para el LDR
int pinLDR = 0;
1 Variable donde se almacena el valor del LDR
int valorLDR = 0;
void setup()
{
1 Configuramos como salidas los pines donde se conectan los led
pinMode(pinLed1, OUTPUT);
pinMode(pinLed2, OUTPUT);
pinMode(pinLed3, OUTPUT);
1] Configurar el puerto serial
Serial.begin(9600);
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajevoid loop()
{
11 Apagar todos los leds siempre que se inicia el ciclo
digitalWrite(pinLed1, LOW);
digitalWrite(pinLed2, LOW);
digitalWrite(pinLed3, LOW);
// Guardamos el valor leido de! ADC en una variable
El valor leido por el ADC (voltaje) aumenta de manera directamente
proporcional
11 con respecto a la luz percibida por el LDR
valorLDR= analogRead(pinLDR);
11 Devolver el valor leido a nuestro monitor serial en el IDE de Arduino
Serial.printin(valorLDR);
1/ Encender los leds apropiados de acuerdo al valor de ADC
if(valorLDR > 256)
{
digitalWrite(pinLed1, HIGH);
}
if(valorLDR > 512)
{
digitalWrite(pinLed2, HIGH);
}
if(valorLDR > 768)
{
Centro Educative Guaymax
aprendizajedigitalWrite(pinLed3, HIGH);
}
1] Esperar unos milisegundos antes de actualizar
delay(200);
+
Para probar el proyecto medidor de luz, solamente debemos colocarlo sobre una
fuente de luz y verificar que los leds se enciendan conforme aumenta la cantidad
de luz. En la terminal, también podemos ver como va cambiando el valor de la
conversién analégico a digital.
Ejercicio #16. Trabajando con fotoresistencia (Continuidad).
Tomando como referencia el ej anterior.
Cuando hay suficiente luz ambiente, todos los leds estan apagados, y conforme baja
el nivel de luz, se encienden las diferentes “alertas’, siendo la roja la que indica
mayor oscuridad. Para esto se utiliza una resistencia (pulldown) de 10K (puede ser
menor, dependiendo de si queremos ser sensibles a la claridad o a la oscuridad),
por un lado conectada esta a tierra, y por el otro lado, alimentando con 5V el sensor.
En la unién entre el sensor y la resistencia de 10K, se saca una salida que va hacia
la entrada anal6gica de! Arduino. Esto nos dard valores entre 0 (mucha luz) y 1023
(oscuridad total).
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeCédigo (sketch)
int lightPin = 0; //define a pin for Photo resistor
int ledPint = 2;
int ledPin2 =
void setup(i{
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajepinMode(ledPin3, OUTPUT);
void loop(){
int lectura = analogRead(lightPin);
if(lectura < 300)
{
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
}
else if(lectura >= 300 && lectura < 500)
{
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
}
else if(lectura >= 500 && lectura < 700)
{
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin3, LOW);
}
else if(lectura >= 700)
{
digitalWrite(ledPin1, HIGH);
Centro Educative Guaymax
Innovacién, libertad y devocién pi
aprendizajedigit
digit
}
jalWrite(ledPin2, HIGH);
falWrite(ledPin3, HIGH);
delay(100);
Ejercicio #17 Luces estroboscépicas con variacién de tiempo.
Material
¥ Arduino UNO.
v2
v2
v4
Realizar
330 ohm:
LED
resistencias 330 ohms.
leds.
pulsador.
el circuito como se muestra en la siguiente imagen.
‘Arauino
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeCédigo.
MLuces estroboscépicas con variacion de tiempo
Iisalidas digitales 8 y 7 , entrada pin 2 para variar el tiempo
int ledazul = 8;
int ledrojo = 7;
int entrada = 2;
int pulsador = 0;
int tiempo = 30;
void setup() {
pinMode(ledazul, OUTPUT);
pinMode(ledrojo, OUTPUT);
pinMode(entrada, INPUT);
void loop() {
digitalWrite(ledazul, HIGH); —_//prende led azul
delay(tiempo); // espera un tiempo de 200 o 30ms
digitalWrite(ledazul, LOW); —_//apaga el led azul
delay(tiempo); J/ espera un tiempo de 200 0 30ms
digitalWrite(ledazul, HIGH); —_//prende led azul
delay(tiempo); J/ espera un tiempo de 200 0 30ms
digitalWrite(ledazul, LOW); —_//apaga el led azul
delay(150); J espera un tiempo de 150ms
Centro Educative Guaymax
aprendizajedigitalWrite(ledrojo, HIGH); —_//prende led rojo
delay(tiempo); J/ espera un tiempo de 200 0 30 mili segundos
digitalWrite(ledrojo, LOW); —_//apaga el led rojo
delay (tiempo); J/ espera un tiempo de 200 0 30 mili segundos
digitalWrite(ledrojo, HIGH); _//prende led rojo
delay(tiempo); J/ espera un tiempo de 200 0 30 mili segundos
digitalWrite(ledrojo, LOW); _//apaga el led rojo
delay(150); espera un tiempo de 150 mili segundos
pulsador = digitalRead(entrada); //Iee el valor del pin 2 si esta en alto o bajo
if (pulsador == HIGH){ —_// siesta en alto el tiempo es de 30ms de lo
contrario es 200ms
tiempo=30;
}
else {
tiempo=200;
}
}
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeEjercicio #18 Pantalla LCD 16 * 2 display.
Hacer que en el display de la pantalla LCD aparezca la palabra “Hola mundo”
Material
Y Arduino UNO.
1 pantalla LCD.
1 potenciémetro.
1 resistencia 10 kohm.
v
v
v
¥ Cables machos a macho.
Realizar el circuito como se muestra en la siguiente imagen.
100 ohm
o Puente
10K ohm
Nota: Cabe destacar que el potenciémetro solo es para calibrar el contraste de la
pantalla.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeContrast adjustment A +5v
+ . +
| back light current
limit resistor
Pin Assignment
Vss (GHD,supply)
Vee (+5V)
Vee (Contrast adj.)
RS
R/W (Read/Write)
E (enable)
(Data bit 0-7)
Back light (+)
Back light (-)
Cédigo pantalla LCD
r
LiquidCrystal Library - scrollDisplayLeft() and scrollDisplayRight()
Demonstrates the use a 16x2 LCD display. The LiquidCrystal
library works with all LCD displays that are compatible with the
Hitachi HD44780 driver. There are many of them out there, and you
can usually tell them by the 16-pin interface.
This sketch prints "Hello World!" to the LCD and uses the
scrollDisplayLeft() and scrollDisplayRight() methods to scroll
the text.
The circuit:
* LCD RS pin to digital pin 12
* LCD Enable pin to digital pin 12
* LCD D4 pin to digital pin S
* LED DS pinto digital pin 4
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizaje* LCD D6 pin to digital pin 3
* LCD D7 pin to digital pin 2
* LCD R/W pin to ground
* 10K resistor:
* ends to +5V and ground
* wiper to LCD VO pin (pin 3)
This example code is in the public domain.
http://goo.gl/rj TiMK
7
/Lieclude the library code
include
// initialize the library with the numbers of the interface pins
Liquidrystal ed(12, 11, 5, 4, 3, 2);
void setup) {
11 set up the LCD's number of columns and rows:
Ied.begin(16, 2);
1/ Print a message to the LCD.
ed.print("hello, world!
delay(1000);
}
void loop() {
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeJ/ scroll 13 positions (string length) to the left
J/ to move it offscreen left:
for (int positionCounter = 0; positionCounter < 13; positionCounter++) {
I scroll one position left:
led.scrollDisplayLeft();
AH waita bit:
delay(150);
}
// scroll 29 positions (string length + display length) to the right,
// to move it offscreen right:
for (int positionCounter = 0; positionCounter < 29; positionCounter++) {
// scroll one position right:
led.scrollDisplayRight();
Hoaita bit
delay(150};
}
1/ scroll 16 positions (display length + string length) to the left
// to move it back to center:
for (int positionCounter = 0; positionCounter < 16; positionCounter++) {
11 scroll one position left:
Ied.scrollDisplayLeft();
Hf waita bit:
delay(150};
}
11 delay at the end of the full loop:
delay(1000);
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeEjercicio #19 Servo motor.
Hacer mover servo de extremo a extremo con parada en el centro.
Material
¥ Arduino UNO.
¥ Servo motor.
¥ Cables macho macho.
Realizar el circuito como se muestra en la siguiente imagen.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeCédigo.
// Mover servo de extremo a extremo con parada en el centro
include //incluye la libreria Servo
Servo servol; // Crea el objeto servol con las caracteristicas de Servo
void setup)
{
servol.attach(5,600,1500); // Asocia el servol al pin 3, define el min y max del ancho del pulso
) // eso depende del fabricante del servo
void loop()
{
servol.write(0}; 1/ Gira el servo a0 grados
delay(700}; 1 Espera 700 mili segundos a que el servo llegue a la posicién
servol.write(90); 11 Gira el servo a 90 grados
delay(700};
servol.write(180); _//Gira el servo a 180 grados
delay(700};
}
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeEjercicio #20 Mover servo de derecha a izquierda al oprimir el pulsador de
cada lado el servo regresa automaticamente al centro (Direccién de Carro).
Material.
Y Servomotor.
Y 2pulsadores.
Y 2ieds.
Y 2resistencias.
Y Cables macho macho.
Realizar el ci
uito como se muestra en Ia siguiente imagen.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeCédigo.
11 Mover servo de derecha a izquierda al oprimir el pulsador de cada lado
1/ El servo regresa automaticamente al centro (Direccién de Carro)
#include 1/ncluye la libreria Servo
Servo servot; 1 Crea el objeto servot con las caracteristicas de Servo
int pulsador_der = 1; 1/ Fijamos el pulsador de la derecha en 0
int pulsador_izq = 1; 11 Fijamos el pulsador de la izquierda en 0
void setup()
{
servot.attach(6,600,1500); // Asocia el servot al pin 3, define el min y max del
ancho del pulso
11 eso depende del fabricante del servo
pinMode(2, INPUT); 11 Configuramos el pin 2 como entrada
pinMode(3, INPUT); 11 Configuramos el pin 3 como entrada
}
void loop()
{
pulsador_der = digitalRead(2); //lee el valor del pin 2 si esta en alto 0 bajo
pulsador_izq = digitalRead(3); //lee el valor del pin 3 si esta en alto 0 bajo
if (pulsador_det
LOW){ —_//sise oprimié el pulsador de la derecha
servot write(180); 11 Gira el servo a 1800 grados
delay(15); 1! Espera 15 mili segundos a que el servo llegue a la posicién
}
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeif (pulsador_izq==LOW){ —_// si se oprimio el pulsador de la izquierda
servot write(0); 11 Gira el servo a 0 grados
delay(15); 11 Espera 15 mili segundos a que el servo llegue a la
posicion
z
if(pulsador_izq == HIGH && pulsador_der == HIGH){_// Si se dejan de oprimir
los dos pulsadores
servot write(90); 11 Gira el servo a 90 grados
delay(15); 1/ Espera 15 mili segundos a que el servo
llegue a la posicion
}
}
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeCasa inteligente
A continuacién les mostraremos como hacer las conexiones en la tarjeta Arduino
Mega paso a paso:
(todas las conexiones estan basadas en el sketch que programamos para el
arduino).
Conectando los LEDs amarillos (habitaci6n, sala, comedor y cociné
fritzin
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeConectamos el positivo de los LEDs de la sala a los puertos 34 y 36 del arduino.
Los positivos de los LEDs del comedor, los conectamos a los puertos 38 y 40.
Para las luces de la cocina, usamos los puertos 42 y 44 conectados a los positives
de los LEDs.
La habitacién tiene dos LEDs, sus polos positivos los conectamos a los puertos 46
y 48 de la tarjeta Arduino Mega.
Todos los polos negativos de los LEDs, van conectados a través de resistencias de
220 Ohms al GND del Arduino, como se puede ver en el plano superior.
Ahora conectamos los LEDs de la parte exterior de la casa:
fritzin
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeLos polos positivos de los LEDs rojos los conectamos a los puertos 22, 24 y 26.
Para los LEDs verdes conectamos a los puertos 28, 30 y 32 los polos positivos.
Como en el plano anterior, conectamos los polos negativos a resistencias de 220
‘Ohms y estas a su vez las conectamos a GND de la tarjeta Arduino MEGA
Una vez hemos conectado los bombillos de nuestra casa, pasamos a conectar la
pantalla LCD la cual nos mostrara los comandos que recibe la casa dombtica, para
esto necesitaremos la pantalla, el potenciémetro y una resistencia de 220 Ohms.
El potenciémetro lo usamos para controlar el brillo de la pantalla.
Simplemente sigue las conexiones como aparecen en el plano que mostramos a
continuacién:
Ye
|
fritzin
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeComo conectar los pines de la pantalla:
Pin 1 conectado a GND.
Pin 2 conectado a 8V.
Pin 3 ala salida del potenciémetro (conexién central).
Pin 4 al puerto digital 11.
Pin 5 a GND.
Pin 6 a puerto digital 12.
Pin 11 a puerto digital 5.
Pin 12 a puerto digital 4.
Pin 13 a puerto digital 3.
Pin 14 a puerto digital 2.
Pin 15 conectado a una resistencia de 220 Ohms, esta a su vez debemos
conectarla a 5V.
Pin 16 a GND.
Ya tenemos listas las conexiones para los bombillos de la casa y la pantalla que nos
traduce las ordenes que enviamos a través de la aplicacién de control de voz que
disefiamos para nuestro dispositive Android
Es el momento de instalar los servomotores los cuales abriran y cerrar la ventana y
la puerta de nuestra casa domética.
Sigue el siguiente plano para conectar los servomotores:
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajefritzing
Debemos conectar el cable de datos de los servomotores a los pines 51 y 53 del
arduino y los polos positivo y negativo a 5V y GND respectivamente.
Conectando los motores del Aire acondicionado y el Calentador.
‘Cuando trabajamos con motores, debemos usar una fuente de poder diferente para
poderlos mover, pues los 5V del arduino no son suficientes para que los motores
puedan girar. Es por ello que vamos a necesitar una bateria de 9V y un relay de 2
canales para que podamos darle la orden al relay que los encienda
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeBésicamente el relay es un interruptor que se activa cuando le enviamos 5V, de esta
manera le abre paso a la corriente adicional, que necesitamos para mover los
motores en este caso la bateria de SV. (los relays los podemos usar también cuando
queremos interactuar con el arduino y aparatos que trabajen con 110 0 220 voltios).
Enel siguiente plano les mostramos como conectar los motores al relay de 2 canales
y estos a la tarjeta Arduino Mega:
fritzing
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeLo primero que debemos hacer es conectar la bateria a los polos positivos y
negatives de la breadboard. Es Importante que el polo negativo 0 GND
este puenteado al GND de la tarjeta Arduino MEGA, de esta manera evitaremos
que se sobrecargue nuestro circuito.
El polo positivo que proviene de la bateria lo conectamos a los puertos comunes del
relay (conectores centrales) debemos conectar los polos positivos de los motores a
los puertos con la sigla NO del relay, esto quiere decir que cuando se activa el relay
con el Arduino, va a encender los motores. Si lo conectamos al puerto con la
sigla NC, al conectar la corriente, lo motores estarén encendidos y al activar el relay
lo que haria seria apagarlos.
El puerto VCC lo conectamos a 5V del arduino y el GND al GND del Arduino.
EI CH1 del relay lo conectamos al puerto 6 y el CH2 lo conectamos al puerto 7.
Modulo Bluetooth.
Una vez tenemos conectados los motores, solo nos hace falta agregar el modulo
Bluetooth el cual es la base de este proyecto. Es muy importante que al subir el
programa ala tarjeta Arduino Mega, el modulo Bluetooth no tenga el VCC conectado
ala tarjeta, pues generara un error y el programa no se podra cargar.
Solo cuando el programa este guardado en la memoria, podremos conectar el
modulo a los 5V del arduino y nuestra casa domética estara operativa.
Este es el la manera correcta de conectar el modulo a la tarjeta Arduino Mega:
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajefritzing
‘Como conectar e! Modulo Bluetooth.
VCC lo conectamos al puerto 5V del Arduino (conectar solo cuando el sketch este
cargado en la tarjeta)
GND lo conectamos a la GND de la placa
RXD lo conectamos al puerto TX de! Arduino.
TXD lo conectamos al puerto RX del Arduino.
Perfecto! ya tenemos todas las conexiones listas, ahora solo debemos subir el
programa a la tarjeta y listo, podemos disfrutar de nuestra casa domotica.
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeString mensaje; //variable que contiene el mensaje del dispositivo android
#include // iniciamos la bliblioteca de servomotores
Servo ventana; // le damos el nombre al servo que abre la ventana
Servo puerta; // le damos el nombre al servo que abre la puerta
#include // incluimos la linbreria para la pantalla liquida
LiquidCrystal Ied(12, 11, 5, 3, 3, 2); // configuramos los puertos de la pantalla
en el arduino
/ nombramos las variables para los LEDs y los puertos donde estan conectados
const int luz_calle_1 = 22;
const int luz_calle_2 = 24;
const int iuz_calle_3 = 26;
const int luz_calle_4 = 28;
const int iuz_calle_5 = 30;
const int luz_calle_6 = 32;
const int iuz_sala_1 = 34;
const int iuz_sala_2 = 36;
const int iuz_comedor_1 = 38;
const int iuz_comedor_2 = 40;
const int luz_cocina_1 = 42;
const int luz_cocina_2 = 44;
const int luz_habitacion_1 = 46;
const int luz_habitacion_2 = 48;
/ nombramos las variables de los motores y los puertos donde estan
conectados
const int aire_acondicionado = 6;
const int calentador = 7;
void setup () {
Serial.begin(9600); // iniciamos la comunicacnion serial para recibir los datos
1/ configuracion para la pantalla liquida
led. begin(16, 2); //iniciamos
Ied.print (" Casa Domotica"
lod.setCursor(0,1);
lod.print (" Bienvendido ");
pantalla liquida
1/ configuramos los puertos de los LEDs como salida
pinMode(\uz_calle_1, OUTPUT);
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajepinMode(luz_calle_2, OUTPUT);
pinMode(Iuz_calle_3, OUTPUT);
pinMode(Iuz_calle_4, OUTPUT);
pinMode(Iuz_calle_5, OUTPUT);
pinMode(luz_calle_6, OUTPUT);
pinMode(luz_sala_1, OUTPUT);
pinMode(luz_sala_2, OUTPUT),
pinMode(\uz_comedor_1, OUTPUT);
pinMode(luz_comedor_2, OUTPUT);
pinMode(uz_cocina_1, OUTPUT);
pinMode(luz_cocina_2, OUTPUT);
pinMode(Iuz_habitacion_1, OUTPUT);
pinMode(Iuz_habitacion_2, OUTPUT);
// confuguramos los pines de los motores como salida
pinMode(aire_acondicionado, OUTPUT);
pinMode(calentador, OUTPUT);
1 servomotores
puerta.attach(51); // pin al que esta conectado el servomotor de la puerta
ventana attach(53); // pin al que esta conectao el servomotor de la ventana
puerta.write(95); // iniciamos la puerta en posicion de cerrada
ventana.write(150); // iniciamos la ventana en posicion cerrada
}
void loop() {// iniciamos el bucle del programa
while(Serial.available()) { / confirmando que la comunicacion serial este
disponible
delay(10); !/ hacemos un delay para dar estabilidad al programa
char c = Serial.read(); // c almacena el comando que proviene del
dispositive android
mensaje += c; // sumamos el contenido de! comando a la variable
mensaje
}
if (mensaje.length(>0) { // verifica que la variable mensaje no esta vacia
/iniciamos las funciones que realiza la casa segun el comando que
enviamos desde el dispositive android
if (mensaje=="*abrir puerta’) {
puerta. write(25); // ponemos el servomotor de la puerta en posicion de
abrir
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeIed.setCursor(0,1); // ubicamos la pantalla en la primera fila
led.print ("Puerta pirncipal "); // escribimos el mensaje superior
Ied.setCursor(0, 1); // ubicamos la pantalla en la segunda fila
Icd.print (" Abierta "); }// escribimos el mensaje inferior
else if (mensaje=="*cerrar puerta") {
puerta. write(95); // ponemos el servomotor de la ventana en posicion de
led.setCursor(0, 1); // ubicamos la pantalla en la primera fila
led.print ("Puerta pimcipal "); // escribimos el mensaje superior
Ied.setCursor(0,1); // ubicamos la pantalla en la segunda fila
led.print (" Cerrada_— "); }/ escribimos el mensaje inferior
else if (mensaje=="*abrir ventana") {
ventana.write(30); // ponemos el servomotor de la ventana en posicion de
abrir
led.setCursor(0,1); // ubicamos la pantalla en la primera fila
|ed.print (” Ventana master "); // escribimos el mensaje superior
led.setCursor(0,1); // ubicamos la pantalla en la segunda fila
led.print (" Room abierta "); }// escribimos el mensaje inferior
else if (mensaje=="*cerrar ventana") {
ventana write(150); // ponemos el servomotor de la ventana en posicion
de cerrar
led.setCursor(0,1); // ubicamos la pantalla en la primera fila
led.print (” Ventana master "); // escribimos el mensaje superior
led.setCursor(0,1); // ubicamos la pantalla en la segunda fila
led.print (" Room cerrada "); }// escribimos el mensaje inferior
else if (mensaje=="*abrir todo") {
puerta. write(25); // ponemos el servomotor de la puerta en posicion de
abrir
delay(1000); // esperamos un segnudo
ventana write(30); // ponemos el servomotor de la ventana en posicion de
abrir
led.setCursor(0,1); // ubicamos la pantalla en la primera fila
Icd.print (" Puertas "); // escribimos el mensaje superior
led.setCursor(0,1); // ubicamos la pantalla en la segunda fila
led.print (" Abiertas. "); } // escribimos el mensaje inferior
else if (mensaje=="*cerrar todo") {
puerta. write(95); // ponemos el servomotor de la ventana en posicion de
cerrar
delay(1000); // esperamos un segundo
ventana write(150); !/ ponemos el servomotor de la ventana en posicion
de cerrar
led.setCursor(0,1); // ubicamos la pantalla en la primera fila
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeIcd.print (" Puertas _"); // escribimos el mensaje superior
led.setCursor(0,1); // ubicamos la pantalla en la segunda fila
Icd.print (" Cerradas "); } // escribimos el mensaje inferior
else if (mensaje=="*prender principal") {
digitalWrite (luz_habitacion_1, HIGH); // prendemos el primer led de la
habitacion
digitalWrite (luz_habitacion_2, HIGH); // prendemos el segundo led de la
habitacion
led.setCursor(0, 1); // ubicamos la pantalla en la primera fila
Icd.print ("Luces Habitacion "); // escribimos el mensaje superior
led.setCursor(0,1); // ubicamos la pantalla en la segunda fila
led.print (" encendidas "); }// escribimos el mensaje inferior
else if (mensaje=="*apagar principal”) {
digitalWrite(luz_habitacion_1, LOW); // apagamos el primer led de la
habitacion
digitalWrite(1uz_habitacion_2, LOW); // apagamos el segundo led de la
habitacion
lod.setCursor(0,1); // ubicamos la pantalla en la primera fila
Icd.print ("Luces Habitacion "); / escribimos el mensaje superior
Ied.setCursor(0,1); // ubicamos la pantalla en la segunda fila
led.print(" apagadas "); }// escribimos el mensaje inferior
else if (mensaje=="prender sala") {
digitalWrite(Iuz_sala_1, HIGH); // prendemos el primer led de la sala
digitalWrite(luz_sala_2, HIGH); // prendemos el segundo led de la sala
led.setCursor(0,1); // ubicamos la pantalla en la primera fila
led.print (" Luces Sala"); // escribimos el mensaje superior
led.setCursor(0,1); // ubicamos la pantalla en la segunda fila
led.print (" encendidas "); }// escribimos el mensaje inferior
else if (mensaje=="*apagar sala") {
digitalWrite(luz_sala_1, LOW); // apagamos el primer led de la sala
digitalWrite(1uz_sala_2, LOW); /! apagamos el segundo led de lasala
led.setCursor(0,1); //ubicamos la pantalla en la primera fila
Icd.print (" Luces Sala escribimos el mensaje superior
led.setCursor(0,1); // ubicamos la pantalla en la segunda fila
Ied.print (" apagadas "); }// escribimos el mensaje inferior
else if (mensaje=="*prender cocina") {
digitalWrite(Iuz_cocina_1, HIGH); // prendemos el primer led de la cocina
digitalWrite(luz_cocina_2, HIGH); // prendemos el segundo led de la
cocina
led.setCursor(0,1); // ubicamos la pantalla en la primera fila
|ed.print (" Luces Cocina ");// escribimos el mensaje superior
led.setCursor(0,1); // ubicamos la pantalla en la segunda fila
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajelod.print (" encendidas "); }/ escribimos el mensaje inferior
else if (mensaje=="*apagar cocina") {
digitalWrite(luz_cocina_1, LOW); // apagamos el primer led de la cocina
digitalWrite(uz_cocina_2, LOW); // apagamos el segundo led de la
cocina
lod.setCursor(0,1); // ubicamos la pantalla en la primera fila
led.print (" Luces Cocina"); // escribimos el mensaje superior
led.setCursor(0,1); // ubicamos la pantalla en la segunda fila
led.print (" apagadas "); }// escribimos el mensaje inferior
else if (mensaje=="*prender comedor’) {
digitalWrite(uz_comedor_1, HIGH); // prendemos el primer led del
comedor
digitalWrite(Iuz_comedor_2, HIGH); // prendemos el segundo led del
comedor
led.setCursor(0,1); // ubicamos la pantalla en la primera fila
led.print (" Luces Comedor "); // escribimos el mensaje superior
led.setCursor(0,1); // ubicamos la pantalla en la segunda fila
led.print (" encendidas "); }/ escribimos el mensaje inferior
else if (mensaje=="*apagar comedor’) {
digitalWrite(1uz_comedor_1, LOW); // apagamos el primer led del
comedor
digitalWrite(1uz_comedor_2, LOW); // apagamos el segundo led de!
comedor
led.setCursor(0,1); // ubicamos la pantalla en la primera fila
lod.print (" Luces Comedor "); // escribimos el mensaje superior
led.setCursor(0,1); // ubicamos la pantalla en la segunda fila
led.print (” apagadas Wescribimos el mensaje inferior
else if (mensaje=="+prender exterior") {
digitalWrite(Iuz_calle_1, HIGH); // prendemos el primer led de la calle
digitalWrite(Iuz_calle_2, HIGH); // prendemos el segundo led de la calle
digitalWrite(1uz_calle_3, HIGH); // prendemos eltercer led de la calle
digitalWrite(1uz_calle_4, HIGH); // prendemos el cuarto led de la calle
digitalWrite(Iuz_calle_5, HIGH); // prendemos el quinto led de la calle
digitalWrite(Iuz_calle_6, HIGH); // prendemos el sexto led de la calle
led.setCursor(0,1); // ubicamos la pantalla en la primera fila
lod.print (" Luces exterior "); // escribimos el mensaje superior
Ied.setCursor(0,1); // ubicamos la pantalla en la segunda fila
led.print (" encendidas "); }// escribimos el mensaje inferior
else if (mensaje=="*apagar exterior") {
digitalWrite(Iuz_calle_1, LOW); // apagamos el primer led de la calle
digitalWrite(|uz_calle_2, LOW); // apagamos el segundo led de la calle
digitaWrite(1uz_calle_3, LOW); // apagamos eltercer led de la calle
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajedigitalWrite(luz_calle_4, LOW); // apagamos el cuarto led de la calle
digitalWrite(|uz_calle_5, LOW); // apagamos el quinto led de la calle
digitalWrite(|uz_calle_6, LOW); // apagamos el sexto led de la calle
led.setCursor(0,1); // ubicamos la pantalla en la primera fila
|cd.print (" Luces exterior "); // escribimos el mensaje superior
led.setCursor(0,1); // ubicamos la pantalla en la segunda fila
|ed.print(" apagadas "); }// escribimos el mensaje inferior
else if (mensaje=="‘prender aire") {
digitalWrite(aire_acondicionado, HIGH); // prendemos el motor el aire
acondicionado
led.setCursor(0,1); // ubicamos la pantalla en la primera fila
Icd.print ("Aircon"); // escribimos el mensaje superior
Ied.setCursor(0,1); // ubicamos la pantalla en la segunda fila
Icd.print (" encendido —"); }// escribimos el mensaje inferior
else if (mensaje=="*apagar aire") {
digitalWrite(aire_acondicionado, LOW); // apagamos el motor el aire
acondicionado
led.setCursor(0,1); // ubicamos la pantalla en la primera fila
Ied.print ("Aircon"); / escribimos el mensaje superior
Ied.setCursor(0,1); // ubicamos la pantalla en la segunda fila
Ied.print(" apagado —"); }// escribimos el mensaje inferior
else if (mensaje=="*prender calentador") {
digitalWrite(calentador, HIGH); // prendemos el motor del calentador
led.setCursor(0,1); // ubicamos la pantalla en la primera fila
Icd.print (" Calefacicon "); // escribimos el mensaje superior
Ied.setCursor(0, 1); // ubicamos la pantalla en la segunda fila
led.print (" encendida — "); }// escribimos el mensaje inferior
else if (mensaje=="*apagar calentador") {
digitalWrite(calentador, LOW); // apagamos el motor del calentador
led.setCursor(0, 1); // ubicamos la pantalla en la primera fila
Icd.print(" Calefaccion "); // escribimos el mensaje superior
Ied.setCursor(0,1); // ubicamos la pantalla en la segunda fila
Icd.print(" apagada _"); }// escribimos el mensaje inferior
else if (mensaje==">prender luces") {
digitalWrite(uz_calle_1, HIGH); // prendemos el primer led de la calle
digitalWrite(|uz_calle_2, HIGH); // prendemos el segundo led de la calle
digitalWrite(luz_calle_3, HIGH); // prendemos eltercer led de la calle
digitalWrite(Iuz_calle_4, HIGH); // prendemos el cuarto led de la calle
digitalWrite(Iuz_calle_5, HIGH); // prendemos el quinto led de la calle
digitalWrite(|uz_calle_6, HIGH); // prendemos el sexto led de la calle
digitalWrite(|uz_habitacion_1, HIGH); // prendemos el primer led de la
habitacion
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajedigitalWrite(luz_habitacion_2, HIGH): // prendemos el segundo led de la
habitacion
digitalWrite(uz_sala_1, HIGH); // prendemos eltercer led de la sala
digitalWrite(1uz_sala_2, HIGH); // prendemos el cuarto led de la sala
digitalWrite(1uz_cocina_1, HIGH); // prendemos el quinto led de la cocina
digitalWrite(|uz_cocina_2, HIGH); // prendemos el sexto led de la cocina
digitalWrite(1uz_comedor__1, HIGH); // prendemos el quinto led del
comedor
digitalWrite(1uz_comedor_2, HIGH); // prendemos el sexto led del
comedor
Ied.setCursor(0,1); // ubicamos la pantalla en la primera fila
lcd.print(" Luces —_");// escribimos el mensaje superior
led.setCursor(0,1); // ubicamos la pantalla en la segunda fila
Icd.print (" encendidas "); }// escribimos el mensaje inferior
else if (mensaje=="*apagar luces") {
digitalWrite(|uz_calle_1, LOW); // apagamos el primer led de la calle
digitalWrite(|uz_calle_2, LOW); // apagamos el segundo led de la calle
digitalWrite(|uz_calle_3, LOW); // apagamos eltercer led de la calle
digitalWrite(1uz_calle_4, LOW); // apagamos el cuarto led de la calle
digitalWrite(|uz_calle_5, LOW); // apagamos el quinto led de la calle
digitalWrite(Iuz_calle_6, LOW); !/ apagamos el sexto led de la calle
digitalWrite(1uz_habitacion_1, LOW); // apagamos el primer led de la
habitacion
digitalWrite(Iuz_habitacion_2, LOW); // apagamos el segundo led de la
habitacion
digitalWrite(luz_sala_1, LOW); // apagamos eltercer led de la sala
digitalWrite(1uz_sala_2, LOW); // apagamos el cuarto led de la sala
digitalWrite(1uz_cocina_1, LOW); // apagamos el quinto led de la cocina
digitalWrite(1uz_cocina_2, LOW); // apagamos el sexto led de la cocina
digitalWrite(1uz_comedor_1, LOW); // apagamos el quinto led del
comedor
digitalWrite(1uz_comedor_2, LOW); // apagamos el sexto led del comedor
led.setCursor(0,1); // ubicamos la pantalla en la primera fila
Ied.print(" Luces —_");// escribimos el mensaje superior
Ied.setCursor(0,1); // ubicamos la pantalla en la segunda fila,
Icd.print (" apagadas _"); }// escribimos el mensaje inferior
}
mensaje=""; // reseteamos la variable
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeDomética gas
Zumbador Activo
er"
Sensor de Ges Metano MO4
teary
ALARMAGAS = ERE
/* Arduino Control House
... Control digital on/off del pin 13 al pin 6
... Dimer de los Pin 3 y 5
.... Control de Servo por PIN 4
... Lectura analoga del Puerto AO
Conexién del Médulo Bluetooth al Arduino
usando Pin 0 y 1
"
#include
Servo servot; _// Crea el servot con las librerias de Servo.h
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeint estado=0;
int retardo=100;
int analogo="
void setup()t
servol attach(4);
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11,QUTPUT);
pinMode(10, OUTPUT);
pinMode(9,OUTPUT);
pinMode(8,OUTPUT);
pinMode(7,OUTPUT);
pinMode(6,OUTPUT);
pinMode(5,OUTPUT);
pinMode(4,OUTPUT);
pinMode(3,OUTPUT);
Serial.begin(9600);
delay(1000);
}
void loop(){
if(Serial available()>0){ 11 Siel puerto serie esta habilitadp
estado = Serial.read(); _// Lee lo que llega por el puerto Serie
}
if(estado=='a'){ JL on/off de los pin 13 al pin 6
digitaWrite(13, HIGH);
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeif(estado== 'b’ }{
digitalWrite(13,LOW);
digitalWrite(12,LOW);
}
iffestado== 'e’){
digitaWrite(11,HIGH);
digitalWrite(10, HIGH);
}
iffestado=='h'
digitalWrite(10,LOW);
}
iffestado== ¥'
digitalWrite(9, HIGH);
digitarite(9, LOW);
}
iffestado
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajedigitalWrite(8, HIGH);
}
iffestado==" ){
digitalWrite(8, LOW);
digitalWrite(7,HIGH);
}
iffestado
digitarite(7 LOW);
ni
if(estado== 'o' ){
digitalWrite(6, HIGH),
if(estado== 'p' {
digitalWrite(6,LOW);
}
if(estado=='A'){ __// Movimiento del SERVO
servot write(0);
}
if(estado:
By
servot write(90);
}
iffestado
x
servo1 write(180);
1 Dimer 1 conectado al pin 5
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeanalogWrite(5,0);
}
iffestado=="t){
analogWrite(5,3);
}
iffestado=="u,
analogWrite(5,8);
Z
if(estado=="v'{
analogwrite(5,20);
}
if(estado==w){
analogWrite(5,30);
}
iffestado=="){
analogWrite(5,60);
}
if(estado=='y){
analogWrite(5,125);
}
if(estado=="2'){
analogWrite(5,255);
z
M1 Dimer 2 conectado al pin 3
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeanalogWrite(3,0);
}
iffestado=="2{
analogWrite(3.
}
iffestado=="3',
analogWrite(3,8);
Z
iffestado=="4'){
analogWrite(3,20);
}
iffestado=="5
analogWrite(3,30);
}
iffestado=="6'{
analogWrite(3,60);
}
iffestado==7',
analogWrite(3,125);
}
iffestado=="81
analogWrite(3,255);
z
if(estado=='q){ __// envia el valor leido del puerto analogo AO
analogo=analogRead(A0);
Serial print(analogo);
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeSerial printin("°C");
delay (retardo);
estado=0;
}
delay(retardo);
}
PARTE 2
I Alarma de Gas Metano
Conecta el Arduino con el Sensor de Gas MQ4 y cuando el nivel de concentracion
de gas metano
Supera un limite se activa una alarma sonora, el nivel de gas metano se puede
visualizar por
el Monitor Serial.
Conexiones:
ARDUINO MQ4 = Zumbador
5V Vec
GND GND
AO AO
Pin 13 +
GND GND
"
int valor_limite= 200; 1 Fiaja el valor limite en el que se activa la alarma
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizaje1/ Fije el valor después de visualizar el nivel con el Monitor
Serial
void setup() {
Serial.begin(9600); JI Activa el puerto Serial a 9600 Baudios
pinMode(13,0UTPUT); 1 Configura el Pin 13 como salida para el
Zumbador
}
void loop() {
Serial printin(analogRead(A0)); _// Envia al Serial el valor leido de! Sensor MQ4
if(analogRead(A0) > valor_limite){ /! Si la medida de gas metano es mayor de
valor limite
digitaWrite(13, HIGH); _‘// Enciende el Zumbador conectado al Pin 13
}
else{ 1/ Sies menor del valor limite apaga el Zumbador
digitaWrite(13, LOW);
}
delay (300); 1/ Espera 300ms para realizar la proxima medida
}
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeCarro
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeGiro y Reversa de Carros y Robot
Cédigo carro control puente H prueba. Camino #1
1° Prueba del Puente H (L293D)
Dibujo de las conexiones en www.elprofegarcia.com
ARDUINO L293D(Puente H)
5 10
6 15
9 7
10 2
SV 1,9, 16
GND 4,5, 12, 13
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeEl motor 1 se conecta a los pines 3 y 6 del Puente H
El motor 2 se conecta a los pines 11 y 14 del Puente H
La fuente de alimentacion de los Motores se conecta a tierra y
el positive al pin 8 del puennte H
"
int izqA = 5;
int izqB = 6;
int derA = 9;
int derB = 10;
int vel = 255; // Velocidad de los motores (0-255)
void setup() {
pinMode(derA, OUTPUT):
pinMode(der8, OUTPUT);
pinMode(izqA, OUTPUT);
pinMode(izqB, OUTPUT);
}
void loop() {
analogWrite(derB, 0); // Detiene los Motores
analogWrite(izaB, 0);
delay (500);
analogWrite(derA, vel); // Frente 2 segundos
analogWrite(izqA, vel):
delay (2000);
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeanalogWrite(derA, vel): // Derecha 0,5 segundos
analogWrite(izqA, 0);
delay (500);
analogWrite(derA, 0); // Izquierda 0,5 segundos
analogWrite(izaA, vel);
delay (500);
analogWrite(derA, 0); // Detiene los Motores
analogWrite(izqA, 0);
delay (500);
analogWrite(derB, vel); // Reversa 2 segundos
analogWrite(izqB, vel);
delay (2000);
Cédigo carro control puente H prueba. Camino #2
/* Prueba del Puente H (L293D)
ARDUINO L293D(Puente H)
5 10
6 15
9 7
10 2
SV 1,9, 16
GND 4,5, 12,13
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeEl motor 1 se conecta a los pines 3 y 6 del Puente H
El motor 2 se conecta a los pines 11 y 14 del Puente H
La fuente de alimentacion de los Motores se conecta a tierra y
el positivo al pin 8 del puennte H.
1
int izqA = 5;
int izqB = 6;
int derA = 9;
int derB = 10;
int vel = 255; // Velocidad de los motores (0-255)
void setup() {
pinMode(derA, OUTPUT);
pinMode(der®, OUTPUT);
pinMode(izqA, OUTPUT);
pinMode(izqB, OUTPUT);
}
void loop() {
analogWrite(derB, 0); // Detiene los Motores
analogWrite(izqB, 0);
delay (500);
analogWrite(derA, vel); // Frente 2 segundos
analogWrite(izqA, vel);
delay (2000);
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeanalogWrite(derA, vel); // Derecha 0,5 segundos
analogWrite(izaA, 0);
delay (500);
analogWrite(derA, 0); // Izquierda 0,5 segundos
analogWrite(izqA, vel);
delay (500);
analogWrite(derA, 0); // Detiene los Motores
analogWrite(izqA, 0);
delay (500);
analogWrite(derB, vel); // Reversa 2 segundos
analogWrite(izqB, vel);
delay (2000);
Cédigo carro control puente H, completo.
I* Carro Inalambrico Bluetooth
ARDUINO L293D(Puente H)
5 10
6 15
9 7
1 62
SV 1,9, 16
GND 4,5, 12,13
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeEl motor 1 se conecta a los pines 3 y 6 del Puente H
El motor 2 se conecta a los pines 11 y 14 del Puente H
La fuente de alimentacion de los Motores se conecta a tierra y
el positivo al pin 8 del puennte H.
Conexion del Modulo Bluetooth HC-06 y el Arduino
ARDUINO Bluetooth HC-06
O(RX) TX
1(TX)— RX
sv svc
GND GND
'Cuidadol!! Las conexiones de TX y RX al modulo Bluetooth deben estar
desconectadas
en el momento que se realiza la carga del codigo (Sketch) al Arduino,
Conexion Sensor Ultrasonido HC-SRO4
ARDUINO Ultrasonido HC-SRO4
2 Echo
3 Trig
BV vec
GND Gnd
"
int izqA = 5;
int izqB = 6;
int derA
int derB = 10;
int vel = 255; 11 Nelocidad de los motores (0-255)
int estado =" JHinicia detenido
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeint pecho = 2; 1 define el pin 2 como (pecho) para el Ultrasonido
int ptrig = 3; I! define el pin 3 como (ptrig) para el Ultrasonido
int duracion, distancia; // para Calcular distacia
void setup() {
Serial.begin(9600); //inicia el puerto serial para comunicacion con el Bluetooth
pinMode(derA, OUTPUT);
pinMode(der8, OUTPUT);
pinMode(izqA, OUTPUT);
pinMode(izq8, OUTPUT);
pinMode(pecho, INPUT); // define el pin 2 como entrada (pecho)
pinMode(ptrig,OUTPUT); // define el pin 3 como salida (ptrig)
pinMode(13, OUTPUT);
}
void loop() {
if(Serial_available(}>0){ _// lee el bluetooth y almacena en estado
estado = Serial.read();
iffestado 1/ Boton desplazar al Frente
analogWrite(derB, 0);
analogWrite(izaB, 0);
analogWrite(derA, vel):
analogWrite(izqA, vel);
}
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajeiffestado=='b'){ J Boton IZQ
analogWrite(derB, 0);
analogWrite(izaB, 0);
analogWrite(derA, 0);
analogWrite(izqA, vel);
}
if(estado:
{1 Boton Parar
analogWrite(derB, 0);
analogWrite(izqB, 0);
analogWrite(derA, 0);
analogWrite(izqA, 0);
}
iffestado
nt M Boton DER
analogWrite(derB, 0);
analogWrite(izqB, 0);
analogWrite(izqA, 0);
analogWrite(derA, vel);
}
if(estado: J Boton Reversa
analogWrite(derA, 0);
analogWrite(izqA, 0);
analogWrite(derB, vel);
analogWrite(izqB, vel);
{I Boton ON, se mueve sensando distancia
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizajedigitalWrite(ptrig, HIGH); // genera el pulso de trigger por 10us
delay(0.01);
digitalWrite(ptrig, LOW);
duracion = pulseln(pecho, HIGH); 1/ Lee el tiempo del Echo
distancia = (duracion/2) / 29; calcula la distancia en centimetros
delay(10);
if (distancia <= 15 && distancia >=2){ _// si la distancia es menor de 15cm
digitalWrite(13, HIGH); J Enciende LED
analogWrite(derB, 0); 11 Parar los motores por 200 mili segundos
analogWrite(izqB, 0);
analogWrite(derA, 0);
analogWrite(izqA, 0);
delay (200);
analogWrite(derB, vel); 11 Reversa durante 500 mili segundos
analogWrite(izqB, vel);
delay(500);
analogWrite(derB,
/ Girar durante 1100 milisegundos
analogWrite(izqB, 0);
analogWrite(derA, 0);
analogWrite(izaA, vel);
delay(1100);
digitalWrite(13, LOW);
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizaje}
else{ 11 Sino hay obstaculos se desplaza al frente
analogWrite(derB, 0);
analogWrite(izqB, 0);
analogWrite(derA, vel
analogWrite(izgA, vel);
}
iffestado=="g){ _‘// Boton OFF, detiene los motores no hace nada
analogWrite(derB, 0);
analogWrite(izqB, 0);
analogWrite(derA, 0);
analogWrite(izqA, 0);
Centro Educative Guaymax
Innovacién, libertad y devocién por el aprendizaje
También podría gustarte
Formato IEEE
Aún no hay calificaciones
Formato IEEE
8 páginas
Arduino
Aún no hay calificaciones
Arduino
8 páginas
Termo Tablas
Aún no hay calificaciones
Termo Tablas
68 páginas
Hino 1 300
Aún no hay calificaciones
Hino 1 300
40 páginas
Hino 3 300
Aún no hay calificaciones
Hino 3 300
40 páginas