Alguien puede comprobar por mi IR Remote

este es el programa , pero en mi caso emite diferentes codigos cada 2 segundos

#include <IRremote.h>

int IRPin = 3;
IRsend irsend;

void setup() {
pinMode(IRPin, OUTPUT);
}

void loop() {

delay(2000);
enviarCodigoIR(0xE817C7EA);
}

void enviarCodigoIR(unsigned long codigo) {
digitalWrite(IRPin, HIGH);
irsend.sendNEC(codigo, 32);
digitalWrite(IRPin, LOW);
}

@aeliasdiamond las cosas no son tan sencillas...

Primero, tómate 5 minutos para leer las Normas del Foro en Español (las encuentras al principio de cualquier sección de Foro) y presta atención a la forma correcta de adjuntar el código.
Luego edita tu post, y adjunta el código correctamente. Previamente usa la opción Autoformato del menú Herramientas de la IDE para que el código quede hermosamente indentado antes de copiarlo así nos facilitas su lectura.
Es para tu beneficio, te recomiendo que lo hagas.

Por otro lado, que alguien pruebe tu código implica que ese "alguien" tenga disponibles 2 placas (una para el emisor, otra para el receptor) más los componentes para armar emisor y receptor. Además debe disponer de tiempo para hacerlo.

Creo que sería más fácil si agregas una captura de los datos que estás recibiendo y que adjuntarás del mismo modo que el código (o sea, copia el texto, no pongas una captura de pantalla) para que sepamos que recibes, tal vez ni sea necesario tomarse el trabajo de armar los dispositivos.

También sería de mucha utilidad (aunque te parezca obvio) que adjuntes un esquema de las conexiones de tus placas. Puede ser una foto de un esquema hecho a mano, no somos exquisitos, lo importante es que se entienda.
De este modo, de ser necesario, replicamos exactamente lo tu que tienes armado.

Saludos

PD: Adjunta también el código que usas en el receptor.

Muchas Gracias por tus comentarios , el tema aqui es que el circuito que tengo armado funcionaba bien de hecho tengo otros mas ya programadados y funcionan bien solo que necesito modificar el programa para agregar mas codigos y delays nada del otro mundo pero al cargar el programa el ir envia codigos distintos a los programados, anexo el sketch completo asi como el diagrama del circuito y tambien las lecturas que me da al correr el programa ,

#include <IRremote.h>


int interruptorPin = 4;
int ledPin = 7;
int transistorPin = 11;

int ledIRPin = 3;
int transistorBaseResistor = 1000;

IRsend irsend;

// Definición de códigos IR
unsigned long codigo1 = 0xE817C7EA;
unsigned long codigo2 = 0x9966C7EA;
unsigned long codigo3 = 0xFC03C7EA;
unsigned long codigo4 = 0xE619C7EA;

bool programaIniciado = false;

void setup() {
  pinMode(interruptorPin, INPUT_PULLUP);
  pinMode(ledPin, OUTPUT);
  pinMode(transistorPin, OUTPUT);
  pinMode(ledIRPin, OUTPUT);

  digitalWrite(ledPin, LOW);
  digitalWrite(transistorPin, LOW);
  digitalWrite(ledIRPin, LOW);
}

void loop() {
  if (digitalRead(interruptorPin) == LOW && !programaIniciado) {
    delay(20); // Debounce
    if (digitalRead(interruptorPin) == LOW) {
      programaIniciado = true;
      digitalWrite(ledPin, HIGH);
      digitalWrite(transistorPin, HIGH);
      delay(1000);
    }
  }

  if (programaIniciado) {
    
    enviarCodigoIR(codigo1);
    delay(500);
    enviarCodigoIR(codigo2);
    delay(3000);
    enviarCodigoIR(codigo3);
    delay(5000);
    enviarCodigoIR(codigo4);
    delay(2000);
    
    digitalWrite(ledPin, LOW);
    digitalWrite(transistorPin, LOW);
    delay(1000);
    
    programaIniciado = false;
  }
}

