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)相关推荐

  1. stm32霍尔编码器测速(标准库函数版)

    基本原理:霍尔编码器是有霍尔马盘和霍尔元件组成.霍尔马盘是在一定直径的圆板上等分的布置有不同的磁极.霍尔马盘与电动机同轴,电动机旋转时,霍尔元件检测输出若干脉冲信号,为判断转向,一般输出两组存在一定相 ...

  2. STM32 HAL库实现编码器测速

    STM32 HAL库实现编码器测速 (还开了串口1用来调试,下文没写:然后那个short的用法就是看平衡小车之家(就是喵呜实验室的文档里头的,用法确实惊艳),文末贴了工程) 编码器接口模式 TI1和T ...

  3. Stm32-使用TB6612驱动电机及编码器测速

    这里写目录标题 起因 一.电机及编码器的参数 二.硬件 三.接线 四.驱动电机 1.TB6612电机驱动 2.定时器的PWM模式驱动电机 五.编码器测速 1.定时器的编码器接口模式 2.定时器编码器模 ...

  4. 【一文读懂】如何用编码器测速

    文章目录 前言 一.AB相编码器计数原理 四倍频 二.要用到的一些参数 编码器参数 电机参数 轮子参数 计算 三.代码如下(更契合原理的代码) 四倍频的代码(更新) 前言 详解编码器测速原理及实现 参 ...

  5. 单片机c语言计数器测速,基于51单片机的光电编码器测速.doc

    课程设计报告 课程名称: 微机原理课程设计 题 目: 基于51单片机的光电编码器测速 摘要 光电编码器是高精度位置控制系统常用的一种位移检测传感器.在位置控制系统中,由于电机既可能正转,也可能反转,所 ...

  6. 一种基于STM32F1 MCU的增量型编码器测速的方法

    遇到的问题 1. 编码器信号,用来计量长度,如果需要同时测量当前实时速度,在不增加接口的情况下,实现较为准确实时的测速 2. 简单的M法速度,对于低速信号,测量精度较差,实时性也不高. 测速方法 之前 ...

  7. 51单片机电机测速程序c语言,基于51单片机光电编码器测速.doc

    基于51单片机光电编码器测速 PAGE PAGE 2 课程设计报告 课程名称: 微机原理课程设计 题 目: 基于51单片机的光电编码器测速 摘要 光电编码器是高精度位置控制系统常用的一种位移检测传感器 ...

  8. 直流有刷电机编码器测速基于STM32F302R8+X-NUCLEO-IHM07M1

    文章目录 前言 一.编码器测速原理 二.STM32F302R8+X-NUCLEO-IHM07M1直流电机编码器测速 2.1.功能需求 2.2.硬件设计 2.3.软件设计 2.3.1.底层配置 2.3. ...

  9. 基于51单片机霍尔传感器测速(仿真+源程序)

    资料编号:196  下面是该资料仿真演示视频: 196-基于51单片机霍尔传感器测速(仿真+源程序+全套资料) 功能简介: 51单片机计数测速转速测量,在仿真中等价于测量外部脉冲频率:如果修改输入脉冲 ...

  10. smb测速工具_编码器测速例子

    编码器测速例子 各位好,我现在要用 CPU226 通过编码器测电机转速,看了许多手册编的程序总是测不出来, 编码器用的是 A/B 两相的,那位能给发个简单的例子啊, 转自网上的回答, 我也正在学习这个 ...

最新文章

  1. linux grep 正则表达式
  2. 河南计算机程序大赛,我院成功举办河南省第十一届ACM大学生程序设计竞赛
  3. 了解ReactOS调试
  4. 虎年云原生落地技术趋势
  5. 分布式系统(微服务架构)的一致性和幂等性问题相关概念解析
  6. 4.4 Hibernate高级功能
  7. b站视频解析php,B站视频解析套路
  8. python分析财务报表
  9. 国家计算机考试报名照片编辑器,电脑的证件照制作软件推荐
  10. 优秀课件笔记之WINDOWS XP 操作系统
  11. linux 怎么格式化u盘写保护,u盘写保护无法格式化解决方法
  12. ipad android开迅视频播放器,迅课视频播放器
  13. company corporation enterprise 等等公司名称的区别
  14. 2023.02.11草图大师浴室效果图1skp素材效果图
  15. 荣耀30s怎么升级鸿蒙,惊喜!4部荣耀手机可升级至华为鸿蒙系统,网友表示:终于等到了...
  16. 01-在线教育行业介绍
  17. java基础 第一章 对象入门
  18. 生物特征识别数据泄露事件
  19. elementUI 导航栏 鼠标移入改变背景色
  20. deep deepfm wide 区别_FM算法和DeepFM算法

热门文章

  1. 计算机组成原理中EMAR是什么,计算机组成原理(罗克露)第3章cpu.ppt
  2. 在vb.net中运用多线程实现远程数据收集
  3. python练习:重命名大量图片
  4. ElasticJob
  5. Windows下利用Python自动切换IP/DNS
  6. Mac 安装IE浏览器
  7. SSM项目实战:App信息管理平台(含源码与设计分析)
  8. 什么是java框架结构_Java框架概述
  9. Android截屏的几种方法
  10. SQLExpress数据库类型与AttachDbFilename用法