ต้องการให้ ถ้ามีการกดปุ่ม ที่ Limit ให้หยุดการทำงานทั้งหมดครับ
สมมุติ ถ้ามอเตอร์กำลังทำงานอยู๋แล้วเกิดไปกด ปุ่ม Limit ให้หยุดการทำงานทันที ทั้งที่ทำงานยังไม่จบ แบบให้หยุดไปเลยให้รอทำคำสั่งต่อไปครับ
int motor1 = 2;
int motor2 = 4;
int motor3 = 5;
int motor4 = 7;
int buttonPin = 3;
int buttonStart;
int Menu = 0;
int lastinput=HIGH;
void setup()
{
pinMode(motor1, OUTPUT);
pinMode(motor2, OUTPUT);
pinMode(motor3, OUTPUT);
pinMode(motor4, OUTPUT);
pinMode(buttonPin, INPUT) ;
Serial.begin(9600);
}
void loop()
{
buttonStart = digitalRead(buttonPin);
if (buttonStart == lastinput)
{
delay (300);
Menu++;
if (Menu>2)
Serial.print(Menu);
if (Menu==1)
{
Serial.println("Motor Left");
digitalWrite(motor1,LOW);
digitalWrite(motor1, HIGH);
delay (5000);
digitalWrite(motor1,LOW);
digitalWrite(motor3,LOW);
digitalWrite(motor3, HIGH);
delay (5000);
digitalWrite(motor3,LOW);
lastinput=LOW;
}
else if(Menu==2)
{
Serial.println("Motor Right");
digitalWrite(motor4,LOW);
digitalWrite(motor4, HIGH);
delay (3900);
digitalWrite(motor4,LOW);
digitalWrite(motor2,LOW);
digitalWrite(motor2, HIGH);
delay (5000);
digitalWrite(motor2,LOW);
lastinput=HIGH;
Menu=0;
}
}
}
Arduino ผมซิ้อสวิทต์ Limit มาแต่เขียนโค๊ตต่อไม่ถูกช่วยหน่อยครับ
สมมุติ ถ้ามอเตอร์กำลังทำงานอยู๋แล้วเกิดไปกด ปุ่ม Limit ให้หยุดการทำงานทันที ทั้งที่ทำงานยังไม่จบ แบบให้หยุดไปเลยให้รอทำคำสั่งต่อไปครับ
int motor1 = 2;
int motor2 = 4;
int motor3 = 5;
int motor4 = 7;
int buttonPin = 3;
int buttonStart;
int Menu = 0;
int lastinput=HIGH;
void setup()
{
pinMode(motor1, OUTPUT);
pinMode(motor2, OUTPUT);
pinMode(motor3, OUTPUT);
pinMode(motor4, OUTPUT);
pinMode(buttonPin, INPUT) ;
Serial.begin(9600);
}
void loop()
{
buttonStart = digitalRead(buttonPin);
if (buttonStart == lastinput)
{
delay (300);
Menu++;
if (Menu>2)
Serial.print(Menu);
if (Menu==1)
{
Serial.println("Motor Left");
digitalWrite(motor1,LOW);
digitalWrite(motor1, HIGH);
delay (5000);
digitalWrite(motor1,LOW);
digitalWrite(motor3,LOW);
digitalWrite(motor3, HIGH);
delay (5000);
digitalWrite(motor3,LOW);
lastinput=LOW;
}
else if(Menu==2)
{
Serial.println("Motor Right");
digitalWrite(motor4,LOW);
digitalWrite(motor4, HIGH);
delay (3900);
digitalWrite(motor4,LOW);
digitalWrite(motor2,LOW);
digitalWrite(motor2, HIGH);
delay (5000);
digitalWrite(motor2,LOW);
lastinput=HIGH;
Menu=0;
}
}
}