Hello!!!
I have an arduino mega, a lcd 16*2 and I have a game with a hidden onion.Have a look in the code:
#include <LiquidCrystal_I2C.h>
#include <IRremote.h>
#include <Wire.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
const int RECV_PIN = 8;
IRrecv irrecv(RECV_PIN);
decode_results results;
const int lcd_position_array[4] = {1, 5, 10, 14};
void setup()
{
Serial.begin(9600);
lcd.begin();
lcd.backlight();
randomSeed(analogRead(A0));
lcd.createChar(3, sad);
lcd.createChar(4, smile);
lcd.createChar(5, onion);
irrecv.enableIRIn();
irrecv.blink13(true);
void loop()
{
if (results.value == 0xFFE01F) //number 7...
{
int chosen_position;
int pos;
buttonIsPressed = false;
lcd.setCursor(0, 1);
lcd.print("( ) ( ) ( ) ( )");
for (int j = 0; j < 140; j++)
{
pos = random(0, 4);
lcd.setCursor(lcd_position_array[pos], 1);
lcd.write(byte(5));
delay(30);
lcd.setCursor(lcd_position_array[pos], 1);
lcd.print(" ");
delay(30);
}
Serial.println(pos);
do
{
if (results.value == 0xFFA25D) //number 1
{
buttonIsPressed = true;
chosen_position = 0;
}
else if (results.value == 0xFF629D) //number 2
{
buttonIsPressed = true;
chosen_position = 1;
}
else if (results.value == 0xFFE21D) //number 3
{
buttonIsPressed = true;
chosen_position = 2;
}
else if (results.value == 0xFF22DD) //number 4
{
buttonIsPressed = true;
chosen_position = 3;
}
}
while (!buttonIsPressed);
Serial.println(chosen_position);
buttonIsPressed = false;
delay(5);
lcd.setCursor(0, 1);
lcd.print("( ) ( ) ( ) ( )");
lcd.setCursor(lcd_position_array[pos], 1);
lcd.write(byte(5));
if (pos == chosen_position)
{
lcd.setCursor(3, 0);
lcd.write(" YOU WON !!!");
lcd.setCursor(0, 0);
lcd.write(byte(4));
lcd.setCursor(15, 0);
lcd.write(byte(4));
}
else
{
lcd.setCursor(3, 0);
lcd.write(" YOU LOST !!!");
lcd.setCursor(0, 0);
lcd.write(byte(3));
lcd.setCursor(15, 0);
lcd.write(byte(3));
}
delay(2000);
lcd.clear();
}
}
I press number 7 of my IR remote control ,then the program goes to for-loop(ok),but the do-while is my problem ,because when I press 1 or 2 or 3 or 4 ,nothing happens.
Serial.print(pos) ---> I get one random number between 0-3 ,but
Serial.print(chosen_position) ---> I get nothing as I said...
I don't know why this happens,so I need your help...
Thanks!!!