คือต้องการให้คำสั่งใน if ทำงานแค่ 5 วิ แต่มันยังวิ่งเลื่อยๆอยู่ต้องแก้หรือเพิ่มตรงไหนบ้างครับ
ตอนนี้การทำงานของมันคือหมุนไปเลื่อยๆ ยังรับค่าจากปุ่มไม่ได้ครับ พอเสียบปลั๊กก็หมุนเลยทิศทางเดียว
โค๊ตนี้จะเอาไปใช้คุมมอเตอร์ครับ
1.กดปุ่ม ทำงาน Menu 1 ทำงานคำสั่ง5วิแล้วหยุด
2.กดปุ่มอีกรอบ ทำงาน Menu 2 มำงาน 5วิ แล้ววนลูป
int motor1 = 2; //ประกาศตัวแปรมอเตอร์ ทำงานที่ขา 2
int motor2 = 3;
int motor3 = 5;
int motor4 = 6; //ประกาศตัวแปรมอเตอร์ ทำงานที่ขา 3
int buttonPin = 4; //ประกาศตัวแปรสวิทซ์ ทำงานที่ขา 4
int buttonStart= 0; //ประกาศตัวแปร buttonStart เริ่มที่ 0
int Menu=0;
unsigned long time;
void setup(){
pinMode(motor1, OUTPUT); //ตั้งค่าให้ค่าเป็น OUTPUT
pinMode(motor2, OUTPUT); //ตั้งค่าให้ค่าเป็น OUTPUT
pinMode(buttonPin, INPUT) ;//ตั้งค่าให้ค่าเป็น INPUT
Serial.begin(9600);
}
void loop()
{
time = millis();
Serial.println(time);
buttonStart = 0;
buttonStart = digitalRead(buttonPin);
if (buttonStart == HIGH)
{
delay (300);
Menu++;
if(Menu>2)
{
Menu=0;
}
if(Menu==1 && millis()-time > 5000 )
{
digitalWrite(motor1,LOW);
digitalWrite(motor3,LOW);
digitalWrite(motor1, HIGH);
digitalWrite(motor3, HIGH);
}
else if(Menu==2 && millis()-time > 5000 )
{
digitalWrite(motor2,LOW);
digitalWrite(motor4,LOW);
digitalWrite(motor2, HIGH);
digitalWrite(motor4, HIGH);
}
}
}
Arduino กำหนด millis ยังไงครับ ให้มันหยุดเมื่อถึงเวลาที่กำหนด
ตอนนี้การทำงานของมันคือหมุนไปเลื่อยๆ ยังรับค่าจากปุ่มไม่ได้ครับ พอเสียบปลั๊กก็หมุนเลยทิศทางเดียว
โค๊ตนี้จะเอาไปใช้คุมมอเตอร์ครับ
1.กดปุ่ม ทำงาน Menu 1 ทำงานคำสั่ง5วิแล้วหยุด
2.กดปุ่มอีกรอบ ทำงาน Menu 2 มำงาน 5วิ แล้ววนลูป
int motor1 = 2; //ประกาศตัวแปรมอเตอร์ ทำงานที่ขา 2
int motor2 = 3;
int motor3 = 5;
int motor4 = 6; //ประกาศตัวแปรมอเตอร์ ทำงานที่ขา 3
int buttonPin = 4; //ประกาศตัวแปรสวิทซ์ ทำงานที่ขา 4
int buttonStart= 0; //ประกาศตัวแปร buttonStart เริ่มที่ 0
int Menu=0;
unsigned long time;
void setup(){
pinMode(motor1, OUTPUT); //ตั้งค่าให้ค่าเป็น OUTPUT
pinMode(motor2, OUTPUT); //ตั้งค่าให้ค่าเป็น OUTPUT
pinMode(buttonPin, INPUT) ;//ตั้งค่าให้ค่าเป็น INPUT
Serial.begin(9600);
}
void loop()
{
time = millis();
Serial.println(time);
buttonStart = 0;
buttonStart = digitalRead(buttonPin);
if (buttonStart == HIGH)
{
delay (300);
Menu++;
if(Menu>2)
{
Menu=0;
}
if(Menu==1 && millis()-time > 5000 )
{
digitalWrite(motor1,LOW);
digitalWrite(motor3,LOW);
digitalWrite(motor1, HIGH);
digitalWrite(motor3, HIGH);
}
else if(Menu==2 && millis()-time > 5000 )
{
digitalWrite(motor2,LOW);
digitalWrite(motor4,LOW);
digitalWrite(motor2, HIGH);
digitalWrite(motor4, HIGH);
}
}
}