0% encontró este documento útil (0 votos)
119 vistas56 páginas

Fundamentos de Domotica Con Arduino

Este documento introduce el tema de la domótica con Arduino. Explica que la domótica con Arduino permite crear una casa inteligente controlada por sensores y actuadores conectados a una placa Arduino. El objetivo del curso no es construir la casa domótica completa, sino aprender sobre las capacidades de Arduino utilizando módulos de bajo costo. Los estudiantes aprenderán conceptos como hardware y software de Arduino, sensores, actuadores y salidas digitales.

Cargado por

javier
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, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
119 vistas56 páginas

Fundamentos de Domotica Con Arduino

Este documento introduce el tema de la domótica con Arduino. Explica que la domótica con Arduino permite crear una casa inteligente controlada por sensores y actuadores conectados a una placa Arduino. El objetivo del curso no es construir la casa domótica completa, sino aprender sobre las capacidades de Arduino utilizando módulos de bajo costo. Los estudiantes aprenderán conceptos como hardware y software de Arduino, sensores, actuadores y salidas digitales.

Cargado por

javier
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, TXT o lee en línea desde Scribd
Está en la página 1/ 56

1.

Fundamentos
Domótica con
Arduino
¿Qué es la Domótica con Arduino?

Conocer Arduino

Hardware de Arduino

Software de Arduino

Sensores

Actuadores y otras salidas

Kit de préstamo de CATEDU


¿Qué es la Domótica con
Arduino?
Como este curso se ofrece realizar las prácticas en lenguaje gráfico o en lenguaje por bloques. Se
puede utilizar tanto en primaria como en secundaria incluso bachillerato.

¿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

¿El objetivo es crear la casa?


No, el objetivo es aprender las diferentes posibilidades que tiene el Arduino utilizando módulos de
bajo coste. La casa domótica es la excusa para llegar a este objetivo.

Luego puedes utilizar estos mismos materiales para hacer muchas cosas diferentes, por ejemplo:

Con el sensor de humedad y el servo puedes hacer un riega macetas

Con el sensor de ultrasonidos y el buzzer puedes hacer un piano invisible

Con el LDR y el láser puedes hacer otro tipo de alarma con piezas de lego

Con el sensor de ultrasonidos y el led RGB puedes hacer un semáforo-distancia

Con el sensor de ultrasonidos, el servo y el diodo RGB puedes hacer un tractor entrando

en el corral

Más opciones, o si encuentras alguno, lo puedes colgar tú mismo en el muro que te

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.

Pero ánimo, no seas un gallina !!

https://giphy.com/embed/xjUGCnG53aCBbfokdS

via GIPHY

¿Tengo que montar la


maqueta?
Tampoco es necesario, de hecho, en el módulo 2 Programación en bloques las fotos y vídeos son
sin montar la casa domótica,
La maqueta es fácil de hacerla, con dos cartones. Tú mismo.
En el módulo 3 con código se explica cómo montar la maqueta, y los vídeos y fotos son con la casa
domótica.

¿Qué es eso de una Shield?


Una Shield , dicho pronto y mal pero claro : es una placa electrónica para reducir la
electrónica, echa un vistazo si quieres a esta shield: Echidna.

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.

La utilizamos por cuestión de ahorro de espacio.


Conocer Arduino

¿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.

¿Sabías que.... ? Uno de los co-creadores de Arduino es Español, de Zaragoza: David


Cuartielles +info

¿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í

¿Qué se puede hacer con Arduino? ¿Algún ejemplo?


Realmente el límite lo marca tu imaginación pero por dar alguna pista, podrías diseñar un sistema
para la apertura y cierre de la puerta de un garaje, hacer un robot móvil que detecte objetos o que
siga una línea negra, crear un detector de luz y oscuridad, implementar un termómetro, controlar
un cilindro neumático, etc…

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.

¿Qué son las entradas y salidas?


Mediante los conectores de Arduino correspondientes a las entradas y salidas podemos comunicar
nuestros programas con el “mundo exterior”. Si queremos leer el valor de la magnitud física
medida por un sensor, por ejemplo una LDR que detecta el nivel de luminosidad, lo tendremos que
hacer conectando el sensor a uno de los pines de entrada (en este caso analógicas) de la tarjeta.

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.

¿Dónde se conectan los sensores? ¿A las entradas analógicas o


