|
本帖最后由 jingsen521 于 2014-6-18 20:45 编辑
arduino寻线传感器测速接1602显示,哪位大神能帮我改一下程序,使得下面的程序的输出值为速度,而不是转过的圈数(寻线传感器遇白色计数一次)。我的问题关键在于不知道如何使用arduino定时器定时。白条旋转半径为3cm,及运行一周行程2*3.14*3cm
int pin1=8;//定义I1接口
int pin2=9;//定义I2接口
int speedpin=11;//定义EA接口
int redpin=7;//定义红外接口
int m=0;
int i=0;
int val;
void setup()
{
pinMode(redpin,INPUT);//定义该红外接口为输入接口
pinMode(pin1,OUTPUT);//定义该接口为输出接口
pinMode(pin2,OUTPUT);
pinMode(speedpin,OUTPUT);//定义该调速接口为输出接口
Serial.begin(9600);
}
void loop()
{
val=digitalRead(redpin);//读取红外接口的电平
if(val==HIGH)
{//如果红外接口为高电平(遇白色)m自加一次
m++;
}
if(val==LOW&&m>=1)
{//只有当红外接口在读出高电平后再读出低电平时,i加一,记为一次
i+=1;
m=0;//m归零,用于下次检测白线
Serial.println(i);//输出转速的值
}
if (i==1)
{//当i=1时,电机开始转动
digitalWrite(speedpin,HIGH);//使电机全速运转
digitalWrite(pin1,HIGH);//使直流电机转动
digitalWrite(pin2,LOW);
}
}
|
|