#include <Servo.h>
#include <LiquidCrystal.h>
//Initialize Pins
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);
int ledR = 7;
int ledG = 6;
int inputPIR = 5;
int SWR = 4;
int SWG = 2;
//Initialize States
int val = 0;
int close = 0;
int open = 180;
int pirState = LOW;
int keystateR = LOW;
int keystateG = LOW;
Servo myservo;
void setup()
{
pinMode(ledR, OUTPUT);
pinMode(ledG, OUTPUT);
pinMode(SWR, INPUT);
pinMode(SWG, INPUT);
pinMode(inputPIR, INPUT);
lcd.begin(16, 2);
myservo.attach(3);
myservo.write(close);
digitalWrite(ledR, HIGH);
}
void loop()
{
keystateR = digitalRead(SWR);
keystateG = digitalRead(SWG);
if (keystateG == HIGH && keystateR == LOW)
{
myservo.write(open);
digitalWrite(ledR, LOW);
digitalWrite(ledG, HIGH);
delay(500);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Insert Can");
lcd.println();
val = digitalRead(inputPIR);
if (val == HIGH && keystateR == LOW)
{
myservo.write(close);
digitalWrite(ledG, LOW);
digitalWrite(ledR, HIGH);
delay(2000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Processing");
lcd.println();
delay(2000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("You earn ?");
lcd.println();
delay(2000);
}
else if (val == LOW && keystateR == HIGH)
{
return;
}
}
else if (keystateR == HIGH && keystateG == LOW)
{
delay(1500);
digitalWrite(ledR, HIGH);
digitalWrite(ledG, LOW);
delay(1000);
lcd.clear();
lcd.print("dfg");
lcd.println();
}
}