digitales?
La mayoría de sensores miden señales analógicas y proporcionan una variación de voltaje dentro
de un rango (normalmente de 0 a +5V) dependiendo de lo que varíe la magnitud física medida.
Muchos sensores son resistivos a algo (luz, temperatura, humedad,…), es decir que varían su
resistencia eléctrica con la magnitud física, pero mediante un sencillo montaje de divisor de
tensión conseguimos una variación de voltaje apta para Arduino. Estos montajes los veremos en
las prácticas.

Veamos este ejemplo:


El sensor LDR es una resistencia que cambia según la intensidad de la luz. La estrategia es
colocar el LDR en un divisor de tensión con otra resistencia de valor parecido al promedio del que
da el LDR (por ej 10k), y el valor del punto de unión proporciona una tensión entre 0 y 5V. Como es
una señal analógica, la conectamos a una entrada analógica (en la figura al A6)
Una vez realizadas las conexiones, si midieramos la salida del sensor con un voltímetro nos daría
un valor decimal, por ejemplo un nivel de luz “intermedio” (rango de 0 a 5V) de un sensor de luz
podría dar 3,3 voltios. Este tipo de información el microcontrolador no la entiende tal cual, sólo
es capaz de interpretar números binarios (“0” ó “1”) por lo que para traducir los valores analógicos
dispone internamente de un conversor analógico – digital que hará la conversión entre los dos
sistemas, de forma que podremos tener valores discretos de la medida de los sensores analógicos.
En el Arduino las entradas analógicas leen valores analógicos entre 0V y la alimentación
(normalmente 5V) y los convierten en números entre 0 y 1023 (porque lo codifica en 10 dígitos
binarios proporcionan 210 = 1024 combinaciones).

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.

Veamos el mismo ejemplo del LDR: Podemos comprar este módulo:

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.

¿Qué son las salidas digitales etiquetadas con PWM (~)?


Son salidas digitales que simulan una salida analógica. Las siglas significan Modulación por
Ancho de Pulso (Pulse Width Modulation) es decir, proporcionan una onda cuadrada con un nivel
alto (+5V) de “cierta” duración.

Los valores PWM que podemos proporcionar pueden ir desde 0 a 255.

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

¿Puedo accionar motores DC con Arduino?


Si son motores muy, muy pequeños sí sería posible aunque no es recomendable, pueden dañar la
placa. Los motores necesitan un consumo alto de corriente, sobre todo si tienen que mover cierta
carga, por lo que se recomienda o bien utilizar una tarjeta Shield o extensión de Arduino que
dispone de circuitería apta para proporcionar dicha corriente (transistores).

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

La intensidad de corriente que pueden proporcionar como salida son 20mA.

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:

Pin de referencia analógica (naranja).


Señal de tierra digital (verde claro).
Pines digitales 2-13 (verde).
Pines digitales 0-1 / entrada y salida del puerto serie: TX/RX (azul) (estándar de
comunicación serie IC2).
Botón de reset (negro).
Entrada del circuito del programador serie (marrón).
Pines de entrada analógica 0-5 (azul oscuro).
Pines de alimentación y tierra (naranja y naranja claro).
Entrada de la fuente de alimentación externa (9-12V DC)
X1 (gris). - Entrada fuente de alimentación externa
SV1: En las placas antiguas existen estos pines para conmutar si la alimentación es por el
puerto USB, ahora lo realiza automáticamente un transistor MOSFET
Puerto USB (rojo).
Las placas: Arduino Diecimila, Arduino Duemilanove o UNO y Arduino Mega están basados en los
microcontroladores Atmega168, Atmega 328 y Atmega1280 respectivamente. Trabajan a 16MHz,
una velocidad suficiente para proyectos de robótica. Su capacidad de memoria Flash van desde
16k el Atmega168 hasta 128k Atmega1280, suficientes para que quepan nuestros programas de
robótica.

SHIELDS para Arduino


Las llamadas Shields (escudos) para Arduino son tarjetas que se acoplan a la placa Arduino y
añaden funciones y potencialidad a la placa Arduino. Según mi criterio hay dos tipos de Shields:
Las educativas y las no educativas

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)

La shield del curso ARDUINO EN EL AULA, la TDR-STEAM que tiene muchas


