作者:GWD 时间:2019.06.23

一:学习要点:
1.手册只讲了原理,连引脚定义也没有,模块上的引脚标号也不正确。好在旋转编码器是开关量类的传感器,解决办法如下,在三个信号输出引脚上分别接上LED灯,旋转编码器观察LED灯的亮灭情况定义引脚。由此推测,开光量传感器在引脚定义不清楚时可以用这种观察方式;


2. 旋转编码器的关键就是判断K2与K3的先后顺序,加入“松手检测”语句就可以很好的解决这个问题。详见下文程序。
3.松手检测死循环语句适用情况
1)、需要检测信号的先后顺序,可在第一个信号出发后加一个松手检测,第一个信号结束后再判断第二个;
2)、等待信号到来,并计数的情况类似超声传感器中的等待到高电平的情况。
二:手册分析(基本上没用)

  1. 旋转编码器可通过旋转可以计数正方向和反方向转动过程中输出脉冲的次数,旋转计数不像电位计,这种转动计数是没有限制的。配合旋转编码器上的按键,可以复位到初始状态,即从 0 开始计数。
  2. 增量编码器是一种将旋转位移转换为一连串数字脉冲信号的旋转式传感器。这些脉冲用来控制角位移。在 Eltra 编码器中角位移的转换采用了光电扫描原理。读数系统通常采用差分方式,即将两个波形一样但相位差为180°的不同信号进行比较,以便提高输出信号的质量和稳定性。读数是再两个信号的差别基础上形成的,从而消除了干扰。
  3. 增量编码器给出两相方波,它们的相位差 90°,通常称为 A 通道和 B 通道。其中一个通道给出与转速相关的信息,与此同时,通过两个通道信号进行顺序对比,得到旋转方向的信息。还有一个特殊信号称为 Z 或零通道,该通道给出编码器的绝对零位,
    三:编程
    1.程序功能:顺时针旋转加一,逆时针旋转减一,按下归0,并在串口输出,利用指针传址参数,直接把变量名放入参数列表就行了;
    2.程序现象如图


encoder.h

#ifndef ENCODER_H
#define ENCODER_H

#include “reg52.h”

sbit SW = P2^0;
sbit DT = P2^1;
sbit CLK= P2^2;

void Encoder_Clockwise(unsigned int *p);

#endif
encoder.c
#include “encoder.h”
#include “delay.h”
#include “reg52.h”

/*通过目视观察现象,引脚乱标。。。。
1.顺时针旋转:DT=0->CLK=0;
2.逆时针旋转:CLK=0->DT=0;
3.按下按键后:SW=0;
*/
void Encoder_Clockwise(unsigned int *p)
{
if(0==DT)
{
while(0 == DT) ;
if (0 == CLK)
{
*p = *p + 1;
}
else
{
*p = *p - 1;
}
}
if(SW == 0)
{
while(SW ==0);
*p = 0;
}
}

源程序下载地址:
链接:https://pan.baidu.com/s/1YQswKq3cOZiWMhqr4vA85Q
提取码:x6r2

