Buenas tardes,
Hoy os voy a mostrar el desarrollo desde los componentes básicos de un proyecto domótico, incluyendo su programación, mediante un control remoto infrarrojo vamos a encender 4 bombillas, mover un motor servo y encender una alarma.
El montaje que he considerado es el siguiente:
- Botón 1: Enciende/apaga bombilla 1
- Botón 2: Enciende/apaga bombilla 2
- Botón 3: Enciende/apaga bombilla 3
- Botón 4: Enciende/apaga bombilla 4
- Botón 5: Apaga todas las bombillas
- Botón 6: Enciende todas las bombillas
- Botón 7: Mueve el motor a la izquierda
- Botón 8: Mueve el motor a la derecha
La programación en C++ es algo complicado. El código es muy largo, os resumiré puntos importantes a continuación:
Tenemos que incluir las libarías del servo y el control infrarrojo al principio del programa:
#include <Servo.h>
#include <IRremote.h>
Para iniciar el loop de programación del control remoto construimos el siguiente bloque:
void loop() //algoritmo de la programación que se repitará siempre
{
if (sensor.decode(&lectura)) //Si hay una lectura del sensor IR (Se ha pulsado el control remoto)
{
switch (lectura.value) //cuando cambia alguna tecla
{
Para cada lámpara y la alarma programamos lo siguiente:
case 0xFD08F7: //código de frecuencia botón 1
if (led1 == 1)
{
digitalWrite(13,LOW); //si estaba encendido, lo apaga
led1 = 0;
}
else
{
digitalWrite(13,HIGH); //si estaba apagado, lo enciende
led1 = 1;
}
break;
Importante: los códigos de frecuencia de cada botón (Ejemplo, botón 1 = , los obtenemos de la siguiente tabla:

| Tecla | Código de frecuencia |
|---|---|
| POWER | 0xFD00FF |
| VOL+ | 0xFD807F |
| FUNC/STOP | 0xFD40BF |
| │◄◄ | 0xFD20DF |
| ►││ | 0xFDA05F |
| ►►│ | 0xFD609F |
| ▼ | 0xFD10EF |
| VOL- | 0xFD906F |
| ▲ | 0xFD50AF |
| 0 | 0xFD30CF |
| EQ | 0xFDB04F |
| ST/REPT | 0xFD708F |
| 1 | 0xFD08F7 |
| 2 | 0xFD8877 |
| 3 | 0xFD48B7 |
| 4 | 0xFD28D7 |
| 5 | 0xFDA857 |
| 6 | 0xFD6897 |
| 7 | 0xFD18E7 |
| 8 | 0xFD9867 |
| 9 | 0xFD58A7 |
No hay comentarios:
Publicar un comentario