#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#include <Arduino.h>
#include "HX711.h"
const int LOADCELL_DOUT_PIN = 9;
const int LOADCELL_SCK_PIN = 8;
HX711 scale;
#include <Servo.h>
int servoPin1=6;
int servoPin2=5;
int servoPin3=4;
int servoPin4=3;
Servo servo1, servo2, servo3, servo4;
int AP=13;
int AN=7;
int BP=4;
int BN=11;
int motor=10;
int x=0;
int y=0;
int PushB1=A0;
int PushB2=A1;
int PushB3=A2;
int PushB4=A3;
int PushB5=A4;
float credit=0;
void setup() {
lcd.init();
lcd.backlight();
lcd.print(" WELCOME ");
delay(2000);
lcd.clear();
lcd.print(" RICE VENDO ");
delay(2000);
lcd.clear();
pinMode(AP,OUTPUT);
pinMode(AN,OUTPUT);
pinMode(BP,OUTPUT);
pinMode(BN,OUTPUT);
pinMode(motor,OUTPUT);
pinMode(PushB1,INPUT);
pinMode(PushB2,INPUT);
pinMode(PushB3,INPUT);
pinMode(PushB4,INPUT);
pinMode(PushB5,INPUT);
Serial.begin(9600);
servo1.attach(servoPin1);
servo2.attach(servoPin2);
servo3.attach(servoPin3);
servo4.attach(servoPin4);
scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN);
scale.set_scale(420);
scale.tare();
}
void loop() {
lcd.setCursor(0,0);
lcd.print("AVAILABLE CREDITS:");
lcd.setCursor(0,1);
lcd.print(credit);
delay(100);
int val1=analogRead(PushB1);
int val2=analogRead(PushB2);
int val3=analogRead(PushB3);
int val4=analogRead(PushB4);
int val5=analogRead(PushB5);
Serial.println(val1);
Serial.println(val2);
Serial.println(val3);
Serial.println(val4);
Serial.println(val5);
if (scale.is_ready())
{
credit = scale.get_units(1);
}
if(credit>0&&val4)
{
servo3.write(45);
delay(5000);
servo3.write(90);
credit=0;
}
if(val5)
{
servo4.write(45);
delay(10000);
servo4.write(90);
}
if(val1>1000)
{
digitalWrite(motor,1);
y=0;
}
if(val1<1000)
{
y=y+1;
Serial.println(y);
Serial.println("");
}
if(y>=100)
{
digitalWrite(motor,0);
}
if(val2>1000)
{
servo1.write(45);
delay(5000);
servo1.write(90);
}
if(val3>1000)
{
servo2.write(45);
delay(5000);
servo2.write(90);
}
}