这个如果要控制电机转动时间该怎么弄啊。我这个电机总是只能转动几秒。。
#include <Password.h>#include <Keypad.h>
#include <Stepper.h>
#define STEPS 200
Stepper stepper(STEPS,4,5, 10, 13);
int previous = 0;
Password password = Password( "123" ); //解锁密码
const byte ROWS = 2; // 四行
const byte COLS = 4; // 四列
// 定义键盘
char keys = {
{ '1','2','3','A'},
{'4','5','6','B'},
};
//行
byte rowPins = {3,2};
//列
byte colPins = { 9, 6, 7, 8};
// 建立键盘
Keypad keypad = Keypad( makeKeymap(keys),rowPins,colPins ,ROWS,COLS);
void setup(){
Serial.begin(9600);
Serial.write(254);
Serial.write(0x01);
delay(200);
pinMode(11, OUTPUT);//绿灯
pinMode(12, OUTPUT);//红灯
stepper.setSpeed(100);
keypad.addEventListener(keypadEvent);
}
void loop(){
keypad.getKey();
}
//注意一些特殊的事件
void keypadEvent(KeypadEvent eKey){
switch (keypad.getState()){
case PRESSED:
Serial.print("Enter: ");
Serial.println(eKey);
delay(10);
Serial.write(254);
switch (eKey){
case 'A': checkPassword(); delay(1); break;
case 'B': password.reset(); delay(1); break;
default: password.append(eKey); delay(1);
}
}
}
void checkPassword(){
if (password.evaluate()){
Serial.println("Accepted");//如果密码正确开锁
Serial.write(254);delay(10);
//如果开始工作,运行以下代码
digitalWrite(11, HIGH);//打开
delay(500); //等待5秒
int val = analogRead(0);
stepper.step(val - previous);
previous = val;
digitalWrite(11, LOW);// 关闭
}else{
Serial.println("Denied"); //如果密码错误保持锁定
Serial.write(254);delay(10);
//如果没有开始工作,运行以下代码
digitalWrite(12, HIGH); //打开
delay(500); //等待5秒
digitalWrite(12, LOW);//关闭
}
}
页:
[1]