Arduino、AB相增量式光电编码器测位移和速度方向
利用Arduino、增量式光电编码器测量速度、方向、位移。
学校的一个项目作业,实测有效,若有改进的地方还需大佬们指点。
材料:
Arduino mega 2560
2个2k电阻(红白之间2k,红绿之间2k)
分辨率400 AB相增量式编码器
pc
编码器简介
连线图
int0 为接口2,int1为接口3。
测速原理
脉冲数/(编码器分辨率*时间)
A脉冲为下降沿,B脉冲为高电平,方向为正;
A脉冲为下降沿,B脉冲为低电平,方向为负。
程序:
#include <MsTimer2.h> //中断库int pinA=2; // 定义2号端口为A脉冲输入端口
int pinB=3;// 定义3号端口为B脉冲输入端口
int ppsA=0; //记录A脉冲的次数
int m=0; //定义位移
char a='+';
char b='-';
char c; //方向
float velocity=0; //速度float v(float n) //转速计算函数
{float vel =n/40; // n/(400*0.1)return vel;
}void flash()
{int w=ppsA;velocity=v(w); //计算转速if (velocity!=0){Serial.print(c);}if(c==a){m=m+ppsA*360/400; //计算正位移}else if(c==b){m=m-ppsA*360/400; //计算负位移}Serial.print(velocity); // 将获取的数字信号值打印到串口显示Serial.print("r/s "); Serial.print(m); Serial.println("°"); ppsA=0; //脉冲A计数归0
}void setup()
{Serial.begin(9600);attachInterrupt(0,CountA, FALLING);//检测脉冲下降沿中断,并转到CountA函数MsTimer2::set(100, flash); // 中断设置函数,0.1sMsTimer2::start(); //开始计时
}void loop()
{
}void CountA()
{if(digitalRead(pinB) == HIGH) //B脉冲为高电平{c=a;}if(digitalRead(pinB) == LOW) //B脉冲为高电平{c=b;}ppsA++;
}
Arduino、AB相增量式光电编码器测位移和速度方向相关推荐
- 光电编码器的原理及应用场合_增量式光电编码器的构造和原理及应用
内容摘要:光电编码器是一种精度高的数字化检测装置,外部有一个可以左右旋转同时又可按下的旋钮,被广泛用于车载电子设备的菜单选择和调节等.主要以日本阿尔卑斯EC11J微型光电编码器为例,分析了增量式光电编 ...
- Arduino UNO控制带AB相磁通量式编码器电动推杆(测试阻尼)实录(L289N电机驱动)
前段时间为了测试实验器材的阻尼,需要去开发一套装置来测试.提出用Arduino单片机来控制电动推杆(Linear Actuator)来制造相应速度的运动,搭配上测力计,从而根据来测得阻尼,在这里简单记 ...
- 增量式旋转编码器的使用,以arduino为例
简介 旋转编码器是一种位置传感器,用于确定转轴的位置.旋转运动时,产生电信号,可以输出数字信号,也可以输出模拟信号. 组成 旋转编码器一般由5个引脚组成,前3个一起的引脚分别表示输出引脚A端,按纽公共 ...
- 增量式旋转编码器工作原理
增量式旋转编码器工作原理 增量式旋转编码器通过内部两个光敏接受管转化其角度码盘的时序和相位关系,得到其角度码盘角度位移量增加(正方向)或减少(负方向).在接合数字电路特别是单片机后,增量式旋转编码器在 ...
- 单片机c语言计数器测速,基于51单片机的光电编码器测速.doc
课程设计报告 课程名称: 微机原理课程设计 题 目: 基于51单片机的光电编码器测速 摘要 光电编码器是高精度位置控制系统常用的一种位移检测传感器.在位置控制系统中,由于电机既可能正转,也可能反转,所 ...
- 单片机c语言编程编码器数值,基于单片机的光电编码器测速报告详解.doc
课程设计报告 课程名称: 微机原理课程设计 题 目: 基于51单片机的光电编码器测速 摘要 光电编码器是高精度位置控制系统常用的一种位移检测传感器.在位置控制系统中,由于电机既可能正转,也可能反转,所 ...
- 旋转增量式拉绳编码器出现故障应急处理
旋转增量式拉绳编码器出现故障应急处理 旋转增量式拉绳编码器以转动时输出脉冲,通过计数设备来知道其位置,当编码器不动或停电时,依靠计数设备的内部记忆来记住位置.这样,当停电后,编码器不能有任何的移动,当 ...
- 51单片机电机测速程序c语言,基于51单片机光电编码器测速.doc
基于51单片机光电编码器测速 PAGE PAGE 2 课程设计报告 课程名称: 微机原理课程设计 题 目: 基于51单片机的光电编码器测速 摘要 光电编码器是高精度位置控制系统常用的一种位移检测传感器 ...
- Arduino实现增量式旋转编码器(欧姆龙e6b2-cwz6c)程序编写
最近由于项目需求,须采用编码器进行小车的速度和里程测量.由于考虑到Arduino的编程简便性,因此采用Arduino作为控制器.搜索了相关资料,发现STM32或者51单片机的编码器程序比较多.其中ST ...
最新文章
- springboot 单测加入参数_Spring Boot集成Elasticsearch实战分享
- CSRF简单介绍及利用方法-跨站请求伪造
- tikz 折线 箭头_问一个关于latex中,使用tikz画图的问题,如何使箭头上方的权值不居中(因为居中会互相重叠)...
- SpaceX计划2022年完成52次发射
- 音乐倒数计数器(求解答,lcd相关知识点)
- 三相PWM整流器dq解耦控制
- otl c mysql_OTL的使用
- mysql面试题总结_mysql面试题小结
- 字节跳动2023届校招薪资盘点!
- 镗刀的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- 马来西亚SIRIM认证
- ACM-ICPC 2018 南京赛区网络预赛 I Skr (马拉车+hash去重)或(回文树)
- K3root刷217,rk3128刷机工具
- 浪潮5280m4导轨安装_NF5280M4机架解密:拆装方便和稳定_浪潮 英信NF5280M4(Xeon E5-2620 v3/8GB/300GB*3/16*HSB)_服务器知识学堂-中关村在线...
- C#,动态规划(DP)金矿问题(Gold Mine Problem)的算法与源代码
- seaborn---调色板
- proected 模式
- Linux Deepin系统更新记录(2014-01-22)
- idea添加web3j 依赖
- Linux系统介绍和RHEL7.2操作系统的安装