posibilidades didácticas por su sensores (temperatura, humedad, luz, potenciometro,
pulsador, receptor IR).
La Shield k5864195 muy sencilla y barata, si lo que se busca son sensores sencillos
(pulsadores, potenciómetro) y actuadores sencillos (altavoz, leds y display 7 segmentos).

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€

permite 4 motores, motor paso a paso, servo....


Shields con relés para conectar sensores y actuadores con tensión y así no tienes
problemas de quemar el Arduino.
Shields con batería que en el caso de corte de alimentación, permiten que el Arduino no
se apague.
Entrada y salida de imagen con pantalla líquida y cámara

Y encima se pueden apilar !! consiguiendo aumentar la capacidad de tu Arduino tanto como


necesites (sin pasarte, pues pues alimentación del Arduino es limitada al menos que la Shield
tenga su propia alimentación.

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.

Tenemos dos posibilidades para alimentar Arduino:


A .- Mediante el cable USB conectado al ordenador:

Cada pin proporciona 40 mA.


El límite proporcionado por el USB es de 500 mA en total.

Si conectamos demasiada carga, la placa Arduino suele tener un comportamiento anómalo


pudiéndose resetear el micro.

B .- Utilizando una fuente de alimentación externa conectada al Jack de Arduino (fuente


de voltaje, adaptador de corriente, batería o portapilas) :

El voltaje recomendado de la fuente externa está entre 7 y 12V.


Tiene un diodo de protección para proteger la placa de cambio de polaridad accidental.
La intensidad máxima que puede entregar Arduino a los actuadores que queramos
controlar (servos, motores, relés,...) es de 1A, aunque una exposición prolongada a esta
corriente puede estropear la placa. Lo recomendable son 500 mA.
El pin serigrafiado con Vin proporciona directamente el voltaje de la fuente conectada al
Jack de Arduino (menos la caída de tensión del diodo de protección) Desde ese pin
podemos sacar un cable y alimentar a los actuadores que necesitemos. Por ejemplo, si
alimentamos con una pila externa de 9V conectada al jack, en el pin Vin tendremos
aproximadamente 9V (hay que restar la caída de tensión del diodo de protección que será
de medio voltio). Además en los pines 5V y 3.3V dispondremos también de dichos voltajes
aunque la fuente externa sea de 9V.

C.- No recomendable: Conectando el positivo (+Vcc) de la fuente externa a Vin y el


negativo a GND:

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 necesitamos hacer funcionar actuadores de bajo consumo (luces, zumbadores, etc...)


podremos trabajar directamente con el USB conectado al ordenador o conectado a un
PowerBank.
Si necesitamos mover cargas, excitar bobinas u otros elementos de mayor consumo lo
recomendable es alimentar externamente Arduino desde el Jack con un rango de 9 a 12V.

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

El microcontrolador en la placa Arduino se programa mediante dos tipos de programación:

OPCIÓN LENGUAJE POR CÓDIGO


Recomendable a partir de secundaria. Es un lenguaje basado en Wiring y permite la programación
del Arduino en un entorno de desarrollo (basado en Processing). El programa se llama ARDUINO
IDE y se puede descargar desde la página oficial de Arduino: https://www.arduino.cc/en/software.

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.

Recomendamos estas hojas resumen si vas a trabajar con código:

En Español: enlaceDrive, enlaceGithub

En Inglés: enlaceDrive, enlaceGithub, enlaceSpakrfun

OPCIÓN LENGUAJE GRÁFICO POR BLOQUES


Recomendado para primaria. Tenemos muchas posibilidades de lenguajes gráficos. Destacamos
dos:
ARDUINOBLOCKS se trabaja online, muy visual y muy amigable. Está adaptado tanto
para trabajar tanto Arduino como muchas placas controladoras y en el aula. Podemos
verlo en los siguientes cursos:
CURSO ROVER CON ARDUINO aunque no se utiliza un Arduino, sino un NodeMCU
pero la programación es exactamente igual
CURSO DE ARDUINO CON ARDUINOBLOCKS donde se utiliza el Arduino con una
placa protoboard
CURSO ARDUINOBLOCKS EN EL AULA donde se utiliza la Shield TDR-STEAM

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

CURSO DE ECHIDNA CON MBLOCK se utiliza la Shield Echidna

CURSO DE MBOT se utiliza el robot mBot

Otros softwares para programar con bloques

Snap4Arduino https://snap4arduino.rocks/run/ Online, libre... ver compartiva vs mBlock

S4A https://s4a.cat/

EN VIVO ¿Qué es eso?


Existe una posibilidad de utilizar la placa "en vivo" (lo normal es "cargar" el programa en la
placa).
Es decir, interactuando con el ordenador. El programa está en el PC, En la placa hay un
firmware que le dice que este a las órdenes del PC. De esta manera podemos por ejemplo:
- Ordenador ➡️ Placa: pulsando la tecla espacio que se encienda el led 13
- Placa ➡️Ordenador: Que por pantalla nos muestre la cantidad de luz, o que si es de
noche que suene una canción..
Que nosotros sepamos, sólo hay dos programas de hacer esto;
- mBlock
-Snap4Arduino

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

mientras que en código es

double distancia;

double fnc_ultrasonic_distance(int _t, int _e){

unsigned long dur=0;

digitalWrite(_t, LOW);

delayMicroseconds(5);

digitalWrite(_t, HIGH);

delayMicroseconds(10);

digitalWrite(_t, LOW);

dur = pulseIn(_e, HIGH, 18000);

// devuelve cuanto tarda el pulso alto en microseg; 18000 es el tiempo a esperar limite

if(dur==0)return 999.0;

return (dur/57);

// la velocidad del sonido es 344m/s = 34400 cm/seg = 0,0344 cm/microseg

// como v=e/t luego e = v*t y como cuenta la ida y la vuelta distancia = v*t/2

// luego distancia = 0,0344/2 * dur = dur/57

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.

Un lenguaje gráfico se convierte en lenguaje código, pero al revés no se puede.

Imagen Federico Coca Notas sobre ESP32 STEAMakers CC-BY-SA

El lenguaje código se traduce en lenguaje máquina (ceros y unos) entendible para el


microprocesador, pero al revés no se puede.

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

Esta herramienta https://www.tinkercad.com aparece en el Curso Arduino con código en la

práctica Comunicación entre dos Arduinos, pero también es una plataforma que sirve para hacer

los diseños de elementos 3D, ver curso Impresión 3D con Tinkercad

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.

ANALÓGICO: el sensor nos puede dar un rango de valores, normalmente se traduce en


un valor de tensión o de corriente variable en función de la señal captada al sensor. En
este caso conectaremos el sensor a una de las entradas analógicas de Arduino (A0,..., A5).
El rango de entrada será una tensión entre 0v (GND) y 5v.

Ejemplo: Una fotorresistencia es un componente electrónico cuya resistencia disminuye con


el aumento de intensidad de luz incidente. Su valor varía entre 0 y 5 v. la cantidad de
valores que pueden leer las entradas analógicas de Ardunio son de 10 bits es decir 1024
valores. De tal modo que 0 = 0 v. y 1023 = 5V.

DATOS: el sensor ofrece su información a través de una interfaz de comunicación. La


forma de comunicación puede ser por sistemas estándar como I2C o SPI o algunos
sensores usan su propio protocolo para codificar la información y debemos realizar desde
el software la decodificación correcta para interpretar los datos del sensor (normalmente
los desarrolladores de este tipo de sensores ofrecen una librería software para Arduino
que hace todo el trabajo).

Ejemplo: el sensor DHT11 que mide temperatura y humedad.

Sensores modulares más comunes.


En la actualidad existen infinidad de sensores que los fabricantes presentan en forma
modular. Esto hace que su conexión y utilización sea mucho más sencilla que la
tradicional, olvidándonos de resistencias, polaridades, cableados,… para su correcto
funcionamiento.

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:

Sensor Táctil Capacitivo.


Este pequeño sensor puede "sentir" a las personas y el tacto y la retroalimentación de
metales a un nivel de voltaje alto / bajo. Incluso aislado por alguna tela y papel, todavía puede
sentir el tacto. Su sensibilidad disminuye a medida que la
capa de aislamiento se hace más gruesa. En nuestra opinión lo preferimos frente al Sensor
pulsador pues es muy económico, duradero y fiable.

Un ejemplo de uso en

Disparo láser en Arduino con ArduinoBlocks

Apertura de puerta en Domotica con Arduino

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:

Arduino con código: Mapeo del potenciómetro

Arduino con código: Regular la luz con potenciómetro

Arduinoblocks en el aula

En Arduino con Echidna, con joystick

Domótica con Arduino con joystick

Sensor Fotocélula LDR.


El uso de fotocélulas es muy común en nuestras vidas, las encontramos en el encendido
automático de farolas, apertura de puertas,… La fotocélula es un semiconductor. Es
ampliamente utilizado en campos de interruptores de control automático como cámaras,
luces solares de jardín, lámparas de césped, detectores de dinero, relojes de cuarzo, tazas
de música, cajas de regalo, mini luces nocturnas, interruptores de control de luz y sonido, etc.
Es un sensor analógico dando valores entre 0 y 5V y como entrada analógica de un Arduino se
traduce en un rango de 0 a 1023 valores.
Un ejemplo de uso :

el interruptor crepuscular del curso Arduino con ArduinoBlocks

Medir la luz en Rover con Arduino

Medir la oscuridad en Arduino con mBlock

Hinchar un balón en Arduino con mBlock

Una manera más económica de montar este sensor es utilizar una resistencia y un LDR:

El LDR cuando más oscuridad, más resistencia


En una configuración PULL DOWN, cuanto más luz, la resistencia del LDR baja, por lo
tanto más tensión en A6

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:

Alarma por fuego en Domótica con Arduino


Sensor de Ultrasonidos.
Es un sensor digital de distancias por ultrasonidos capaz de detectar objetos y calcular la distancia
a la que se encuentra en un rango de 2 a 350 cm. Su uso es tan sencillo como enviar el pulso de
arranque y medir la anchura del pulso de retorno.

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:

Alarma en Domótica con Arduino

Piano invisible en Arduino con ArduinoBlocks,

Sensor parking en Arduino con ArduinoBlocks

Piano invisible en Arduino con mBlock

Sensor parking en Arduino con mBlock

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.

Sensor DHT11 (Temperatura y Humedad).


Este sensor de temperatura y humedad DHT11 tiene una salida de señal digital que funciona en
un rango de temperaturas entre 0 y 50ºC con un error de ± 2ºC y un rango de humedad entre 20 y
90 % ± 5% . Tiene dentro un pequeño microprocesador que lanza por el bit de datos 40 bits en
serie, los 16 primeros son la humedad y los 16 restantes es la temperatura los 8 restantes son de
comprobación. Por ejemplo 0100 0111 0000 0011 0001 1001 0000 0000 0001 1000 es 0100 0111
0000 0011 = 47.03% de humedad y 0001 1001 0000 0000 = 19.00ºC y la comprobación es la
suma de 4+7+0+3+1+9+0+0=24=11000

Ejemplos de uso:

Medir H y T con Blink en Rover con Arduino

Estación meteorológica Arduino con Arduinoblocks

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:

Fuente Luis LLamas CC-BY-NC-SA https://www.luisllamas.es/arduino-dht11-dht22/


Si queremos mejorar la sensibilidad, podemos utilizar el DHT22 que es igual pero de color blanco y
más caro. Si lo que queremos es sólo la temperatura es mejor utilizar el LM35D que tiene un rango
de temperaturas desde 0ºC a 100ºC con una sensibilidad de 2mV/ºC

Es un sensor bastante mediocre, si necesitas una precisión el doble, te recomendamos el


DHT22 que funciona exáctamente igual pero es de color blanco y más caro ⁓3€. Ver
https://www.luisllamas.es/arduino-dht11-dht22/

Sensor de humedad de suelo.


La función de este sensor es detectar la humedad del suelo. Si el suelo no tiene agua, el valor
analógico emitido por el sensor disminuirá, de lo contrario, aumentará. Se puede utilizar este
sensor para hacer un dispositivo de riego automático, puede detectar si las plantas “tienen sed” y
evitar que se marchiten. El sensor se configura con dos sondas insertadas en el suelo, cuando la
corriente atraviesa el suelo, el sensor obtendrá valor de resistencia al leer los cambios actuales
entre las dos sondas y convertir dicho valor de resistencia en contenido de humedad. Cuanto
mayor sea la humedad (menos resistencia), mayor será la conductividad del suelo. La corriente de
trabajo del sensor es menor de 20mA. El voltaje de salida es de 0 a 2,3V (Cuando el sensor está
totalmente sumergido en agua, el voltaje será 2,3V).

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

64, Dominio público

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.

Sensor de Gas (MQ2).


Este sensor analógico de gas MQ-2 se utiliza en equipos de detección de fugas de gas en
electrónica de consumo y mercados industriales. Este sensor es adecuado para detectar GLP, I-
butano, propano, metano, alcohol, hidrógeno y humo. Tiene alta sensibilidad y respuesta rápida. La
sensibilidad se puede ajustar girando 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".

Sensor de movimiento con Microondas


Tradicionalmente se utilizan sensores PIR de infrarrojos para detectar el movimiento, pero
personalmente veo que tienen falsos positivos y negativos, si quieres utilizarlos, te recomendamos
esta página de Luis LLamas

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

Esta página es un repaso rápido de las posibles salidas del Arduino

¿Qué es un actuador?

Un actuador es el nombre genérico que empleamos para cualquier dispositivo


capaz de realizar acciones en el mundo físico y que podremos controlar
desde un autómata o procesador como Arduino. En particular, usamos el
nombre actuador para los dispositivos que son capaces de generar movimiento.
Luis LLamas CC-BY-NC-SA

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

Ejemplos de uso lo puedes ver en

Curso mClon con nanoArduino con el B6612FNG

Curso Rover con Arduino con la shield L293D ESP-12E para el NODE MCU que

internamente tiene el LM298N

Curso Arduino con código con LM298N y también con un transistor

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

Ejemplos de uso de servos:

Curso Arduino con código


Curso brazo robótico del mClon con nanoArduino

Apertura de barrera por ultrasonidos en curso Arduino con ArduinoBlocks

Tractor entrando en el corral Arduino con EchidnaShield

Apertura de puerta Domótica con Arduino

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:

Las conexiones son :

SIG del IRF520N a una salida digital por ejemplo D13


VCC del IRF5020N al 5V del ARDUINO
Los dos GND del IRF520N a GND del ARDUINO
V+ y V- del IRF5020N al solenoide, da igual qué cable pues no tiene polaridad.
VIN del IRF520N al VIN del ARDUINO (son los voltios de la pilas)
Motor paso a paso

Igual que el electroimán, necesitamos un controlador que nos de la potencia necesaria para mover
el motor, el ULN2003

Imagen BY-NC-SA de Luis Llamas

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) :

Imagen BY-NC-SA de Luis Llamas

Es decir:

Paso IN1=D10 IN2=D11 IN3=D12 IN4=D13

Paso 1 ON OFF OFF OFF

Paso 2 OFF ON OFF OFF

Paso 3 OFF OFF ON OFF

Paso 4 OFF OFF OFF ON

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:

Domótica con Arduino: Apertura puerta con mBlock

Domótica con Arduino Apertura puerta con código

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

Timbre Arduino con Echidna

Arduino blocks en el aula


Leds y otros elementos visualizadores

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)

