อยากให้หลังจากที่โปรแกรมทำคำสั้งใดคำสั้ง1แล้วหยุดหรือresetไปกลับไปทำswitch case ใหม่ครับ เช่นกด 1มอเตอร์หมุนแล้ว พอเสร็จแล้วหยุดกลับไปเริ่มรับkeyใหม่ ปัญหาตอนนี้คือพอกดแล้วมันหมุนไม่หยุดครับ ไม่มีความรู้มากช่วยแนะนำหน่อย คิดว่าน่าจะต้องใส่resetหรือป่าวถ้าใช่ใส่ยังไงครับ
#include <Keypad.h>
int dir1PinA = 2;
int dir2PinA = 3;
int speedPinA = 6;
const byte ROWS = 4; // Four rows
const byte COLS = 3; // Three columns
char keys[ROWS][COLS] = {
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};
byte rowPins[ROWS] = { 14, 15, 16, 17 };
byte colPins[COLS] = { 18, 19, 20};
Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup()
{
Serial.begin(9600);
pinMode(dir1PinA,OUTPUT);
pinMode(dir2PinA,OUTPUT);
pinMode(speedPinA,OUTPUT);
}
void loop()
{
char key = kpd.getKey();
switch (key)
{
case '1':
analogWrite(speedPinA, 250);
digitalWrite(dir1PinA, HIGH);
digitalWrite(dir2PinA, LOW);
delay(500);
break;
case '#': analogWrite(speedPinA, 250);
digitalWrite(dir1PinA, LOW);
digitalWrite(dir2PinA, HIGH);
delay(3000);
break; }
}
ช่วยเขียนออกแบบโปรแกรมarduinoหน่อยคระบ
#include <Keypad.h>
int dir1PinA = 2;
int dir2PinA = 3;
int speedPinA = 6;
const byte ROWS = 4; // Four rows
const byte COLS = 3; // Three columns
char keys[ROWS][COLS] = {
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};
byte rowPins[ROWS] = { 14, 15, 16, 17 };
byte colPins[COLS] = { 18, 19, 20};
Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup()
{
Serial.begin(9600);
pinMode(dir1PinA,OUTPUT);
pinMode(dir2PinA,OUTPUT);
pinMode(speedPinA,OUTPUT);
}
void loop()
{
char key = kpd.getKey();
switch (key)
{
case '1':
analogWrite(speedPinA, 250);
digitalWrite(dir1PinA, HIGH);
digitalWrite(dir2PinA, LOW);
delay(500);
break;
case '#': analogWrite(speedPinA, 250);
digitalWrite(dir1PinA, LOW);
digitalWrite(dir2PinA, HIGH);
delay(3000);
break; }
}