使用arduino测试光电码盘

来源:互联网 发布:数据挖掘算法实例 编辑:程序博客网 时间:2024/05/06 00:35

我用的光电码盘是扫地机上的,有一对电源线,一个信号线,测速的arduino板子暂时不能同时跑轮子驱动的程序,如果要跑,需要中断吧。
但跑了跑带中断的代码,没什么现象出现,暂时先不管。

int pin = 7;unsigned long duration;void setup(){  pinMode(2,OUTPUT); pinMode(3,OUTPUT);Serial.begin(9600);pinMode(pin, INPUT);}void loop(){digitalWrite(2,HIGH);  digitalWrite(3,LOW); duration = pulseIn(pin, HIGH); Serial.print("time=" ); Serial.println(duration );}

得到的时间duration是码盘转过一个透光狭缝的时间,测得平均是128.125微秒左右(pulseIn()单位为微秒,这是32组数据的平均值),所以周期是256.25微秒,用示波器测了280微秒左右,精度不太好,回头再试一下别的方法发上来。
示波器现象图如下。这里写图片描述
32组数据 求平均

0 0