Hy !
This is my first post about arduino, so hello everyone !
I’m trying to display the string of the buttons of my IR remote.
When I push “POWER” for exemple it shows “POWER” (on the arduino serial monitor),SO it’s working.
But, I want to shows the string only when I decide.
SO I wrote that it only shows the values when I enter “g”.
BUT It keep the value of the first button I pressed. Let’s imagine I press first “POWER” but i don’t want to display it, so I repressed another button like “PAUSE” and I enter “g”. The problem is that in this case , it won’t show “PAUSE” but “POWER”.
How can program in order to continually receiving the latest value of the button ? SO If press 10 buttons and I enter “g” after the 10th, it shows the value of the 10th buttton.(And not the first)
If press on “POWER” then on “PAUSE” and if I enter “g”, it shows “POWER”. But I want to show the last button that I have pressed, so “PAUSE”.
#include "IRremote.h"
char userInput;
int receiver = 11; // Signal Pin of IR receiver to Arduino Digital Pin 11
/*-----( Declare objects )-----*/
IRrecv irrecv(receiver); // create instance of 'irrecv'
decode_results results; // create instance of 'decode_results'
/*-----( Function )-----*/
void translateIR() // takes action based on IR code received
// describing Remote IR codes
{
switch(results.value)
{
case 0xFFA25D: Serial.println("POWER"); break;
case 0xFFE21D: Serial.println("FUNC/STOP"); break;
case 0xFF629D: Serial.println("VOL+"); break;
case 0xFF22DD: Serial.println("FAST BACK"); break;
case 0xFF02FD: Serial.println("PAUSE"); break;
case 0xFFC23D: Serial.println("FAST FORWARD"); break;
case 0xFFE01F: Serial.println("DOWN"); break;
case 0xFFA857: Serial.println("VOL-"); break;
case 0xFF906F: Serial.println("UP"); break;
case 0xFF9867: Serial.println("EQ"); break;
case 0xFFB04F: Serial.println("ST/REPT"); break;
case 0xFF6897: Serial.println("0"); break;
case 0xFF30CF: Serial.println("1"); break;
case 0xFF18E7: Serial.println("2"); break;
case 0xFF7A85: Serial.println("3"); break;
case 0xFF10EF: Serial.println("4"); break;
case 0xFF38C7: Serial.println("5"); break;
case 0xFF5AA5: Serial.println("6"); break;
case 0xFF42BD: Serial.println("7"); break;
case 0xFF4AB5: Serial.println("8"); break;
case 0xFF52AD: Serial.println("9"); break;
case 0xFFFFFFFF: Serial.println(" REPEAT ");break;
default:
Serial.println(" other button ");
}// End Case
delay(500); // Do not get immediate repeat
} //END translateIR
void setup()
{
Serial.begin(9600);
Serial.println("IR Receiver Button Decode");
irrecv.enableIRIn(); // Start the receiver
}/*--(end setup )---*/
void loop()
{
if (irrecv.decode(&results)) // have we received an IR signal?
{
if(Serial.available()> 0)
{
userInput=Serial.read();
if(userInput == 'g')
{
translateIR();
irrecv.resume();// receive the next value
}
}
}
}
And I don’t want to press the button after that I have enter “g”, I want my last value recorded, and when I enter “g” it shows the value.
Thanks a lot, I hope that someone will replie