充满硝烟的生活 发表于 2013-4-26 17:06:53

这个如果要控制电机转动时间该怎么弄啊。我这个电机总是只能转动几秒。。

#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]
查看完整版本: 这个如果要控制电机转动时间该怎么弄啊。我这个电机总是只能转动几秒。。