• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

arduino接旋转编码器是怎么实现数字采集的

huoshu 2018-05-18 浏览量:1202
旋转编码器里面的结构是一个开了很多条透光通道的码盘,而两个光电传感器安装的位置是相差一定的角度,这样当码盘转动的时候两个光电传感器通过和关闭就形成了一定的顺序,这就是AB正交的原理。但是AB正交编码器输出的信号为什么是CLK和DT,并且arduino端的程序如下
 int val;
 int encoder0PinA = 3;
 int encoder0PinB = 4;
 int encoder0Pos = 0;
 int encoder0PinALast = LOW;
 int n = LOW;
 
 void setup() {
   pinMode (encoder0PinAINPUT);
   pinMode (encoder0PinBINPUT);
 }
 
 void loop() {
   n = digitalRead(encoder0PinA);
   if ((encoder0PinALast == LOW) && (n == HIGH)) {
     if (digitalRead(encoder0PinB) == LOW) {
       encoder0Pos--;
     } else {

       encoder0Pos++;

这个程序从LOOP开始无法理解

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • loop函数类似 while死循环

    n=是读取数字脚的状态

    如果=低 与 n=高

    且encder0pinB=低

    encoder0Pos--

    否则 ++

    • 发布于 2018-05-18
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:3

  • 你这个函数不完整啊,好多语法都不对的。

    还有loop与C语言中的while是一样的功能,要看完整的代码

    • 发布于2018-05-22
    • 举报
    • 评论 0
    • 0
    • 0

  • loop是C中的while(1),是无线循环中的循环节。

    • 发布于2018-05-31
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

arduino接旋转编码器是怎么实现数字采集的