// Khai báo chân điều khiển động cơ
int stepPin = 4;
int dirPin = 3;
int enPin = 5;
int cambien1 = 22;
int tachly = 8;
int TC1 = 9;
int TC2 = 11;
int TC3 = 12;
int cambien2 = 23;
int congtac1 = 27;
int congtac2 = 28;
int congtac3 = 29;
int da = 10;
int congtac4 = 30;
int cambien3 = 24;
int suadac = 14;
int siro = 15;
int cambien4 = 25;
int cambien5 = 26;
// Số bước cần di chuyển
int stepsPerRevolution = 200;
int steps = stepsPerRevolution/5;
void setup() {
// Cấu hình chân điều khiển
pinMode(stepPin, OUTPUT);
pinMode(dirPin, OUTPUT);
pinMode(enPin, OUTPUT);
pinMode(tachly, OUTPUT);
pinMode(cambien1, INPUT);
pinMode(TC1, OUTPUT);
pinMode(TC2, OUTPUT);
pinMode(TC3, OUTPUT);
pinMode(cambien2, INPUT);
pinMode(congtac1, INPUT);
pinMode(da, OUTPUT);
pinMode(suadac, OUTPUT);
pinMode(siro, OUTPUT);
pinMode(cambien3, INPUT);
pinMode(cambien4, INPUT);
pinMode(cambien5, INPUT);
pinMode(congtac2, INPUT);
pinMode(congtac3, INPUT);
pinMode(congtac4, INPUT);
Serial.begin(9600);
// Cài đặt chiều quay thuận
digitalWrite(dirPin, HIGH);
}
int thanhtoan = 1;
int sdsignal = "Yes";
int srsignal = "Yes";
void loop()
{
if (thanhtoan == 1)
{
// Tách ly
digitalWrite(tachly, HIGH);
delay(2000);
digitalWrite(tachly, LOW);
delay(1000);
// Có ly
while(digitalRead(cambien1) == HIGH)
{
for (int i = 0; i < steps; i++)
{
digitalWrite(stepPin, HIGH);
delayMicroseconds(500);
digitalWrite(stepPin, LOW);
delayMicroseconds(500);
}
int n = 1;
int m = 1;
while (n==1)
{
// Chọn trái cây
digitalWrite(TC1, HIGH);
delay(2000);
digitalWrite(TC1, LOW);
delay(1000);
if (digitalRead(congtac1) == HIGH)
{
m++;
delay(100);
Serial.println(m);
}
if (m >= 3)
{
digitalWrite(TC1, LOW);
delay(1000);
m=0;
while(digitalRead(cambien2) == HIGH)
{
digitalWrite(TC1, LOW);
for (int j = 0; j < steps; j++)
{
digitalWrite(stepPin, HIGH);
delayMicroseconds(500);
digitalWrite(stepPin, LOW);
delayMicroseconds(500);
n=0;
}
int a = 1;
int b = 1;
while (a==1)
{
// Chọn đá
digitalWrite(da, HIGH);
delay(2000);
digitalWrite(da, LOW);
delay(1000);
if (digitalRead(congtac4) == HIGH)
{
b++;
delay(100);
Serial.println(b);
}
if (b >= 2)
{
digitalWrite(da, LOW);
delay(1000);
b=0;
while(digitalRead(cambien3) == HIGH)
{
digitalWrite(da, LOW);
for (int k = 0; k < steps; k++)
{
digitalWrite(stepPin, HIGH);
delayMicroseconds(500);
digitalWrite(stepPin, LOW);
delayMicroseconds(500);
a=0;
}
//Chọn sữa đặc + siro
while (sdsignal == "Yes")
{
digitalWrite(suadac, HIGH);
delay(2000);
digitalWrite(suadac, LOW);
delay(1000);
while (digitalRead(cambien4) == HIGH)
{
digitalWrite(suadac, LOW);
for (int k = 0; k < steps; k++)
{
digitalWrite(stepPin, HIGH);
delayMicroseconds(500);
digitalWrite(stepPin, LOW);
delayMicroseconds(500);
sdsignal = 0;
}
while (srsignal == "Yes")
{
digitalWrite(siro, HIGH);
delay(2000);
digitalWrite(siro, LOW);
delay(1000);
while(digitalRead(cambien5) == HIGH)
{
digitalWrite(siro, LOW);
for (int k = 0; k < steps; k++)
{
digitalWrite(stepPin, HIGH);
delayMicroseconds(500);
digitalWrite(stepPin, LOW);
delayMicroseconds(500);
srsignal = 0;
}
digitalWrite(enPin, HIGH);
thanhtoan = 0;
}
}
}
if (sdsignal == "No")
{
for (int k = 0; k < steps; k++)
{
digitalWrite(stepPin, HIGH);
delayMicroseconds(500);
digitalWrite(stepPin, LOW);
delayMicroseconds(500);
}
while (srsignal == "Yes")
{
digitalWrite(siro, HIGH);
delay(2000);
digitalWrite(siro, LOW);
delay(1000);
while (digitalRead(cambien5) == HIGH)
{
digitalWrite(siro, LOW);
for (int k = 0; k < steps; k++)
{
digitalWrite(stepPin, HIGH);
delayMicroseconds(500);
digitalWrite(stepPin, LOW);
delayMicroseconds(500);
srsignal = 0;
}
digitalWrite(enPin, HIGH);
thanhtoan = 0;
}
}
}
}
}
}
}
}
}
}
}
}
}