const int dirPin = 2;
const int stepPin = 3;
int btn_check = 0;
const int STEP_PER_REV = 300;
int speed_dec = 6000;
int r = 0, count = 0, val;
const int dirPin_2 = 4;
const int stepPin_2 = 7;
int btn_check_2 = 0;
const int STEP_PER_REV_2 = 300;
int speed_dec_2 = 6000;
int r_2 = 0, count_2 = 0, val_2;
const int trigPin = 9;
const int echoPin = 6;
long duration;
int distance;
const int trigPin_2 = 11;
const int echoPin_2 = 5;
long duration_2;
int distance_2;
int found, stock_found;
void setup() {
pinMode(stepPin, OUTPUT);
pinMode(dirPin, OUTPUT);
pinMode(12, INPUT_PULLUP);
pinMode(stepPin_2, OUTPUT);
pinMode(dirPin_2, OUTPUT);
pinMode(8, INPUT_PULLUP);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(trigPin_2, OUTPUT);
pinMode(echoPin_2, INPUT);
Serial.begin(9600);
}
void loop() {
// HC-SENSOR
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2;
digitalWrite(trigPin_2, LOW);
digitalWrite(trigPin_2, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin_2, LOW);
duration_2 = pulseIn(echoPin_2, HIGH);
distance_2 = duration_2 * 0.034 / 2;
if (distance >= 10)
{
digitalWrite(13, HIGH);
digitalWrite(10, LOW);
found = 0;
}
else if (distance <= 10)
{
digitalWrite(10, HIGH);
digitalWrite(13, LOW);
found = 1;
val = digitalRead(12);
if (val == 0)
{
count = count + 1;
}
if (count == 1)
{
btn_check = btn_check + 1;
r = 1;
while (r <= 1)
{
digitalWrite(dirPin, HIGH);
for (int x = 0; x < STEP_PER_REV; x++)
{
digitalWrite(stepPin, HIGH);
delayMicroseconds(speed_dec);
digitalWrite(stepPin, LOW);
delayMicroseconds(3000);
}
delay(1000);
r++;
btn_check++;
if (r == 2)
{
digitalWrite(stepPin, LOW);
}
// if(btn_check==6)
// {
// reverse();
// }
//Serial.println(btn_check);
}
count = 0;
}
}
if (distance_2 >= 10)
{
analogWrite(A4, 255);
analogWrite(A5, 0);
found = 0;
stock_found = 0;
}
else if (distance_2 <= 10)
{
analogWrite(A4, 0);
analogWrite(A5, 255);
found = 1;
val_2 = digitalRead(8);
if (val_2 == 0)
{
count_2 = count_2 + 1;
}
if (count_2 == 1)
{
btn_check_2 = btn_check_2 + 1;
r_2 = 1;
while (r_2 <= 1)
{
digitalWrite(dirPin_2, HIGH);
for (int x_2 = 0; x_2 < STEP_PER_REV_2; x_2++)
{
digitalWrite(stepPin_2, HIGH);
delayMicroseconds(speed_dec_2);
digitalWrite(stepPin_2, LOW);
delayMicroseconds(3000);
}
delay(1000);
r_2++;
btn_check_2++;
if (r_2 == 2)
{
digitalWrite(stepPin_2, LOW);
}
// if(btn_check_2==6)
// {
// reverse_2();
// }
//Serial.println(btn_check);
}
count_2 = 0;
}
}
}
// MOTOR 2 BUTTON 2
/*
void reverse()
{
digitalWrite(dirPin, LOW);
for(int x=0;x<STEP_PER_REV*3;x++)
{
digitalWrite(stepPin, HIGH);
delayMicroseconds(1000);
digitalWrite(stepPin, LOW);
delayMicroseconds(1000);
}
btn_check=0;
return(btn_check);
}
// MOTOR 2 REVERS
void reverse_2()
{
digitalWrite(dirPin_2, LOW);
for(int x_2=0;x_2<STEP_PER_REV_2*3;x_2++)
{
digitalWrite(stepPin_2, HIGH);
delayMicroseconds(1000);
digitalWrite(stepPin_2, LOW);
delayMicroseconds(1000);
}
btn_check_2=0;
return(btn_check_2);
*/