Fundamentos de Domotica Con Arduino
Fundamentos de Domotica Con Arduino
Fundamentos
Domótica con
Arduino
¿Qué es la Domótica con Arduino?
Conocer Arduino
Hardware de Arduino
Software de Arduino
Sensores
¿Cuál es el objetivo?
Nuestra propuesta es utilizar el Arduino con módulos adaptados que permitan recrear una casa
inteligente y utilizando las dos posibilidades.
Mira el siguiente vídeo para que veas qué es lo que se va a hacer en este curso:
https://www.youtube.com/embed/-6dxwYZUgFQ
Luego puedes utilizar estos mismos materiales para hacer muchas cosas diferentes, por ejemplo:
Con el LDR y el láser puedes hacer otro tipo de alarma con piezas de lego
Con el sensor de ultrasonidos, el servo y el diodo RGB puedes hacer un tractor entrando
en el corral
proponemos.
¿Tengo que montarlo todo?
No, no.. es flexible: si te asusta tanto cable, puedes ir haciendo los retos por separado,
desmontando los anteriores y así queda más limpia la maqueta.
https://giphy.com/embed/xjUGCnG53aCBbfokdS
via GIPHY
Sin Shield :
Con Shield :
Realmente utilizaremos una pequeña Shield, (no sé si realmente llamarla así, pues no tiene
electrónica integrada) y es una pequeña placa Protoboard, pero perfectamente puedes utilizar una
placa Protoboard normal sin esta Shield.
¿Qué es Arduino?
Arduino es una tarjeta electrónica que integra básicamente a un microcontrolador y un conjunto de
pines de conexión de entradas y salidas que permiten, mediante un determinado programa,
interaccionar con el medio físico mediante sensores y actuadores electrónicos. De esta forma
podrás crear tus propios proyectos tecnológicos, dotarlos de sensores que detecten magnitudes
físicas como luz, calor, fuerza, etc… y en base a esa información, escribiendo un programa, activar
otros dispositivos (actuadores) como pequeñas bombillas, ledes, servomotores, pequeños motores
DC, relés, etc… Los sensores se conectan a los pines de entrada y los actuadores a los de salida.
¿Qué es un microcontrolador?
Es un circuito integrado que se puede programar, o sea que puede ejecutar las órdenes que tenga
almacenadas en su memoria. Tiene las tres funciones principales de un computador: la unidad
central de proceso, memoria y entradas y salidas.
Arduino utiliza la marca ATMEL, y el modelo de microcontrolador depende del tipo de tarjeta, por
ejemplo la tarjeta Arduino Uno utiliza el micro ATMEL MEGA 328P. Si quieres saber las entrañas de
esta placa aquí
En este manual tienes múltiples ejemplos de pequeños proyectos para el aula, aunque Arduino es
una herramienta que también se utiliza en el ámbito profesional para monitorización de sensores y
automatización a pequeña escala por su flexibilidad, fiabilidad y precio.
De esta forma con una simple instrucción de lectura en el programa, podremos obtener el valor de
la magnitud física. Si nuestra intención es actuar o “hacer algo” una vez leído el valor del sensor,
por ejemplo encender un led si el sensor de luminosidad detecta oscuridad, tendremos que
conectar el actuador (en este caso el led) a un pin de salida que proporcionará la corriente
necesaria para activarlo.
En Arduino las entradas pueden ser analógicas o digitales y las salidas sólo digitales. Cada pin
digital tiene doble función entrada o salida. En la zona de configuración del programa hay que
indicar explícitamente mediante una instrucción cuál es función desempeña un determinado pin.
Por ejemplo, si la entrada analógica lee un valor de 3,3V y la fuente de alimentación es 5V,
la señal analógica que lee Arduino, haciendo una regla de 3, tiene un valor de 3,3 * 1023 / 5
= 675,18 = 675
Mapeo
Para convertir estos valores 0 -1023 a valores más legibles, por ejemplo 0 - 100 para
representarlo en % o 0-5 para que represente la medida en voltios ... veremos en
programación la función mapear
La mayoría de los sensores nos lo venden ya preparados montados en una pequeña placa
electrónica y con circuitos integrados auxiliares para no tener que estar haciendo divisores de
tensión. Pueden tener salida analógica o salida digital, que en este caso lo tenemos que conectar
a cualquier entrada digital D0 hasta D13.
Estos módulos proporcionan 3 pines: dos que son la alimentación, (0V, GND o - ) y (+5V V+o Vcc)
y el pin que proporciona la lectura (Vout o D0 o I/O). En el caso de que sea un sensor que mida una
magnitud analógica como en este caso la luz, suelen proporcionar un potenciómetro para
determinar qué luminosidad se considera un 0 o un 1.
¿Hay sensores digitales que no estén en una placa electrónica?
Las entradas digitales sin una placa electrónica son cuando las señales a leer son valores discretos.
Por ejemplo queremos poner un pulsador o un interruptor que encienda un led. Hacemos un
montaje que cuando se pulse, entren 5 voltios en el pin digital de entrada y cuando no se pulse
que “entren” 0 voltios. De esta manera la lectura del pin digital de entrada será “HIGH” con 5
voltios o “LOW” con 0 voltios.
Veremos más adelante que un interruptor no es un simple cable que conectamos a +5V o a 0V
pues ¿Qué valor lee Arduino mientras levantamos el cable de un sitio a otro?, para ello veremos
configuraciones Pull-up o Pull-down que se repiten en muchos sensores.
Un valor bajo es una señal cuadrada donde el pulso es pequeño comparado con el periodo
(ver figura primera señal) por lo tanto el Valor medio es bajo.
Un valor mitad, es decir 255/2 = 127 o 128, corresponde a una señal cuadrada perfecta
(ver figura segunda señal) por lo que el Valor medio es la mitad, si 5V es la tensión de
alimentación, sería 2,5V.
Un valor alto es una señal cuadrada donde el pulso es grande comparado con el periodo
(ver figura la tercera señal) por lo tanto el Valor medio es alto
Un valor 0 corresponde a un 0V analógico y sería una señal sin pulso
Un valor 255 corresponde a la máxima tensión (la de alimentación (normalmente 5V).
La frecuencia es de 490Hz para los pines 3, 9, 10, 11 y de 980Hz para los pines 5 y 6 en
un Arduino UNO o Nano
De esta manera podemos simular señales analógicas, esto es muy útil para activar servomotores y
llevarlos a una posición determinada o variar la luminosidad de un led o en los motores de los
robots que vayan más deprisa o más despacio
En el curso Arduino con código utiliza una Shield llamada Edubásica que dispone de un
transistor y un circuito integrado LM293 para realizar esta función, además de otras
ventajas para el aprendizaje de Arduino.
En el curso Rover con Arduino utiliza Shield motor para NodeMCU
Hardware de Arduino
Placa Arduino
Arduino puede tomar información del entorno a través de sus pines de entrada de toda una gama
de sensores y puede afectar aquello que le rodea controlando luces, motores y otros actuadores.
Entradas y salidas
La placa Arduino UNO consta de:
DIGITALES:
14 entradas/salidas digitales D0-D13 previamente hay que configurarlas o entradas
o salidas. Que operan a 5 ó 0 voltios. Cada pin puede proporcionar o recibir como
máximo 40 mA.
Los pines D0 y D1 son compartidos por el puerto USB por lo tanto no se pueden
utilizar si se está comunicando con el ordenador, están marcados como TX/RX
(transmisión y recepción puerto serie).
ANALOGICAS
6 entradas analógicas A0 al A5 con una resolución de 10 bits que proporcionan un
número entero de 0 a 1023. Por defecto miden de 0 voltios (masa) hasta 5 voltios.
6 salidas pseudo-analógicas, en los pines digitales 3, 5, 6, 8, 10 y 11 son PWM (Pulse
Width Modulation) y como hemos visto, pueden proporcionar una salida cuadrada
que su valor medio puede estar entre 0 y 5V
Pines de la placa
Elementos con los que podemos interactuar: (tomando como ejemplo la placa USB). Empezando en
el sentido de las agujas del reloj desde el centro de la parte superior:
Shields educativas
Hay muchas Shields Educativas, vamos a ver unos pocos ejemplos
La shield del curso Arduino con código EDUBASICA, que integra algunos sensores y
actuadores, pero lo que destaca es que además tiene la opción de conexión de motores o
actuadores que requieran potencia, pues la placa Arduino por sí sola no puede
proporcionar la suficiente intensidad para alimentar motores, relés o electroválvulas. El
límite de intensidad que proporciona cada una de las salidas digitales es de 40 mA. Para
poder activar estos dispositivos tendremos que montar un circuito externo adicional con
transistores o circuitos integrados específicos para motores, como es el caso del LM293,
que entregan la intensidad suficiente. Para facilitarnos la tarea esta placa integra un
LM293 y un transistor de potencia, en total 5 salidas de potencia.
La shield del curso ECHIDNA que tiene integrados sensores y actuadores como el
acelerómetro, sensor de luz, pulsadores, potenciómetro, altavoz... y destaca el Joystick
con la posibilidades de gamificación que se puede hacer con este elemento. También
destaca el modo MAKEY que permite convertir los pines analógicos y los digitales D2 D3
en pines sensibles al tacto, con las mismas posibilidades que la placa MAKEY MAKEY (ver
curso Makey Makey). Actualmente Echidna ya no fabrica esta Shield sino comercializa la
ECHIDNA BLACK que no es una shield sino es autónoma (es decir, NO necesita la placa
Arduino, la tiene integrada)
Shield Protoboard que simplemente tiene una placa para hacer los prototipos. Por
ejemplo Curso de Domótica con Arduino
Shields no educativas
Es difícil elegir unos ejemplos de toda la variedad comercial que existe y tanta vitalidad de
versiones (ver lista), preferimos que en caso de que necesites alguna función extra a tu Arduino,
busques en ese momento cual es la mejor Shield que se adapta a tu proyecto. Es importante que
sepas que existen Shields para todo, por ejemplo para...
Agregar conectividad al Arduino, ya sea por red móvil (3G, 4G), por Wifi, Bluetooth o por
cable Ethernet o incluso localización GPS.
Agregar potencia a las salidas para conectar por ejemplo motores, como el de Edubásica
pero más especializado en esta función y con más salidas pero por ejemplo la L293D ⨤7€
https://giphy.com/embed/O71r0jHck9jB6
via GIPHY
Alimentación eléctrica de
Arduino
Uno de los aspectos claves para el buen funcionamiento de proyectos con Arduino, es que no
incluyan elementos que consuman una intensidad superior a 200 mA como motores, relés,
electroválvulas, etc.. Si los incluyen, entonces todo falla, debido a que no se ha alimentado
correctamente la placa.
Podemos alimentar Arduino externamente si necesidad de conector Jack a través de Vin y GND el
problema es que nos saltamos un diodo de protección que evita que se queme el circuito por un
exceso de corriente.
CONCLUSIÓN:
Si vas a utilizar elementos que requieran más de 800mA tienes que usar la alimentación
externa del Jack y alimentar esos elementos por el pin Vin del Arduino.
Si esos elementos van a ser alimentados de forma independiente. ES IMPORTANTE UNIR
LAS MASAS, En caso contrario, romperás la placa Arduino.
En este ejemplo se ha conectado el motor a una tensión externa (la pila) y la placa Arduino
al USB fíjate como se han unido las masas
Opcionalmente se ha optado por unir el + de la pila con Vin. Eso equivale a conectar la pila
al Jack. Esto hace que si quitamos la alimentación USB, la placa Arduino sigue alimentada.
Es recomendable unir la fuente externa (pila) al jack y no como se muestra, pues así
tienes un diodo de protección que te protege la placa Arduino en el caso de que cambies
la polaridad de la pila de forma accidental. ¿Porqué en este circuito no se ha hecho así?
Porque en Tinkercad no he encontrado un Jack.
https://www.tinkercad.com/embed/5jwVKqxbivr?editbtn=1
Software de Arduino
Hay otra posibilidad que es utilizarlo online, con la ventaja de tener tus proyectos "en la
nube" y no depender del equipo. OJO, TIENES QUE TENER INSTALADO EL SOFTWARE
CREATE AGENT
https://create.arduino.cc/getting-started/plugin/welcome
En los cursos de CATEDU se ha utilizado el lenguaje por código empezando desde cero en:
CURSO ARDUINO CON CÓDIGO donde se trabaja con el Arduino y con diferentes
sensores y actuadores, con o sin placa Shield Edubásica.
CURSO DE DOMOTICA CON ARDUINO donde se realiza una maqueta de una casa
controlada con domótica. También el curso ofrece la versión de hacer la misma maqueta
utilizando lenguaje gráfico por bloques.
CURSO ESP32 EN EL AULA donde también utiliza la Shiedl TDR Steam pero la
placa no es un Arduino, sino ESP32, la programación es exactamente igual.
MBLOCK Basado en Scratch. Aunque es un programa especializado en el robot comercial
mBot, (basado en Arduino), el mismo programa está adaptado para programar Arduino.
CURSO ARDUINO CON MBLOCK se utiliza Arduino y placa Protoboard
S4A https://s4a.cat/
VENTAJAS E INCONVENIENTES
LENGUAJE GRÁFICO POR BLOQUES vs CÓDIGO
El lenguaje gráfico por bloques es un lenguaje sencillo de utilizar, nos evita tener en cuenta
muchas librerías y cálculos.
Otra ventaja, es que el lenguaje por bloques es el único que permite programación "en vivo"
Por ejemplo, la instrucción leer valor distancia el sensor ultrasonidos, mediante programación por
bloques es
double distancia;
digitalWrite(_t, LOW);
delayMicroseconds(5);
digitalWrite(_t, HIGH);
delayMicroseconds(10);
digitalWrite(_t, LOW);
// devuelve cuanto tarda el pulso alto en microseg; 18000 es el tiempo a esperar limite
if(dur==0)return 999.0;
return (dur/57);
// como v=e/t luego e = v*t y como cuenta la ida y la vuelta distancia = v*t/2
void setup()
pinMode(6, OUTPUT);
pinMode(5, INPUT);
void loop()
{
distancia = fnc_ultrasonic_distance(6,5);
Como se puede ver en código, tiene que calcular la distancia haciendo cálculos del tiempo de
rebote del eco, mientras que el gráfico es sumamente sencillo y se centra en el objetivo del
algoritmo a crear, no en lo accesorio. Esto hace que un lenguaje gráfico por bloques se puede
aplicar desde los 8 años.
Por otra parte, el lenguaje código tiene todo el potencial, es decir, no todo está en los
lenguajes gráficos. Si se quiere cosas más avanzadas, hay que recurrir al código.
En este vídeo, en mi opinión se olvida de mBlock, Snap4Arduino, S4A pero puedes ver un vistazo
de los diferentes editores
Vale, me decanto por EDITOR GRÁFICO (bloques) y permita la opción EN VIVO ¿Cual es
mejor mBlock o Snap4Arduino ?
Ver MBLOCK VS SNAP4ARDUINO
OPCIÓN SIMULACIÓN
Incluimos dentro del apartado de Software los diferentes programas que hay para simular placas
electrónicas como Arduino, ESP32, etc...
Tinkercad
práctica Comunicación entre dos Arduinos, pero también es una plataforma que sirve para hacer
Tiene la ventaja que es aplicación online, muy visual y buscan un reflejo de la práctica real,
además de estar la herramienta adaptada al aula (gestión de alumnos y proyectos). Como
desventajas podemos decir que no tiene mucha variedad de componentes electrónicos y la
simulación es algo lenta.
https://www.youtube.com/embed/pXEv0wxW9Jo?rel=0
Wolwi
Si Tinkercad se queda corto, puedes probar esta plataforma https://wokwi.com/ con muchas
posibilidades. Es online y puede trabajar con multitud de placas: ArduinoUno, ESP32,
Raspberry,,,,
Como única desventaja que encontramos, es que echamos de menos la realidad de Tinkercad, por
ejemplo no puedes poner una placa protoboard para realizar las conexiones, pero a cambio se
gana simplicidad de cableado.
UnoArduSim
Es una aplicación local. UnoArduSim además es una aplicación portable fácil de instalar y con
los elementos de leds, motores servos ya preparados, ideal para ejemplos sencillos y para
examinar señales y no depender de Internet, pero no es tan versátil.
https://www.youtube.com/embed/WLJ_l4uGjXg?rel=0
Sensores
Esta sección es una visión rápida de las posibles entradas del Arduino y está adaptado de
este enlace. José Andrés Echevarría @cantabRobots CC-BY-NC-SA
Cualquier sistema de control podríamos decir que funciona de una manera similar a un ser
humano, salvando las distancias. Nosotros recibimos la información del mundo exterior gracias a
nuestros sentidos (oído, olfato, gusto, vista y tacto), nuestro cerebro procesa esa información y a
través de nuestros músculos o de nuestra voz realizamos diferentes acciones. Pues lo mismo
sucede con los sistemas de control, reciben información del exterior gracias a los diferentes
SENSORES, procesan esa información en sus PLACAS CONTROLADORAS (sus cerebros) tales como
Arduino y dan una respuesta utilizando sus diferentes ACTUADORES.
Un sensor es un objeto capaz de detectar magnitudes físicas o químicas y transformarlas en
variables eléctricas. Los sensores o periféricos de entrada nos permiten obtener información del
mundo real para utilizarla desde el programa de Arduino.
En la actualidad la cantidad de sensores disponibles es tan extensa como las variables que
queramos medir, desde sensores de temperatura, humedad, luminosidad,... hasta acelerómetros,
giroscopios, GPS,... pasando por detectores de gases, de pulsos cardiacos, sensores de efecto
HALL,...
La interfaz de conexión de un sensor con Arduino lo podemos clasificar en tres tipos: DIGITAL,
ANALÓGICO o DATOS.
DIGITAL: un sensor digital sólo tiene dos estados: activado/desactivado, ON/OFF, 1/0,
Alto/Bajo, ... En este caso conectaremos el sensor a una de las entradas digitales de
Arduino para leer el estado.
Ejemplo: un pulsador es un tipo de sensor sencillo que sólo nos da dos estados, “pulsado o
no pulsado”. Conectado a la placa Arduino debe generar 0v en reposo y 5v al pulsarlo. De
esta forma desde el programa de Arduino podremos leer el estado del botón.
Sensor pulsador
Es un sensor digital, que presenta dos estados; cuando se presiona el botón, emite una señal de
bajo (0V), cuando suelta el botón, emite una señal de bajo alto (5V). Datasheet
Un ejemplo de uso
en el robot mClon
Otra manera más "barata" de sustituir este módulo pulsador es poner un pulsador normal y una
resistencia (±10k), al pulsar se produce una entrada en el Arduino, hay dos configuraciones, que al
pulsar se emita un 0 lógico (configuración Pull up) o que al pulsar emita un 1 lógico
(configuración Pull down) ¿Por qué hay que poner una resistencia?
Lo "normal" es que al pulsar se emita un '1' configuración Pull down, pero hay pulsadores que
funcionan al revés, lógica invertida o pull up, por eso en la programación por bloques podemos
encontrar esto:
Un ejemplo de uso en
Potenciómetro y joystick
Un potenciómetro es una resistencia variable, es decir, cambia de valor mecánicamente, lo
tenemos en multitud de dispositivos. El joystick es internamente dos potenciómetros con un
pulsador integrado en un solo mando.
Este sensor es analógico, su salida puede ser cualquier valor entre Vcc y GND (si está en divisor
de tensión como en la placa Edubásica no llega a esos valores extremos), por lo tanto hay que
conectarlo a una entrada analógica de Arduino y como cualquier entrada analógica, proporcionará
valores entre 0 y 1023.
Ejemplos de uso:
Arduinoblocks en el aula
Una manera más económica de montar este sensor es utilizar una resistencia y un LDR:
Los módulos LDR que se venden suelen esta configuración Pull down, es decir, cuanto más luz,
más tensión:
La instrucción con Arduinoblocks ya cuenta con esta configuración Pull downUp de que cuando
más luz, más valor tiene la entrada analógica.
Hay módulos LDR ya montados, que tienen componentes activos es decir, llevan circuitos
electrónicos, transistores que amplifican etc... y dan la salida digital con un potenciómetro para
definir el rango de luz que cambia de estado lógico. Puedes ver en la figura que tiene una salida
digital D0.
O como en la figura que ofrecen las dos cosas: salida analógica A0 y digital D0.
Nosotros aconsejamos el divisor de tensión por tres razones: más barato, no implica gran
circuitería y es visible su funcionamiento frente a estos encapsulados.
Sensor llama
Este sensor de llama se puede utilizar para detectar fuego u otras luces cuya longitud de onda se
encuentra entre 760 nm ~ 1100nm.
Un ejemplo de su uso:
No es un sensor preciso, con una ligera inclinación de la superficie ya da lecturas erróneas pero
es muy barato
Ejemplos de uso:
Pines de conexión:
VCC
Trig (Disparo del ultrasonido)
Echo (Recepción del ultrasonido)
GND
Distancia = {(Tiempo entre Trig y el Echo) * (V.Sonido 340 m/s)}/2 por lo tanto en la programación
tenemos que leer esos dos pulsos y calcular la distancia.
Ejemplos de uso:
Arduinoblocks en el aula
No es un sensor con gran sensibilidad, pero para propósitos educativos cumple sus funciones. Por
dentro tiene una resistencia NTC que decrementa su resistencia si aumenta la temperatura. Hay
otros que van al revés, los PTC. Tanto los NTC como los PTC se llaman thermistores. Para la
humedad, mide la capacidad de un condensador que es sensible a la humedad, o sea, un sensor
capacitivo.
Tenemos dos opciones comerciales: Encapsulado que lo tienes preparado para conectar la
alimentación y leer por el pin de datos, o sin encapsular, que hay que colocar una resistencia de
aproximadamente 10k entre Vcc y Data
Ejemplo de uso de un DHT11 sin encapsular:
Sensor de humedad.
Este sensor analógico está diseñado para identificar y detectar la presencia de agua y su cantidad.
Puede servir para detectar el nivel de agua, para disparar una alarma en caso de una fuga de
agua, también para hacer un limpiapalabrisas automático.... puedes ver un ejemplo de uso en el
curso de Domótica con Arduino
Mide el volumen de agua caída a través de una serie de rastros de cables paralelos expuestos.
Sensor de efecto Hall.
Este es un sensor de inducción magnética. Detecta los materiales magnéticos dentro de un rango
de detección de hasta 3 cm. El rango de detección y la fuerza del campo magnético son
proporcionales. La salida es digital.
Sensor Hall. Edwin Helber Hall De Desconocido - Popular Science Monthly Volume
Edwin Helbert Hall descubrió en 1879 que en presencia de un campo magnético, un conductor que
conduzca una corriente se le producía un campo eléctrico porque las cargas eléctricas se
desviaban de su trayectoria principal, nuestro sensor simplemente mide ese campo eléctrico:
De Luis Llamas CC-BY-NC
El sensor tiene un led de color rojo que indica que hay una lectura de campo magnético.
Un ejemplo de uso lo puedes ver aquí: medir rocas magnéticas con el Rover con Arduino
Sensor inclinación
Este sensor funciona al hacerle vibrar, emitiendo una señal digital de todo o nada. El módulo del
sensor viene provisto de un potenciómetro para poder regularlo.
Sensor de golpe
Es un sensor digital que al ser golpeado este sensor envía una señal momentánea.
Sensor de pulso cardíaco.
Este módulo utiliza un LED infrarrojo (IR) ultrabrillante y un fototransistor para detectar el pulso en
el dedo. Principio de funcionamiento: Se debe colocar el dedo entre el LED infrarrojo ultrabrillante
(parte superior) mientras que el fototransistor, que queda en el otro lado, recoge la cantidad de luz
transmitida. La resistencia del fototransistor variará levemente a medida que la sangre pase a
través de su dedo.
Sensor de Alcohol.
Este sensor de gas analógico MQ-3 es adecuado para detectar alcohol. Se puede usar en un
analizador de aliento. También tiene una alta sensibilidad al alcohol y baja sensibilidad a la bencina
(éter de petróleo). La sensibilidad se puede ajustar con el potenciómetro.
Esta sección está adaptado de este enlace. José Andrés Echevarría @cantabRobots CC-BY-
NC-SA
Resistencia Flex
Es una resistencia que cuanto más se dobla más resistencia ofrece, desde 25k hasta 125k
Para utilizar esta resistencia haremos un DIVISOR DE TENSIÓN que consistirá en poner dos
resistencias en serie y repartirá la tensión total entre 0V y 5V en las dos resistencias, el punto
medio será un punto que tendrá una tensión variable en función de las dos resistencias, como la
es variable, esa tensión es variable y ya tenemos la entrada analógica:
Es decir:
La resistencia entre masa GND del ARDUINO (cable negro) y un punto en la placa
protoboard
ese punto medio conectarlo a una entrada analógica, por ejemplo A0 (cable amarillo)
Una resistencia de valor parecida a la Flex de decenas de K entre ese punto y +5V (cable
rojo en la foto)
Este sensor tiene posibilidades para usarlo en "ropa inteligente".
Personalmente prefiero los sensores de microondas. Son un radar que por efecto Doppler
pueden captar cualquier objeto en movimiento dentro de un alcance de 5-7 metros en cualquier
dirección e independiente de su temperatura. Es un buen sensor para alarmas, activación de luz
por presencia.... Curiosamente, su gran ventaja técnica es un gran inconveniente para usarlo
en el aula, con cualquier movimiento se dispara. Para saber más ver la página de Luis Llamas
Su conexión es muy sencilla, es un detector digital que hay que alimentarlo como el resto de
sensores.
Esta sección es una visión rápida de las posibles entradas del Arduino y está adaptado de
este enlace. José Andrés Echevarría @cantabRobots CC-BY-NC-SA
Actuadores y otras salidas
¿Qué es un actuador?
ACTUADORES
Motores
Con el Arduino podemos usar motores de corriente continua de juguete como en la figura, aptos
para poner un ventilador y afines por su alta velocidad de rotación, pero lo normal en la robótica
con Arduino es utilizar motores con reductoras para bajar las revoluciones como el motor amarillo :
Si quieres usar un motor, no se puede conectar directamente al Arduino (al menos de que sea de
muy baja potencia) necesita una alimentación extra, como el LM298N y las pilas., o el B6612FNG o
una shield específica.
CC-BY-NC Luis Llamas
Curso Rover con Arduino con la shield L293D ESP-12E para el NODE MCU que
Los motores pueden (y deben) de estar conectados a salidas PWM de tal manera que se
pueda regular la potencia y por lo tanto la velocidad.
Servos
Un servo convencional es un motor donde fijamos el ángulo desde 0º a 180º, pero si queremos una
rotación, existen servos rotatorios que simplemente tienen su velocidad de rotación controlada
Electroimán
El electroimán no se puede conectar directamente, utilizaremos una etapa de potencia, por
ejemplo el transistor el IRF520N que amplifique la señal del Arduino, pues las salidas de Arduino no
tienen potencia para mover el electroimán
Para dar esa potencia utilizaremos otra fuente externa, unas pilas:
Igual que el electroimán, necesitamos un controlador que nos de la potencia necesaria para mover
el motor, el ULN2003
También igual que el electroimán, necesitamos una potencia extra con las pilas:
Conexión :
Cuatro pines digitales del ARDUINO al IN1,IN2,IN3,IN4 del ULN2003 por ejemplo
D10,D11,D12,D13
El conector blanco del ULN2003 al motor paso a paso
El (+) del ULN2003 al Vin del ARDUINO
El (-) del ULN2003 al GND del ARDUINO
La configuración más sencilla es la rotación simple en sentido horario (llamada fase1) :
Es decir:
Si has entendido este ejemplo serás capaz de realizar las configuraciones que desees.
OTRAS SALIDAS
No son actuadores pues no representan movimiento pero son también salidas del Arduino como
los actuadores, luego lo vemos en esta página
Buzzer activo
Reproduce un tono de una frecuencia determinada por el fabricante cuando recibe un '1' digital. Su
conexión es muy simple:
GND a GND y VCC a 5V (ojo que están a los dos extremos, marcados en rojo y en negro)
OUT o también señalado como I/O a un pin digital, por ejemplo D13
Ejemplos de uso:
Buzzer pasivo
La diferencia de un buzzer activo con el pasivo es que el pasivo hay que mandar la onda que se
tiene que reproducir, como Arduino no puede reproducir onda puras (senoidales analógicas), se le
envía ondas cuadradas con la frecuencia que se pretende reproducir. Como se puede ver en la
figura, no tiene elementos auxiliares para reproducir un tono, es simplemente un altavoz.
Ejemplos de uso
Led normal
Un diodo es la unión de dos semiconductores P-N que sólo permite la corriente en un sentido. Un
diodo LED es un diodo, que al pasar esta corriente emite una luz. Hay de 3mm y de 5mm de
grosor, transparentes, traslúcidos y de colores (realmente son traslúcidos tintados)
Si alimentamos el LED con una tensión inferior a su tensión de polarización directa Vd ±1,4V-3,8V
el led no luce. si alimentamos con una tensión superior, la corriente que circula se dispara por lo
que se rompe. Conclusión: Hay que poner una resistencia limitante. Para calcularla te recomiendo
la página de Luis Llamas Encender LED con Arduino
https://www.youtube.com/embed/EFFSLvIF9rY
Los LEDS igual que los motores pueden se encendidos o todo o nada con salidas digitales 0
y 1 o salidas PWM de esta manera conseguimos luminosidades medias, en esta práctica con
Led RGB
Se trata de un encapsulado que integra 3 leds de los tres colores básicos. Cada color básico se
puede regular desde 0 a 255 de intensidad, luego tenemos 16 millones de tonalidades diferentes.
Neopixel
La cinta LED RGB se basa en el chip controlador WS2812B de Neopixel con el cual podemos tener
el control de cada pixel y de cada color, ya sea rojo, verde y azul a través de un solo cable de
datos.
Ver esta página de Luis LLamas Conectar Arduino con tiras led
Láser
El diodo láser es un elemento motivador, barato y fácil de usar con el Arduino pues se activa
digitalmente, si enviamos un 1 emite un rayo láser. Un ejemplo de uso lo puedes ver en la Alarma
Si quieres saber más de este componente, te recomendamos esta página de Luis Llamas.
Si tienes que comprar uno, es importante que no sea superior a 5mW, pues puede dañar
permanentemente la retina del ojo [+info].
El modelo que proponemos es de 1mW, no obstante, EVITA SIEMPRE QUE EL LÁSER
APUNTE A LOS OJOS especialmente con niños.
Display LCD
Si queremos visualizar datos de forma independiente del ordenador, existen matrices de led que
puedes ver en los cursos de mBot o mClon pero lo mejor es una pantalla Liquid Crystal Display y la
mejor forma de conectarl esta interfaz es en serrie (utilizando el protocolo I2C.)
Ejemplo de uso :
Arduinoblocks en el aula
Igual que vimos en sensores, con las configuraciones Pull up y Pull down, las salidas de cualquier
actuador PUEDEN SER LÓGICA INVERTIDA, mira en este NodeMCU (básicamente es un Arduino
con wifi, aquí está conectado con el servidor Blynk) como funciona al revés, cuando apretamos, por
lo tanto enviamos un uno a la salida, se apaga la salida !!
https://www.youtube.com/embed/GLvTBdcfKAI
Kit de préstamo de CATEDU
Nuestra propuesta es utilizar componentes electrónicos que se pueden adquirir en muchas tiendas
de electrónica, incluso online, no es necesario ir a los gigantes Amazon o AliExpress, las tiendas
electrónicas españolas ofrecen venta online con mejores precios y servicios que los anteriores.
Nuestra propuesta cuesta alrededor de 30€ y sinceramente es muy completo y más barato frente a
otros packs de domótica que ofrecen otras empresas. Los kits que se venden son bastante caros, y
es mejor comprar los componentes por separado ver opinión de Luis Llamas
Aunque para empezar puedes hacerlo con este kit de iniciación, por unos 20€, y luego ir
ampliando:
LDR A0
EJE X JOYSTICK A1
EJE Y JOYSTICK A2
SWITH JOYSTICK A3
PULSADOR ALARMA A4
PULSADOR TACTIL D2
BUZZER ACTIVO D3
SERVO D4
RGB AZUL D5
RGB ROJO D6
RGB VERDE D7
SENSOR AGUA D8
SENSOR LLAMA D9
LASER D10
TX DE BLUETOOTH D11
RX DE BLUETOOTH D12
Evidentemente cuando usemos el sensor de ultrasonidos prescindiremos del Bluetooth y del LED
verde