I am new to arduino and programming in general. I am trying to make an arduino coffee grinder/maker.
Having trouble navigating the menu based on values from reading a joystick. I have posted with a similar problem before but have completely rewritten the script. Please help I have been stuck for days.
* This script operates all functions for the coffee maker
* The following pins are:
*
* A0 joystick x direction designated
* A1 joystick y direction designated
* A2 tempurature pin designated
* 1
* 2 d7- LCD designated
* 3 d6- LCD designated
* 4 d5- LCD designated
* 5 d4- LCD designated
* 6 UltraS trigger pin designated
* 7 UltraS Echo pin designated
* 8 LED1-displayleft designated
* 9 LED2-displaycenter designated
* 10 LED3-desplayright designated
* 11 en- LCD designated
* 12 rs- LCD designated
* 13 buzzer PIN designated
* 14
* 15 Relay1- Grinder
* 16 Relay2- Heater
* 17 Relay3- water pump
* 18 Relay4-
* 19
* 20
* 21
* 30 Joystickclick-button designated
*/
// include the library code:
#include <LiquidCrystal.h>
#include <NewPing.h>
int a=0;
//LEDs and Buzzer
#define buzzer 13
#define LED1 8
#define LED2 9
#define LED3 10
//for joystick
int button= 30;
int joystickx= A0;
int joysticky = A1;
char beverage = 0;
//vars for tempurature sensor
int temppin= A2;
int preValue = 0;
float celsius;
float celsiustot=0;
float celsiusavr=0;
//for ultrasonic sensor
#define TRIGGER_PIN 6
#define ECHO_PIN 7
#define MAX_DISTANCE 200
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
int cmtot=0;
int cm;
// initialize the library by associating any needed LCD interface pin
// with the arduino pin number it is connected to
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void setup() {
// set up the LCD's number of columns and rows:
pinMode(7,INPUT);
pinMode(button,INPUT_PULLUP);
lcd.begin(16,2);
analogWrite(buzzer, 10);delay(300);analogWrite(buzzer, 0);delay(50);
analogWrite(buzzer, 100);delay(100);analogWrite(buzzer, 0);delay(50);
analogWrite(buzzer, 230);delay(100);analogWrite(buzzer, 0);delay(50);
lcd.print("Hello World!");
delay(2000);
lcd.clear();
lcd.print("Warming Up...");
delay(2000); // time required to run set up code
lcd.clear();
lcd.print("Select Beverage");
delay(2000);
lcd.setCursor(0,1); lcd.print("swipe---->>>>");
delay(1000);
Serial.begin(9600);
pinMode(11, OUTPUT);
int page=0;
}
void loop() {
int page=0;
int x=analogRead(joystickx);
x = map(x, 0, 1023, 0, 100);//mapping x inputs to 0-100
//Serial.println(x);
int y=analogRead(joysticky);
y = map(y, 0, 1023, 0, 100); //mapping y inputs to 0-100
Serial.println("y:");
Serial.print(y);
delay(500);
while ((page==0) || (page==1) || (page==2)){
if ((y<=10)){
if (page==0){ //page 1= coffee option "page"
delay(300);lcd.clear();lcd.print("Coffee");lcd.setCursor(0,1);
lcd.print("Click to Select");page=1;delay(300);}
else if (page==1){ //page 2= Hot water option "page"
delay(300);lcd.clear(); lcd.print("Hot Water");lcd.setCursor(0,1);
lcd.print("Click to Select");page=2;delay(300);}}
if (y>=90){
if (page==2){
delay(300);lcd.clear();lcd.print("Coffee");lcd.setCursor(0,1);
lcd.print("Click to Select");page=1;delay(300);}}
Serial.println(digitalRead(button));
if (digitalRead(button)==1){return;}}
/code]