const int dirPin=2;
const int stepPin=3;
int btn_check=0;
const int STEP_PER_REV=300;
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 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(3000);
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(3000);
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);
}