マイナス37度 发表于 2014-7-15 09:55:01

脉冲信号步进电机问题

本帖最后由 マイナス37度 于 2014-7-15 10:27 编辑

想做个步进电机手轮,写代码时遇到点问题
准备用光电测速器做脉冲输入,这是我的代码
int a = 13;
int val;
int n =digitalRead(4);
int b = 1;
int c;
int d;
void setup()
{
Serial.begin(9600);
pinMode( a , OUTPUT);
pinMode(4,INPUT);
}

void loop()
{
if (n==HIGH)                           //判断n是否为高电平,如果是执行下面的语句,不是则跳过。
{
for (int x=2; x<=7; x++)
   {
    digitalWrite(a,LOW);
    delay(b);
    digitalWrite(a,HIGH);
    }
}
}



这段代码在执行时有问题,传感器处于high时会不停的执行,我只想他执行一次,想不出该怎么改了
还有就是正反转怎么用光电传感器控制

マイナス37度 发表于 2014-7-15 10:06:15

这样行不行,貌似可以

int a = 13;
int val;
int n =digitalRead(4);
int b = 1;
int c = 0;
int d;
void setup()
{
Serial.begin(9600);
pinMode( a , OUTPUT);
pinMode(4,INPUT);
}

void loop()
{
if (n==HIGH)
{
    c = c + 1;
}
if (n==LOW)
{
    c = c + 1;
}
if (c==2)                           //判断n是否为高电平,如果是执行下面的语句,不是则跳过。
{
for (int x=2; x<=7; x++)
   {
    digitalWrite(a,LOW);
    delay(b);
    digitalWrite(a,HIGH);
    }
    c = 1;
}
}
页: [1]
查看完整版本: 脉冲信号步进电机问题