Arduino - Receptor y transmisor en Arduino

 
Vista:
sin imagen de perfil
Val: 2
Ha aumentado su posición en 65 puestos en Arduino (en relación al último mes)
Gráfica de Arduino

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

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder