#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
int upButton = 2;
int downButton = 3;
int selectButton = 4;
int backButton = 5;
int inPin = A1;
int vout = 8;
int menu = 1;
int stop = 0;
//int sensorValue = analogRead(A0);
float voltage = 0.0;
void setup() {
Serial.begin(9600);
lcd.init();
lcd.backlight();
lcd.setCursor(5,1);
lcd.print(" Pressure ");
lcd.setCursor(7,2);
lcd.print("Tester");
delay(1500);
pinMode(upButton, INPUT_PULLUP);
pinMode(downButton, INPUT_PULLUP);
pinMode(selectButton, INPUT_PULLUP);
pinMode(backButton, INPUT_PULLUP);
pinMode(inPin, INPUT);
updateMenu();
}
void loop() {
int sensorvalue = analogRead(A1);
voltage = (sensorvalue * 5.0 )/1024.0;
if (voltage < 0.1){
voltage = 0.0;
}
if (!digitalRead(downButton)){
menu++;
updateMenu();
delay(100);
while (!digitalRead(downButton));
}
if (!digitalRead(upButton)){
menu--;
updateMenu();
delay(100);
while(!digitalRead(upButton));
}
if (!digitalRead(selectButton)){
executeAction();
//updateMenu();
delay(100);
while (!digitalRead(selectButton));
}
if (!digitalRead(backButton)){
if (!stop) {
stop = 1;
lcd.clear();
lcd.setCursor(6,1);
lcd.print("Test");
lcd.setCursor(5,2);
lcd.print("Stopped");
}
else {
stop = 0;
updateMenu();
}
delay(100);
while (!digitalRead(backButton));
}
}
void updateMenu() {
switch (menu) {
case 0:
menu = 1;
break;
case 1:
lcd.clear();
lcd.print(">25 mBar Test");
lcd.setCursor(0, 1);
lcd.print(" 50 mBar Test");
lcd.setCursor(0,2);
lcd.print(" 100 mBar Test");
lcd.setCursor(0,3);
lcd.print(" Burst Test");
break;
case 2:
lcd.clear();
lcd.print(" 25 mBar Test");
lcd.setCursor(0, 1);
lcd.print(">50 mBar Test");
lcd.setCursor(0,2);
lcd.print(" 100 mBar Test");
lcd.setCursor(0,3);
lcd.print(" Burst Test");
break;
case 3:
lcd.clear();
lcd.print(" 25 mBar Test");
lcd.setCursor(0, 1);
lcd.print(" 50 mBar Test");
lcd.setCursor(0,2);
lcd.print(">100 mBar Test");
lcd.setCursor(0,3);
lcd.print(" Burst Test");
break;
case 4:
lcd.clear();
lcd.print(" 25 mBar Test");
lcd.setCursor(0, 1);
lcd.print(" 50 mBar Test");
lcd.setCursor(0,2);
lcd.print(" 100 mBar Test");
lcd.setCursor(0,3);
lcd.print(">Burst Test");
break;
case 5:
menu = 4;
break;
}
}
void executeAction() {
switch (menu) {
case 1:
action1();
break;
case 2:
action2();
break;
case 3:
action3();
break;
case 4:
action4();
break;
}
}
void action1() {
lcd.clear();
lcd.print("25mBar test run");
lcd.setCursor(0,1);
lcd.print("P.read= ");
lcd.print(voltage);
lcd.print("mBar");
}
void action2() {
lcd.clear();
lcd.print("50mBar test run");
lcd.setCursor(0,1);
lcd.print("P.read= ");
lcd.print(analogRead(inPin));
lcd.print("mBar");
millis();
}
void action3() {
lcd.clear();
lcd.print("100mBar test run");
lcd.setCursor(0,1);
lcd.print("P.read= ");
lcd.print(voltage);
lcd.print("mBar");
delay(10);
}
void action4() {
lcd.clear();
lcd.print("Burst test run");
lcd.setCursor(0,1);
lcd.print("P.read= ");
lcd.print(voltage);
lcd.print("mBar");
}
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r
btn2:1.l
btn2:2.l
btn2:1.r
btn2:2.r
btn3:1.l
btn3:2.l
btn3:1.r
btn3:2.r
btn4:1.l
btn4:2.l
btn4:1.r
btn4:2.r
led1:A
led1:C
lcd1:GND
lcd1:VCC
lcd1:SDA
lcd1:SCL