分享

小车测速码盘读数请教(主要是想让小车走直线)?

 quasiceo 2015-10-03
购买的小车底盘是 路虎5履带底盘(2WD),并带有两个测速模块,支持Arduino读数。
小车底盘及测速模块见附件;

商家告诉我每转一圈,码盘状态会跳变8次(码盘包括4个黑色块和4个白色块,接入一数字口,分别对应0和1的输出),但我这边读出来竟然达到160多次;

测试代码:
ARDUINO 代码
  1. int pin = 4; //连接到pin 4
  2. int i;
  3. int j;
  4. int n = 0; //码盘读数(即状态跳变次数)
  5. int flag = 0; //因为初始读数可能为0或1,该标志是用来读取初始状态的

  6. void setup() {
  7.   Serial.begin(9600);
  8.   pinMode(pin, INPUT);
  9. }

  10. void loop() {
  11.   i = digitalRead(pin); //读取码盘状态(0或1)
  12.   if(!flag){ //获取初始状态读数
  13.       j = i;
  14.       flag = 1;
  15.   }

  16.   if(i != j){ //每次状态发生跳变的时候,读数增加1
  17.     n += 1;
  18.     j = i;
  19.   }  
  20.   Serial.println(n);  
  21. }


代码很简单,请大家帮忙看一下,有什么错误吗?

厂家没提供测试代码,说本论坛里面有,但没搜索到,有使用过这款底盘的朋友现身探讨一下吧。


lh1.jpg


lu2.jpg

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约