Hi,
I'm a complete newbie and am trying out a few projects using the Arduino Uno and a starter kit. I am trying to build a remote controlled countdown timer but can't get it to work. I've already configured the remote control but when I push any buttons nothing happens except the IC Receiver blinks. The LED screen's backlight comes on when I connect the USB to my Mac but it does nothing else. Attached is my Fritzing schematic and the code is below.
#include <LiquidCrystal.h>
#include<IRremote.h>
int RECV_PIN = 0;
IRrecv irrecv(RECV_PIN);
decode_results results;
LiquidCrystal lcd(10, 9, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2);
lcd.write("Enter Time:");
lcd.setCursor(9, 2);
lcd.write("seconds");
lcd.setCursor(0, 1); lcd.blink();
irrecv.enableIRIn();
Serial.begin(9600);
}
String x = "";
int y = 0;
void loop()
{
if (irrecv.decode(&results))
{
switch (results.value)
{
case 0xFFA25D: analogWrite(A5, 0); lcd.clear(); lcd.print("Enter Time:"); lcd.setCursor(9, 2); lcd.write("seconds"); x = ""; lcd.setCursor(0, 1); lcd.blink(); break; //PWR
case 0xFF02FD:
y = x.toInt();
for (int i = y; i >= 0; i--) {
if (i == 0) {
analogWrite(A5, 255);
lcd.clear();
lcd.noCursor();
lcd.print("TIME's UP");
break;
}
lcd.noCursor();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Remaining Time:");
lcd.setCursor(0, 1);
lcd.print(i, DEC);
lcd.setCursor(9, 2);
lcd.print("seconds");
delay(999);
} break; //PLAY/PAUSE
case 0xFF6897: x = x + "0"; lcd.setCursor(0, 1); lcd.print(x); break; //0
case 0xFF30CF: x = x + "1"; lcd.setCursor(0, 1); lcd.print(x); break; //1
case 0xFF18E7: x = x + "2"; lcd.setCursor(0, 1); lcd.print(x); break; //2
case 0xFF7A85: x = x + "3"; lcd.setCursor(0, 1); lcd.print(x); break; //3
case 0xFF10EF: x = x + "4"; lcd.setCursor(0, 1); lcd.print(x); break; //4
case 0xFF38C7: x = x + "5"; lcd.setCursor(0, 1); lcd.print(x); break; //5
case 0xFF5AA5: x = x + "6"; lcd.setCursor(0, 1); lcd.print(x); break; //6
case 0xFF42BD: x = x + "7"; lcd.setCursor(0, 1); lcd.print(x); break; //7
case 0xFF4AB5: x = x + "8"; lcd.setCursor(0, 1); lcd.print(x); break; //8
case 0xFF52AD: x = x + "9"; lcd.setCursor(0, 1); lcd.print(x); break; //9
}
irrecv.resume();
}
}
Is my code and/or my wiring wrong? Any suggestions would be greatly appreciated!