arduino 自平衡小车1\霍尔编码器测速(MsTime2)
MsTime2,霍尔编码器测速
100毫秒触发一次中断,打印出这100毫秒内,霍尔编码器测到的脉冲数。
代码如下:
#include <MsTimer2.h>//TB6612引脚定义
const int right_R1=8;
const int right_R2=12;
const int PWM_R=10;
const int left_L1=7;
const int left_L2=6;
const int PWM_L=9;const int PinA_left = 5; //定义检测左电机脉冲的引脚为D5
const int PinA_right = 4; //定义检测右电机脉冲的引脚为D4int times=0,newtime=0,d_time=100; //时间,最新的时间,时间间隔
int valA=0,valB=0,flagA=0,flagB=0; //变量valA和valB用于计算脉冲数void setup()
{Serial.begin(9600);pinMode(right_R1,OUTPUT); //TB6612的引脚都设置为输出pinMode(right_R2,OUTPUT);pinMode(PWM_R,OUTPUT);pinMode(left_L1,OUTPUT);pinMode(left_L2,OUTPUT);pinMode(PWM_L,OUTPUT);pinMode(PinA_left,INPUT); //设置检测脉冲的引脚为输入状态pinMode(PinA_right,INPUT);MsTimer2::set(100, inter); // 100ms 触发一次中断,调用函数inter()MsTimer2::start(); //开启中断
}void loop()
{//两电机都正转digitalWrite(right_R1,HIGH);digitalWrite(right_R2,LOW);digitalWrite(left_L1,HIGH);digitalWrite(left_L2,LOW);analogWrite(PWM_R,100); //写入PWM值0~255(速度)analogWrite(PWM_L,200);if(digitalRead(PinA_left)==HIGH&&flagA==0) //计算脉冲值{valA++;flagA=1;}if(digitalRead(PinA_left)==LOW&&flagA==1){valA++;flagA=0;}if(digitalRead(PinA_right)==HIGH&&flagB==0){valB++;flagB=1;}if(digitalRead(PinA_right)==LOW&&flagB==1){valB++;flagB=0;}}//中断函数
void inter()
{sei(); //允许全局中断Serial.print("valA = "); //在串口监视器上打印出脉冲值Serial.println(valA);Serial.print("valB = ");Serial.println(valB);valA = valB = 0; //清0
}
arduino 自平衡小车1\霍尔编码器测速(MsTime2)相关推荐
- stm32霍尔编码器测速(标准库函数版)
基本原理:霍尔编码器是有霍尔马盘和霍尔元件组成.霍尔马盘是在一定直径的圆板上等分的布置有不同的磁极.霍尔马盘与电动机同轴,电动机旋转时,霍尔元件检测输出若干脉冲信号,为判断转向,一般输出两组存在一定相 ...
- STM32 HAL库实现编码器测速
STM32 HAL库实现编码器测速 (还开了串口1用来调试,下文没写:然后那个short的用法就是看平衡小车之家(就是喵呜实验室的文档里头的,用法确实惊艳),文末贴了工程) 编码器接口模式 TI1和T ...
- Stm32-使用TB6612驱动电机及编码器测速
这里写目录标题 起因 一.电机及编码器的参数 二.硬件 三.接线 四.驱动电机 1.TB6612电机驱动 2.定时器的PWM模式驱动电机 五.编码器测速 1.定时器的编码器接口模式 2.定时器编码器模 ...
- 【一文读懂】如何用编码器测速
文章目录 前言 一.AB相编码器计数原理 四倍频 二.要用到的一些参数 编码器参数 电机参数 轮子参数 计算 三.代码如下(更契合原理的代码) 四倍频的代码(更新) 前言 详解编码器测速原理及实现 参 ...
- 单片机c语言计数器测速,基于51单片机的光电编码器测速.doc
课程设计报告 课程名称: 微机原理课程设计 题 目: 基于51单片机的光电编码器测速 摘要 光电编码器是高精度位置控制系统常用的一种位移检测传感器.在位置控制系统中,由于电机既可能正转,也可能反转,所 ...
- 一种基于STM32F1 MCU的增量型编码器测速的方法
遇到的问题 1. 编码器信号,用来计量长度,如果需要同时测量当前实时速度,在不增加接口的情况下,实现较为准确实时的测速 2. 简单的M法速度,对于低速信号,测量精度较差,实时性也不高. 测速方法 之前 ...
- 51单片机电机测速程序c语言,基于51单片机光电编码器测速.doc
基于51单片机光电编码器测速 PAGE PAGE 2 课程设计报告 课程名称: 微机原理课程设计 题 目: 基于51单片机的光电编码器测速 摘要 光电编码器是高精度位置控制系统常用的一种位移检测传感器 ...
- 直流有刷电机编码器测速基于STM32F302R8+X-NUCLEO-IHM07M1
文章目录 前言 一.编码器测速原理 二.STM32F302R8+X-NUCLEO-IHM07M1直流电机编码器测速 2.1.功能需求 2.2.硬件设计 2.3.软件设计 2.3.1.底层配置 2.3. ...
- 基于51单片机霍尔传感器测速(仿真+源程序)
资料编号:196 下面是该资料仿真演示视频: 196-基于51单片机霍尔传感器测速(仿真+源程序+全套资料) 功能简介: 51单片机计数测速转速测量,在仿真中等价于测量外部脉冲频率:如果修改输入脉冲 ...
- smb测速工具_编码器测速例子
编码器测速例子 各位好,我现在要用 CPU226 通过编码器测电机转速,看了许多手册编的程序总是测不出来, 编码器用的是 A/B 两相的,那位能给发个简单的例子啊, 转自网上的回答, 我也正在学习这个 ...
最新文章
- linux grep 正则表达式
- 河南计算机程序大赛,我院成功举办河南省第十一届ACM大学生程序设计竞赛
- 了解ReactOS调试
- 虎年云原生落地技术趋势
- 分布式系统(微服务架构)的一致性和幂等性问题相关概念解析
- 4.4 Hibernate高级功能
- b站视频解析php,B站视频解析套路
- python分析财务报表
- 国家计算机考试报名照片编辑器,电脑的证件照制作软件推荐
- 优秀课件笔记之WINDOWS XP 操作系统
- linux 怎么格式化u盘写保护,u盘写保护无法格式化解决方法
- ipad android开迅视频播放器,迅课视频播放器
- company corporation enterprise 等等公司名称的区别
- 2023.02.11草图大师浴室效果图1skp素材效果图
- 荣耀30s怎么升级鸿蒙,惊喜!4部荣耀手机可升级至华为鸿蒙系统,网友表示:终于等到了...
- 01-在线教育行业介绍
- java基础 第一章 对象入门
- 生物特征识别数据泄露事件
- elementUI 导航栏 鼠标移入改变背景色
- deep deepfm wide 区别_FM算法和DeepFM算法