传感器自学笔记第五章——旋转编码器相关推荐

  1. 传感器自学笔记第十一章——三色RGB学习笔记+高感度声音检测模块+KY-010光遮断传感器+TCRT5000循迹传感器+倾斜模块

    作者:GWD 时间:2019.06.28 三色RGB学习笔记(开关量类传感器) 一.学习要点:无 二.手册分析(开关量传感器) 1.产品用途:RGB LED 模块由一个贴片全彩 LED 制成,通过 R ...

  2. 传感器自学笔记第十三章——7彩自动闪烁LED模块+干簧管传感器模块+水银开关模块+SW-18015P震动开关模块+KY-020倾斜开关模块

    作者:GWD 时间:2019.06.28 7彩自动闪烁 LED 模块 一. 学习要点:无 二. 手册分析:无 三. 编程:无 干簧管传感器模块(开关量传感器) 一.学习要点(无) 二.手册分析 1.一 ...

  3. 传感器原理与检测技术复习笔记第五章-电容式传感器

    第五章 电容式传感器 文章目录 第五章 电容式传感器 电容式传感器工作原理 变面积型电容式传感器 变极距型电容式传感器 变介质型电容式传感器 电容式传感器的测量电路 调频电路 运算放大器 变压器式交流 ...

  4. Programming Entity Framework-dbContext 学习笔记第五章

    ### Programming Entity Framework-dbContext 学习笔记 第五章 将图表添加到Context中的方式及容易出现的错误 方法 结果 警告 Add Root 图标中的 ...

  5. 深入理解 C 指针阅读笔记 -- 第五章

    Chapter5.h #ifndef __CHAPTER_5_ #define __CHAPTER_5_/*<深入理解C指针>学习笔记 -- 第五章*//*不应该修改的字符串就应该用 co ...

  6. [云炬创业基础笔记]第五章创业机会评估测试2

    [云炬创业基础笔记]第五章创业机会评估测试1

  7. 《Go语言圣经》学习笔记 第五章函数

    <Go语言圣经>学习笔记 第五章 函数 目录 函数声明 递归 多返回值 匿名函数 可变参数 Deferred函数 Panic异常 Recover捕获异常 注:学习<Go语言圣经> ...

  8. 《金融学》笔记 第五章 金融市场

    <金融学>笔记 第五章 金融市场 前言 在<<金融学>笔记>中开了一个头,现在完善具体细节. 金融范畴篇 第一章 货币的本质 第二章 货币制度 第三章 信用.利息和 ...

  9. 《Python从入门到实践》读书笔记——第五章 if语句

    <Python从入门到实践>读书笔记--第五章 if语句 1. 一个简单示例 cars = ['audi', 'bwm', 'subaru', 'toyota']for car in ca ...

最新文章

  1. Ubuntu14.04 64bit 编译安装nginx1.7+php5.4+mysql5.6
  2. python发明者叫什么-Guido发明的python语言是哪一年正式发布的?
  3. 重点:怎样正确的使用QThread类(注:包括推荐使用QThread线程的新方法QObject::moveToThread)...
  4. linux环境内核调试软件,Linux内核调试环境的搭建(使用qemu)
  5. AutoCloseable的用法
  6. ASP.NET数据库访问系列教程01-概述篇 创建数据访问层(下)
  7. Android美工坊--一个QQ登录验证的小例子
  8. c++函数可变参数列表foo(int a, ...){}中的省略号“...”
  9. CentOS 6.3下Apache+SVN部署Web版本同步
  10. 8-1 数据结构图的主要遍历实验流程图_ReactDOM渲染流程图
  11. 孔浩java web视频教程_孔浩老师webservice视频教程(含CXF视频教程)
  12. Lenovo System X3850 X5 服务器管理口IMM被锁定无法登录的故障处理
  13. 如何elf文件转换为asm汇编文件
  14. NLP之文本特征提取详解
  15. 交换机和路由器的登陆与管理
  16. java.lang.null_java.lang.nullpointerexception 怎么解决
  17. Data Abort产生的原因
  18. java 银联接口_银联支付接口整合开发(java)
  19. LM个人发卡网系统开源源码「免授权」
  20. python调用打印机打印pdf_python连接打印机实现打印文档、图片、pdf文件等功能

热门文章

  1. 使用python讲二进制转换为音频文件_Python使用ffmpy将amr格式的音频转化为mp3格式的例子...
  2. 超级简洁的Python风格加解密
  3. c语言程序设计教程刘三满答案,清华大学出版社-图书详情-《C语言程序设计教程》...
  4. 关于mysql中无法显示中文的完美解决方案
  5. 蓝桥杯单片机设计与开发历届客观题答案
  6. 华为平板如何换计算机的皮肤,走出护肤误区,华为镜子携手皮肤专家化解护肤难题...
  7. 做一个简单的“远程”开关 ESP8266 + APP
  8. python是哪种动物_动物的分类
  9. 【笔记】 数字集成电路设计(一)
  10. 计算机工程师自荐信英语作文,工程师英文求职信范文