void enviarCodigoIR(unsigned long codigo) {
  digitalWrite(ledIRPin, HIGH);
  irsend.sendNEC(codigo, 32);
  digitalWrite(ledIRPin, LOW);
}
![Captura|690x367](upload://psn2zk0l3tCP0fnIrlf96bWD9D4.jpeg)
[Diagrama Arduino.pdf|attachment](upload://oM1d1Xtks48tvBlkI4g8VwMWeiX.pdf) (206,8 KB)


programa para lectura de codigo


#include <IRremote.h>   
 
int IR = 11;     
 
void setup() { 
 
  Serial.begin(9600);           
  IrReceiver.begin(IR, DISABLE_LED_FEEDBACK);     
} 
 
void loop() { 
  if (IrReceiver.decode()) {          
    Serial.println(IrReceiver.decodedIRData.decodedRawData, HEX);  
    IrReceiver.resume();             
  }
  delay (100);                 
}

Diagrama Arduino.pdf (206,8 KB)

Moderador:
El diagrama no se ve, se supone que esta en pdf?
Tranquilamente puedes copiar en tu PC el esquema y pegarlo aca, es un simple copy & paste.

No explicas que son esos codigos que se leen a derecha
entiendo que la respuesta a 4 teclas diferentes?

los codigos que estan a la derecha son los codigos que envia el IR , son totalmente diferentes a los que quiero que envie son los 4 que estan en el programa ,
Aqui esta el Diagrama , Si alguien ya tiene algun programa y diagrama probado y que funcione al enviar codigos hexadecimales para probarlos con mi circuito se los voy a agradecer mucho ,,

Envias como NEC y recibes RAW.
Deberias recibir como NEC tmb

Prueba

void enviarCodigoIR(unsigned long codigo) {
  digitalWrite(ledIRPin, HIGH);
  irsend.sendNECRaw(codigo, 0); // del ejemplo SendDemo.ino de la librería
  digitalWrite(ledIRPin, LOW); 
}

Hermano me salvaste , te mando una Bendicion mi stress ya se desaparecio , eso fue la solucion y un cambio en el codigo simple que tambien estaba mal , comparto el Sketch ya funcionando al 100 ahora todos los codigos los envia igual siempre cada vez que se incia el programa , Muchas Gracias de nuevo y saludos a todos los del foro , son grandes personas,

#include <IRremote.h>
#include "LowPower.h"

int interruptorPin = 4;
int ledPin = 7;
int transistorPin = 11;

int ledIRPin = 3;
int transistorBaseResistor = 1000;

IRsend irsend;

// Definición de códigos IR
unsigned long codigo1 = 0xE817C7EA; //Power
unsigned long codigo2 = 0x9966C7EA; //Back
unsigned long codigo3 = 0xFC03C7EA; //Home
unsigned long codigo4 = 0xE619C7EA; //Up
unsigned long codigo5 = 0xCC33C7EA; //Down
unsigned long codigo6 = 0xE11EC7EA; //Left
unsigned long codigo7 = 0xD22DC7EA; //Right
unsigned long codigo8 = 0xD52AC7EA; //OK
unsigned long codigo9 = 0x8778C7EA; //Return
unsigned long codigo10 = 0x9D62C7EA; //Sleep
unsigned long codigo11 = 0x9E61C7EA; // *
unsigned long codigo12 = 0xCB34C7EA; // Rew
unsigned long codigo13 = 0xAA55C7EA; // Fwr
unsigned long codigo14 = 0xB34CC7EA; // Play Pause
unsigned long codigo15 = 0xAD52C7EA; // Netflix
unsigned long codigo16 = 0xAB54C7EA; // Google Play
unsigned long codigo17 = 0x9867C7EA; // Estrella TV
unsigned long codigo18 = 0x8E71C7EA; // Claro Video
unsigned long codigo19 = 0xF00FC7EA; // Vol +
unsigned long codigo20 = 0xEF10C7EA; // Vol -
unsigned long codigo21= 0xDF20C7EA; // Mute

bool programaIniciado = false;

void setup() {
  irsend.begin(ledIRPin); // Iniciar la comunicación con el sensor IR
  pinMode(interruptorPin, INPUT_PULLUP);
  pinMode(ledPin, OUTPUT);
  pinMode(transistorPin, OUTPUT);
  pinMode(ledIRPin, OUTPUT);

  digitalWrite(ledPin, LOW);
  digitalWrite(transistorPin, LOW);
  digitalWrite(ledIRPin, LOW);
}

void loop() {
  if (digitalRead(interruptorPin) == LOW && !programaIniciado) {
    delay(10); // Debounce
    if (digitalRead(interruptorPin) == LOW) {
      programaIniciado = true;
      digitalWrite(ledPin, HIGH);
      digitalWrite(transistorPin, HIGH);
      delay(1000);
    }
  }

  if (programaIniciado) {
    enviarCodigoIR(codigo3);
    delay(2000);
    enviarCodigoIR(codigo2);
    delay(2000);
    enviarCodigoIR(codigo19);
    delay(500);
    enviarCodigoIR(codigo19);
    delay(500);
    enviarCodigoIR(codigo18);
    delay(2000);
    enviarCodigoIR(codigo18);
    delay(2000);
    enviarCodigoIR(codigo21);
    delay(2000);
    
    digitalWrite(ledPin, LOW);
    digitalWrite(transistorPin, LOW);
    delay(1000);
    
    programaIniciado = false;
  }
}

void enviarCodigoIR(unsigned long codigo) {
  digitalWrite(ledIRPin, HIGH);
  irsend.sendNECRaw(codigo, 0);
  delay(100); // Agrega un pequeño retardo para asegurar el envío completo del código IR
  digitalWrite(ledIRPin, LOW);
}

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.