Receptor y transmisor en Arduino
Publicado por Andres (1 intervención) el 15/06/2021 04:04:51
Buenas noches a todos!
Estoy en la tarea de poner en marcha un receptor/transmisor con arduino, pero me esta rompiendo la cabeza ya que no funciona, el arduino con los periféricos funcionan bien como receptor o transmisor por separados ya que los probé con diferentes códigos que hay dando vueltas por ahí.
Todo funciona bien hasta la primera recepción y correspondiente transmisión por el led IR, después parece dejar de funcionar la función de irrecev.
La idea es hacer funcionar un caloventor que tiene un control remoto, que esta empezando a fallar, y usar en su lugar un control de una vieja videocasetera y aprovechar los botones extras deste control para agregar funcionalidades al caloventor como un control de temperatura a través del Arduino.
Les adjunto el código le puedan echar una leída.
Muchas gracias de antemano
Estoy en la tarea de poner en marcha un receptor/transmisor con arduino, pero me esta rompiendo la cabeza ya que no funciona, el arduino con los periféricos funcionan bien como receptor o transmisor por separados ya que los probé con diferentes códigos que hay dando vueltas por ahí.
Todo funciona bien hasta la primera recepción y correspondiente transmisión por el led IR, después parece dejar de funcionar la función de irrecev.
La idea es hacer funcionar un caloventor que tiene un control remoto, que esta empezando a fallar, y usar en su lugar un control de una vieja videocasetera y aprovechar los botones extras deste control para agregar funcionalidades al caloventor como un control de temperatura a través del Arduino.
Les adjunto el código le puedan echar una leída.
Muchas gracias de antemano
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include <IRremote.h> // importa libreria IRremote
//codigos remoto videocasetera Goldstar
#define Power 0x768928D7 // reemplaza cada instancia de Boton_1 por su valor HEX
#define Izquierda0x768940BF // reemplaza cada instancia de Boton_2 por su valor HEX
#define Derecha 0x7689C03F // reemplaza cada instancia de Boton_3 por su valor HEX
#define Play 0x768910EF
#define Stop 0x7689807F
#define Stop 0x7689D02F
//Codigos remoto caloventor
unsigned int Prender[77] = {11298, 4478, 678, 518, 680, 520, 698, 520, 678, 548, 688, 548, 694, 548, 688, 548, 686, 548, 688, 1664, 704, 1662, 706, 1636, 716, 1666, 750, 1638, 716, 1668, 728, 1666, 710, 1638, 696, 550, 704, 548, 692, 546, 670, 1634, 684, 520, 674, 548, 702, 548, 666, 516, 658, 1630, 656, 1632, 654, 1630, 654, 514, 658, 1630, 656, 1630, 654, 1630, 652, 1630, 652, 40236, 9690, 2242, 658};
unsigned int Mode [71]= {12174, 4322, 766, 622, 706, 578, 732, 620, 726, 550, 736, 524, 694, 548, 662, 548, 688, 590, 688, 1694, 708, 1664, 716, 1666, 704, 1664, 678, 1634, 680, 1664, 722, 1666, 704, 1664, 784, 470, 684, 578, 706, 1692, 724, 1694, 728, 552, 702, 550, 678, 548, 686, 520, 688, 1664, 672, 1662, 674, 518, 662, 518, 662, 1632, 660, 1634, 694, 1636, 686, 1666, 794, 40176, 9708, 2242, 712}; // UNKNOWN CDFA7E97
unsigned int Swing [71] = {12438, 4474, 714, 660, 748, 552, 754, 622, 738, 590, 736, 594, 706, 618, 728, 592, 708, 620, 736, 1708, 714, 1734, 712, 1694, 812, 1716, 774, 1712, 758, 1716, 756, 1642, 784, 1734, 848, 528, 818, 552, 908, 474, 854, 502, 810, 596, 760, 596, 746, 594, 742, 550, 786, 1668, 758, 1666, 710, 1664, 726, 1638, 696, 1664, 708, 1638, 684, 1662, 710, 1638, 694, 40232, 11866, 2170, 728}; // UNKNOWN 55A8EBF7
unsigned int Timer [79] = {1250, 19764, 2862, 19804, 994, 19782, 7242, 19836, 11688, 4474, 696, 546, 724, 550, 694, 574, 708, 616, 696, 578, 748, 550, 716, 548, 706, 548, 708, 1662, 814, 1554, 706, 1662, 702, 1660, 724, 1634, 698, 1660, 726, 1634, 702, 1662, 730, 522, 708, 548, 714, 1662, 712, 548, 718, 550, 720, 550, 724, 550, 722, 550, 716, 1662, 738, 1636, 708, 548, 716, 1664, 736, 1636, 738, 1638, 728, 1692, 748, 1634, 712, 40338, 12070, 2272, 744};
//Led IR en D3
int SENSOR = 2 ; // sensor KY-022 a pin digital 2
IRrecv irrecv(SENSOR); // establece al 2 para objeto irrecv
decode_results codigo; // crea objeto codigo de la clase decode_results
IRsend irsend;
int khz = 38; // 38kHz carrier frequency for the NEC protocol
void setup() {
Serial.begin(9600); // inicializa comunicacion serie a 9600 bps
irrecv.enableIRIn(); // inicializa recepcion de datos
}
void loop() {
Serial.println("ESPERANDO COMANDO");
if (irrecv.decode(&codigo)) { // si existen datos ya decodificados
Serial.println(codigo.value, HEX); // imprime valor en hexadecimal en monitor
if (codigo.value == Power)
{
irsend.sendRaw(Prender, sizeof(Prender) / sizeof(int), khz); // Encender caloventor
Serial.println("Prendiendo");
delay(40);
}
if (codigo.value == Play)
{
irsend.sendRaw(Mode, sizeof(Mode) / sizeof(int), khz);
Serial.println("Modo");
delay(40);
}
if (codigo.value == Stop)
{
irsend.sendRaw(Swing, sizeof(Swing) / sizeof(int), khz);
Serial.println("Swing");
delay(40);
}
irrecv.resume(); // resume la adquisicion de datos
}
delay (500); // breve demora de 100 ms.
}
Valora esta pregunta


0