so i have recently been using a infrared sensor to control a rgb's colour.
#include <IRremote.h>
#include <IRremoteInt.h>
//Set initial mode (Colour Value Mode) to Colour Value 1
int redpin =9;
int bluepin =10;
int greenpin =11;
int RECV_PIN = 6;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
pinMode(RECV_PIN,INPUT);
pinMode(redpin, OUTPUT);
pinMode(bluepin, OUTPUT);
pinMode(greenpin, OUTPUT);
}
void loop()
{
unsigned long lastValue = results.value;
if (irrecv.decode(&results))
{
Serial.println(results.value, HEX); // Use HEX or DEC
irrecv.resume(); // Receive the next value
}
digitalWrite(redpin, HIGH);
digitalWrite(greenpin, HIGH);
digitalWrite(bluepin, HIGH);
switch (results.value) {
case 0xFFFFFFFF:
results.value = lastValue;
break;
case 0xFF30CF: // when button 1 is pressed only red will turn on
digitalWrite(redpin, LOW);
digitalWrite(greenpin, HIGH);
digitalWrite(bluepin, HIGH);
break;
case 0xFF18E7: // when button 2 is pressed only blue will turn on
digitalWrite(bluepin, LOW);
digitalWrite(greenpin, HIGH);
digitalWrite(redpin, HIGH);
break;
case 0xFF7A85: // when button 3 is pressed only green will turn on
digitalWrite(greenpin, LOW);
digitalWrite(redpin, HIGH);
digitalWrite(bluepin, HIGH);
break;
case 0xFF10EF: // when button 4 is pressed only leds red and blue will turn on
digitalWrite(redpin, LOW);
digitalWrite(bluepin, LOW);
digitalWrite(greenpin, HIGH);
break;
case 0xFF38C7: // when button 5 is press only leds blue and gree will turn on
digitalWrite(greenpin, LOW);
digitalWrite(bluepin, LOW);
digitalWrite(redpin, HIGH);
break;
case 0xFF5AA5: // when button 6 is press only leds green and red will turn on
digitalWrite(greenpin, LOW);
digitalWrite(redpin, LOW);
digitalWrite(bluepin, HIGH);
break;
case 0xFF42BD: // when button 7 is pressed all led colours will be on
digitalWrite(greenpin, LOW);
digitalWrite(redpin, LOW);
digitalWrite(bluepin, LOW);
break;
case 0xFF4AB5:
digitalWrite(redpin, HIGH);
digitalWrite(greenpin, LOW);
digitalWrite(bluepin, LOW);
delay (250);
digitalWrite(redpin, LOW);
digitalWrite(greenpin, HIGH);
digitalWrite(bluepin, LOW);
delay (250);
digitalWrite(redpin, LOW);
digitalWrite(greenpin, LOW);
digitalWrite(bluepin, HIGH);
delay (250);
digitalWrite(redpin, HIGH);
digitalWrite(greenpin, HIGH);
digitalWrite(bluepin, LOW);
delay (250);
digitalWrite(redpin, HIGH);
digitalWrite(greenpin, LOW);
digitalWrite(bluepin, LOW);
delay (250);
digitalWrite(redpin, LOW);
digitalWrite(greenpin, HIGH);
digitalWrite(bluepin, HIGH);
delay (250);
digitalWrite(redpin, LOW);
digitalWrite(greenpin, LOW);
digitalWrite(bluepin, LOW);
delay (250);
break;
case 0xFF6897: // ALL OFF (Stop button)
digitalWrite(greenpin, HIGH);
digitalWrite(redpin, HIGH);
digitalWrite(bluepin, HIGH);
break;
}
}
and just recently its becoming hard to control(wont respond or will just flicker the light and not hold its colour. and i saw im getting random hex values in the serial monitor, like (FF30CF
FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFFFFF
CDE870EE
FF18E7
C60BDB3D
FFFFFFFF
FF30CF
FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFFFFF
FF18E7
FFFFFFFF
FF7A85
FF10EF
FF38C7
49B0F626
the ffffffffff are normal but the ones like C60BDB3D are out of nowhere and i think are causing issues. im trying to drive 4 rgb leds off of it, if that helps