#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Stepper.h>
// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27,20,4);
const int stepsPerRevolution = 200;
// initialize the stepper library on pins 6 through 9:
Stepper myStepper(stepsPerRevolution, 6, 7, 8, 9);
unsigned long timer1 =0;
// Defining Buttons For Menu + Integer that keeps track of the menu position
#define upButton 10
#define downButton 11
#define selectButton 12
#define backButton 5
int menu = 1;
int state = 0;
int timeWash = 6000;
void setup(){
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
Serial.println(menu);
lcd.init(); // Initialize LCD
myStepper.setSpeed(60); // Initialize stepper motor
// Print a message to the LCD.
lcd.backlight();
lcd.setCursor(3,0);
lcd.print("Hello, world!");
pinMode(upButton, INPUT_PULLUP);
pinMode(downButton, INPUT_PULLUP);
pinMode(selectButton, INPUT_PULLUP);
updateMenu();
}
void loop(){
if(!digitalRead(upButton)){
menu++;
Serial.println(menu);
Serial.println("Down Pressed");
updateMenu();
delay(100);
while(digitalRead(downButton));
}
int ciao = digitalRead(upButton);
Serial.println(ciao);
if(!digitalRead(downButton)){
menu--;
Serial.println(menu);
Serial.println("Up Pressed");
updateMenu();
delay(100);
while(digitalRead(upButton));
}
if(!digitalRead(selectButton)){
Serial.println("Select Button");
executeAction();
updateMenu();
delay(100);
while(digitalRead(selectButton));
}
}
void updateMenu(){
switch (menu){
case 0:
menu = 1;
case 1:
lcd.clear();
lcd.print(">Wash Part");
lcd.setCursor(0,1);
lcd.print(" Menu 2");
break;
case 2:
lcd.clear();
lcd.print(" Wash Part");
lcd.setCursor(0,1);
lcd.print(">Menu 2");
break;
}
}
void executeAction(){
switch (menu){
case 1:
state = 1;
spinMotorWash();
break;
}
}
void spinMotorWash(){
lcd.clear();
lcd.print("* WASHIN STAGE *");
lcd.setCursor(0,1);
int timeWashDivide = timeWash/16;
for(int i=0; i< 16 ; i++){
// Display stuff here
for(int j =0; j<timeWashDivide; i++){
myStepper.step(20);
lcd.setCursor(0,1);
delay(1);
Serial.println(j);
}
Serial.println(i);
}
int state = 0;
timer1 = 0;
}