#define Go_L 8 // กำหนดขาที่ต่อกับสวิตช์โยก
#define Go_R 9 // กำหนดขาที่ต่อกับสวิตช์โยก
#define Limit_R 11 //กำหนดขาที่ต่อกับลิมิตสวิทช์
#define Limit_L 12 //กำหนดขาที่ต่อกับลิมิตสวิทช์
int speed1 = 900; //กำหนดความเร็ว ค่าน้อย มอเตอร์หมุนเร็ว ค่ามาก มอเตอร์หมุนช้า
void setup(){
pinMode(5, OUTPUT);
pinMode(2, OUTPUT);
pinMode(Go_L, INPUT_PULLUP);
pinMode(Go_R, INPUT_PULLUP);
pinMode(Limit_R, INPUT_PULLUP);
pinMode(Limit_L, INPUT_PULLUP);
}
void loop() {
if(digitalRead(Go_R)==0) //โยกไปขวา
{
if (digitalRead(Limit_R))//ตราบเท่าที่ยังไม่ชนลิมิตสวิตช์ สั่งให้มอเตอร์หมุนต่อไป
{
digitalWrite(2, LOW);
digitalWrite(5, HIGH);
delayMicroseconds(speed1);
digitalWrite(5, LOW);
delayMicroseconds(speed1);
}
else
{
// ชนลิมิตสวิตช์แล้ว มอเตอร์หยุด
}
}
if(digitalRead(Go_L)==0) //โยกไปซ้าย
{
if (digitalRead(Limit_L))//ตราบเท่าที่ยังไม่ชนลิมิตสวิตช์ สั่งให้มอเตอร์หมุนต่อไป
{
digitalWrite(2, HIGH);
digitalWrite(5, HIGH);
delayMicroseconds(speed1);
digitalWrite(5, LOW);
delayMicroseconds(speed1);
}
else
{
// ชนลิมิตสวิตช์แล้ว มอเตอร์หยุด
}
}
}