Tenemos pues que respetar su polaridad para que funcione:

Fuente Luis LLamas CC-BY-NC Encender LED con Arduino

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

Aquí puedes ver un ejemplo de semáforo en el curso Arduino con código


Se puede conectar directamente pues las salidas de Arduino tienen una limitación interna de
20mA como en este ejemplo https://www.youtube.com/watch?v=EFFSLvIF9rY

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

el potenciómetro se regula la intensidad de la luz de un LED

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.

Un ejemplo de su uso lo puedes ver en

Domótica con Arduino, interruptor crepuscular

Intermitente RGB en Arduino con ArduinoBlocks


Existen LEDS RGB que se comunican unos a otros, (ver este ejemplo en el curso mClon) como las
tiras de leds RGB que cambian de color todos simultáneamente.

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

por láser en Domótica con Arduino

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 :

en Arduino con código

Arduinoblocks en el aula

CC-BY-SA Luis Llamas


No confundas Display LCD con matriz de LEDs , o una OLED

Aclarando conceptos: Lógica invertida

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:

La descripción de cada componente lo tienes aquí:

Image not found or type unknown

Y el cable USB de conexión del Arduino al ordenador

Y lo iremos conectando a las diferentes entradas y salidas de Arduino:

COMPONENTE CONEXIÓN EN EL ARDUINO

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

LED VERDE D13

SENSOR ULTRASONIDOS TRH D12

SENSOR ULTRASONIDOS ECHO D13

Evidentemente cuando usemos el sensor de ultrasonidos prescindiremos del Bluetooth y del LED
verde

También podría gustarte