脉冲信号步进电机问题
本帖最后由 マイナス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时会不停的执行,我只想他执行一次,想不出该怎么改了
还有就是正反转怎么用光电传感器控制 这样行不行,貌似可以
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]