โค๊ตทำงาน Menu1 แล้วมัน ทำงาน Menu2 ต่อเลนอะครับพอกดปุ่ม
เพราะ เมื่อกดปุ่ม Menu มันจะ +1เลื่อยๆไม่ยอมหยุด ทำยังไงให้ รับค่าได้แค่ทีละ 1 และทำงานทีละคำสั่งต่อการกดปุ่มครับ
รู้ปัญหาแต่แก้ไม่ได้ช่วยหน่อยครับ
int motor1 = 2;
int motor2 = 3;
int motor3 = 5;
int motor4 = 6;
int buttonPin = 4;
int buttonStart = 0;
int Menu = 0;
int lastinput = LOW;
void setup(){
pinMode(motor1, OUTPUT);
pinMode(motor2, OUTPUT);
pinMode(buttonPin, INPUT) ;
Serial.begin(9600);
}
void loop()
{
buttonStart = digitalRead(buttonPin);
if (buttonStart != lastinput)
{
delay (300);
Menu++;
if (Menu==1)
{
Serial.println("Motor Left");
digitalWrite(motor1,LOW);
digitalWrite(motor1, HIGH);
delay (2620);
digitalWrite(motor1,LOW);
digitalWrite(motor3,LOW);
digitalWrite(motor3, HIGH);
delay (4000);
digitalWrite(motor3,LOW);
}
else if(Menu==2)
{
Serial.println("Motor Right");
digitalWrite(motor4,LOW);
digitalWrite(motor4, HIGH);
delay (4000);
digitalWrite(motor4,LOW);
digitalWrite(motor2,LOW);
digitalWrite(motor2, HIGH);
delay (2620);
digitalWrite(motor2,LOW);
Menu=0;
}
}
}
Arduino ทำยังไงไม่ให้โค๊ด ++1 เลื่อยๆครับ ช่วยหน่อยครับ
เพราะ เมื่อกดปุ่ม Menu มันจะ +1เลื่อยๆไม่ยอมหยุด ทำยังไงให้ รับค่าได้แค่ทีละ 1 และทำงานทีละคำสั่งต่อการกดปุ่มครับ
รู้ปัญหาแต่แก้ไม่ได้ช่วยหน่อยครับ
int motor1 = 2;
int motor2 = 3;
int motor3 = 5;
int motor4 = 6;
int buttonPin = 4;
int buttonStart = 0;
int Menu = 0;
int lastinput = LOW;
void setup(){
pinMode(motor1, OUTPUT);
pinMode(motor2, OUTPUT);
pinMode(buttonPin, INPUT) ;
Serial.begin(9600);
}
void loop()
{
buttonStart = digitalRead(buttonPin);
if (buttonStart != lastinput)
{
delay (300);
Menu++;
if (Menu==1)
{
Serial.println("Motor Left");
digitalWrite(motor1,LOW);
digitalWrite(motor1, HIGH);
delay (2620);
digitalWrite(motor1,LOW);
digitalWrite(motor3,LOW);
digitalWrite(motor3, HIGH);
delay (4000);
digitalWrite(motor3,LOW);
}
else if(Menu==2)
{
Serial.println("Motor Right");
digitalWrite(motor4,LOW);
digitalWrite(motor4, HIGH);
delay (4000);
digitalWrite(motor4,LOW);
digitalWrite(motor2,LOW);
digitalWrite(motor2, HIGH);
delay (2620);
digitalWrite(motor2,LOW);
Menu=0;
}
}
}