Buenas gente! abro este topic haber si me ayudan o dan ideas de como puedo hacer lo que busco... lo que quiero es: utilizar un emisor y un recepetor IR con UN SOLO ARDUINO para que cuando pase algo entre medio pues me diga que algo paso, asi de simple
... se corta la señal y se detecta el corte; como estoy tratando de hacerlo..
la idea es hacerlo con UN SOLO ARDUINO
ok primero intente lo mas sencillo con 2 arduinos, uno que sirva de emisor y otro que sirva de recpetor..
adjunto los codigos:
/*
EL QUE ENVIA
*/
#include <IRremote.h>
IRsend irsend;
void setup()
{
Serial.begin(9600);
}
void loop() {
irsend.sendSony(0xa90, 12);
}
// EL QUE RECIBE
#include <IRremote.h>
const int ledPin = 42;
int RECV_PIN = 32;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
pinMode(ledPin, OUTPUT);
}
void loop() {
if (irrecv.decode(&results)) {
digitalWrite(ledPin, HIGH);
Serial.println("SE CORTO");
irrecv.resume();
digitalWrite(ledPin, LOW);
}
}
basicamente esos son los codigos y pues funciona a la perfeccion pero con 2 arduino la idea es hacerlo son SOLO UNO, cuando me interpongo entre la señal del emisor y receptor detecta que se corta e imprime por serial "SE CORTO"
por cosas de logica dije.. . bueno combianre el codigo para hacerlo en UN SOLO ARDUINO y realize:
#include <IRremote.h>
const int ledPin = 35;
int RECV_PIN = 25;
IRrecv irrecv(RECV_PIN);
decode_results results;
IRsend irsend;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn();
pinMode(ledPin, OUTPUT);
}
void loop() {
irsend.sendSony(0xa90, 42);
if (irrecv.decode(&results)) {
digitalWrite(ledPin, HIGH);
Serial.println("Oh si Oh si Oh si");
irrecv.resume();
digitalWrite(ledPin, LOW);
}
irsend.sendSony(0xa90, 12);
}
ok que sucede, pues no sucede nada.. ya que si se dan cuenta en el loop ocurre que envio señal y luego el recibe y luego envia... para que funcione debe estar constantemente enviando y recibiendo a la vez...
entonces llego al punto de... ALGUN TIP AYUDA CONSEJO ?
gracias