im trying to make an lcd menu with button controls. whenever i try to raise the current screen number to change screens it [offensive phrase removed] out.
Here is my code:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
const int en = 2, rw = 1, rs = 0, d4 = 4, d5 = 5, d6 = 6, d7 = 7, bl = 3;
const int i2c_addr = 0x3F;
LiquidCrystal_I2C lcd(i2c_addr, en, rw, rs, d4, d5, d6, d7, bl, POSITIVE);
char Show[5] = {"|/-"};
uint8_t SpecialChar [8]= {0x00, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00};
String testing[] = {"testing1","testing2","testing3","testing4","testing5","testing6","testing7","testing8"};
int down = 8;
void setup() {
Serial.begin(9600);
pinMode(down, INPUT);
digitalWrite(down,HIGH);
lcd.begin(16,2);
lcd.setCursor(0,0);
lcd.print("Loading Dog");
delay(1000);
lcd.setCursor(0,1);
lcd.print("|");
delay(1000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Loading Dog");
lcd.setCursor(0,1);
lcd.print(char(0));
delay(1000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Loading Dog");
lcd.setCursor(0,1);
lcd.print("-");
delay(1000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Loading Dog");
lcd.setCursor(0,1);
lcd.print("/");
delay(1000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Loading Dog");
lcd.setCursor(0,1);
lcd.print("|");
delay(1000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Loading Dog");
delay(1000);
lcd.clear();
delay(1000);
lcd.setCursor(0,0);
lcd.print(testing[0]);
}
int i = 0;
void loop() {
int ButtonDown = digitalRead(down);
if (ButtonDown == LOW){ //going to next screen
i++;
lcd.clear();
lcd.setCursor(0,0);
lcd.print(testing[i]);
}
}
Here is my wiring
