电机AB相编码器测速
控制任务
检测编码器的脉冲并测速
电路设计

图1 直流电机带减速器和编码器

图2 编码器接线定义
编码器接线定义如下
M1:电机电源接口,绿色的
GND:编码器电源负极输入口,橙色的
C1:编码器A相输出,黄色的,接Arduino控制板2号引脚
C2:编码器B相输出,白色的,接Arduino控制板3号引脚
3.3V:编码器电源正极输入口(兼容3.3V、5V),红色的
M2:电机电源接口,黑色的,
程序设计
1 int motor_c_ENA=6; //控制板与驱动板的引脚连接
2 int motor_c_IN1=8;
3 int motor_c_IN2=7;
4
5 #define ENCODER_A_PIN 2 //编码器A相接控制板2号引脚,对应0号外部中断
6 #define ENCODER_B_PIN 3 //编码器B相接控制板3号引脚,
7 long pulse_number=0; // 脉冲计数
8 int rpm;
9
10 #include <MsTimer2.h> //定时器库的头文件
11
12 void setup()
13 {
14 pinMode(motor_c_ENA,OUTPUT); //电机C使能和PWM调速口
15 pinMode(motor_c_IN1,OUTPUT); //电机C控制口
16 pinMode(motor_c_IN2,OUTPUT); //电机C控制口
17
18 MsTimer2::set(500, send); // 中断设置函数,每 500ms 进入一次中断
19 MsTimer2::start(); //开始计时
20
21 pinMode(ENCODER_A_PIN, INPUT);
22 pinMode(ENCODER_B_PIN, INPUT);
23 attachInterrupt(0, read_quadrature, FALLING); //EN_A脚下降沿触发中断
24 Serial.begin(9600); //初始化Arduino串口
25 }
26
27 void loop()
28 {
29 //C加速正转
30 digitalWrite(motor_c_IN1,0);
31 digitalWrite(motor_c_IN2,1);
32 for (int a=100;a<=255;a++)
33 {
34 analogWrite(motor_c_ENA,a);
35 delay(200);
36 }
37
38 //C减速正转
39 digitalWrite(motor_c_IN1,0);
40 digitalWrite(motor_c_IN2,1);
41 for (int a=255;a>0;a--)
42 {
43 analogWrite(motor_c_ENA,a);
44 delay(200);
45 }
46 }
47
48 void send() //速度串行传送
49 {
50 rpm=int(pulse_number/37.4);
51 //编码器精度为224线,减速器减速比为1:20,故系数=(224/(60/0.5))*20=37.4
52 Serial.print("rpm: ");
53 Serial.println(rpm, DEC);
54 pulse_number = 0;
55 }
56
57 void read_quadrature() //编码器脉冲计数中断函数
58 {
59 if (digitalRead(ENCODER_A_PIN) == LOW)
60 {
61 if (digitalRead(ENCODER_B_PIN) == LOW) // 查询EN_B的电平以确认正转
62 { pulse_number ++; }
63 if (digitalRead(ENCODER_B_PIN) == HIGH) // 查询EN_B的电平以确认反转
64 { pulse_number --; }
65 }
66 }
电机AB相编码器测速的更多相关文章
- 通过电机编码器AB相输出确定电机转向
AB相输出相差90度,即当A相"正跳变"时如果B相是高电平那么是"正转",反之是"反转" 图片: 正转 反转 #include <Ti ...
- 伺服驱动器UVW电机电源线相序错误
我们有必要先了解此讨论的前提:编码器初始安装相位正确.伺服驱动器将全然"採信"电机编码器的初始安装相位所表征的电机电角度相位,无需在伺服电机 的UVW动力线接线连接后进行额外 ...
- stm32直流电机驱动与测速代码配套视频资料
说实话就现在的市场应用中stm32已经占到了绝对住到的地位,51已经成为过去式,32的功能更加强大,虽然相应的难度有所增加,但是依然阻止不了大家学习32的脚步,不说大话了这些大家都懂要不然也不会学习s ...
- 不可错过的stm32单片机直流电机驱动与测速详解
stm32直流电机驱动与测速 说实话就现在的市场应用中stm32已经占到了绝对住到的地位,51已经成为过去式,32的功能更加强大,虽然相应的难度有所增加,但是依然阻止不了大家学习32的脚步,不说大话了 ...
- 轻松掌握stm32直流电机驱动与测速
说实话就现在的市场应用中stm32已经占到了绝对住到的地位,51已经成为过去式,32的功能更加强大,虽然相应的难度有所增加,但是依然阻止不了大家学习32的脚步,不说大话了这些大家都懂要不然也不会学习s ...
- stm32直流电机驱动与测速
stm32直流电机驱动与测速 说实话就现在的市场应用中stm32已经占到了绝对住到的地位,51已经成为过去式,32的功能更加强大,虽然相应的难度有所增加,但是依然阻止不了大家学习32的脚步,不说大话了 ...
- [ Arch Linux ] Arch更新源高速源整理之测速并自动排序高速源 加快更新效率
方法一: 工具:rankmirrors 0x01 备份原来的源,并创建一个测试源 cd /etc/pacman.d cp mirrorlist mirrorlist.bakcp mirrorlist ...
- C# Ping的例子,可用于测试网络,延迟xx毫秒 C#编写网站测速
C#编写网站测速 WebClient wcl = new WebClient(); Stopwatch spwatch = new Stopwatch(); spwatch.Start(); byte ...
- linux测速软件speedtest-cli
linux测速软件: https://github.com/sivel/speedtest-cli 以下是我在gentoo上测的
随机推荐
- android开发之集成zxing,二维码,以及扫描二维码的功能实现。带源代码下载
package cc.jiusansec.www; import com.google.zxing.WriterException; import com.zxing.activity.Capture ...
- Selenium执行js脚本
如何使用Selenium来执行Javascript脚本呢 Selenium中提供了一个方法:execute_script 来执行js脚本 return 可以返回js的返回结果 execute_scri ...
- Unity插件介绍——Odin
今天把玩了一款最近的热门插件——“Odin - Inspector and Serializer”,其功能强大到让人无语,简直是开发利器,屠龙宝刀!它的功能是扩展Inspector显示,它重写和增加了 ...
- ElasticSearch7.6.1 安装及其head插件安装
本来打算写一篇ES和Solr的差别的,后来想想算了简单说说吧, 如果是对已存在数据建立完成索引的情况下,Solr更快 一但进行索引的操作的时候,Solr的IO是阻塞的 对于大数据量的实时检索,还是El ...
- 启动Tomcat服务器端口被占用解决方法
Caused by: java.net.BindException: Address already in use: bind 1.输入 netstat -ano|findstr 8080,回车,显示 ...
- 在Oracle中快速创建一张百万级别的表,一张十万级别的表 并修改两表中1%的数据 全部运行时间66秒
万以下小表做性能优化没有多大意义,因此我需要创建大表: 创建大表有三种方法,一种是insert into table selec..connect by.的方式,它最快但是数据要么是连续值,要么是随机 ...
- URL 去重的 6 种方案!(附详细实现代码)
URL 去重在我们日常工作中和面试中很常遇到,比如这些: 可以看出,包括阿里,网易云.优酷.作业帮等知名互联网公司都出现过类似的面试题,而且和 URL 去重比较类似的,如 IP 黑/白名单判断等也经常 ...
- 零基础一分钟入门Python
这篇文章面向所有想学python的小伙伴(甚至你从没听过编程),这篇文章将会带你以最快的速度入门python.赶快上车,时间来不及了... 一,下载和安装python 1.下载: 1.1 python ...
- 电子邮箱有哪些隐藏技能,读懂了效率提升N倍!
很多人将邮箱作为常见的通讯工具,然而,大部分职场人只了解其五分之一的功能.电子邮箱还有很多隐藏技能,身为商务精英的你,必须往下看看哦!今天跟随TOM邮箱小编导,来挖掘下邮箱的潜藏技能吧~ 作为经常外出 ...
- Linux搭建SonarQube
环境:linux+jdk8+mysql5.7.31+sonarqube7.5+sonar-scanner-4.4+jenkins2.249+sonar-l10n-zh-plugin-1.25.jar ...