Sie sind auf Seite 1von 4

/* * IRremote: IRrecvDump - dump details of IR codes with IRrecv * An IR detector/demodulator must be connected to the input RECV_PIN. * Version 0.

1 July, 2009 * Copyright 2009 Ken Shirriff * http://arcfn.com */ #include <IRremote.h> int RECV_PIN = 8; IRrecv irrecv(RECV_PIN); IRsend irsend; decode_results results; long x[9][3][2]; boolean rec; boolean buttons[8]; boolean TV; boolean DVD; boolean AR; int s; int p;// ????? No foi usada...(Rben) boolean estado; long CodeValue; long CodeLen; void RecTrue(){ int i; for(i = 0; i < 8; i++){ if(buttons[i] == 1){ x[i][s][0] = results.value; x[i][s][1] = results.bits; Serial.println("nosso valor"); Serial.println(x[i][s][0], HEX ); Serial.println("salvei seu codigo"); digitalWrite(10,HIGH); delay(2000); digitalWrite(10,LOW); } } digitalWrite(10,LOW); } void RecFalse(){ int i,j; for(j = 0; j < 8; j++){ if(buttons[j] == 1){ estado = !estado; CodeValue = x[j][s][0]; CodeLen = x[j][s][1]; for (int i = 0; i < 3; i++){

digitalWrite(11, HIGH); delay(200); digitalWrite(11, LOW); } irsend.sendNEC(CodeValue, CodeLen); irsend.sendSony(CodeValue, CodeLen); irsend.sendRC5(CodeValue, CodeLen); irsend.sendRC6(CodeValue, CodeLen); delay(100); Serial.println(""); Serial.println("enviei seu codigo"); Serial.print(CodeValue, HEX); Serial.print("("); Serial.print(CodeLen, DEC); Serial.print("bits)"); } } } void Check(){ if(TV == 1){ estado = !estado; RecFalse(); } if(DVD == 1){ estado = !estado; RecFalse(); } if(AR == 1){ estado = !estado; RecFalse(); } } void setup() { Serial.begin(9600); irrecv.enableIRIn(); // Start the receiver int i; pinMode(9, OUTPUT); // ARDUINO MEGA compreendedo que o transmissor infrared es t conectado for(i = 22; i <= 30; i++) pinMode(i, INPUT); pinMode(5, INPUT); pinMode(6, INPUT); pinMode(7, INPUT); pinMode(10, OUTPUT); // LED1 pinMode(11, OUTPUT); // LED2 estado = 0; } // Dumps out the decode_results structure. // Call this after IRrecv::decode() // void * to work around compiler issue

//void dump(void *v) { // decode_results *results = (decode_results *)v void dump(decode_results *results) { int count = results->rawlen; int i; rec = digitalRead(22); for(i = 0; i < 8; i++) buttons[i] = digitalRead(23+i); TV = digitalRead(5); DVD = digitalRead(6); AR = digitalRead(7); if (results->decode_type == UNKNOWN) { Serial.println("Could not decode message"); } else { switch(results->decode_type){ case NEC: Serial.print("Decoded NEC: "); break; case SONY: Serial.print("Decoded SONY: "); break; case RC5: Serial.print("Decoded RC5: "); break; case RC6: Serial.print("Decoded RC6: "); break; case NEC: Serial.print("Decoded NEC: "); break; } Serial.print(results->value, HEX); Serial.print(" ("); Serial.print(results->bits, DEC); Serial.println(" bits)"); } Serial.print("Raw ("); Serial.print(count, DEC); Serial.print("): "); for (int i = 0; i < count; i++) { if ((i % 2) == 1) { Serial.print(results->rawbuf[i]*USECPERTICK, DEC); } else { Serial.print(-(int)results->rawbuf[i]*USECPERTICK, DEC); } Serial.print(" "); } Serial.println(""); } void loop() {

int i; rec = digitalRead(22); for(i = 0; i < 8; i++){ buttons[i] = digitalRead(23+i); } TV = digitalRead(5); DVD = digitalRead(6); AR = digitalRead(7); if (TV == 1){ s = 1; } if (DVD == 1){ s = 2; } if (AR == 1){ s = 3; } if (irrecv.decode(&results)) { //Serial.println(results.value, HEX); dump(&results); irrecv.resume(); // Receive the next value if (rec == 1) RecTrue(); } if (rec == 0) Check(); }

Das könnte Ihnen auch gefallen