当前位置: 首页 > news >正文

ARDUINO编码器反馈电机初步代码

使用的是UNO R3和某淘宝店铺的霍尔编码器电机

//输入捕获可用PIN2 //输出PWM可以为任意位置(所用为13) //尝试过直接模拟值输入检测 但是不知道为何总是一样的值 //计划在一个周期扫描高电平 unsigned long pwm1_start1=0,pwm1_start2=0,t=0; int gain1=1000,gain2=3000,cnth=0,cntl=0; void setup() { pinMode(2,INPUT);// put your setup code here, to run once: pinMode(13,OUTPUT); Serial.begin(57600); attachInterrupt(0,interrupt_handle,CHANGE); Serial.print(t); // analogReference(INTERNAL); } void loop() { digitalWrite(13,HIGH); delayMicroseconds(gain1); digitalWrite(13,LOW); delayMicroseconds(gain2); if(cnth>=100) { t = micros()-pwm1_start1; Serial.print(t); pwm1_start1=micros(); cnth=0; t = 0; } //delay(gain2);Serial.print("a:"); } void interrupt_handle() { if(digitalRead(2)==HIGH) { cnth++; } else { cntl++; pwm1_start2=micros(); } if(cnth>=100) { t = micros()-pwm1_start1; Serial.print(t/1000); Serial.println("ms/100个方波"); pwm1_start1=micros(); cnth=0; t = 0; } }

由于ARDUINO R3的定时器资源比较紧缺,考虑到模块化移植,尽可能减少了对定时器资源的占用 使用的是定次数计时间的方法,该方法在低速下会出现较大误差,可以适当调小指定次数值,考虑到直流电机转速不会太慢(低速很多时候会停转),固此种方法大多是情况下非常实际用,且转速越高误差越低,如果追求低速定时测量可以直接使用定时器定时间进行方波计数,此外本代码目前仅写出了测量速度而没有考虑电机AB相可以测量方向,若要添加AB相可以将代码IO接口加一个,并且测量上升沿的先后顺序得出转向,相关代码后续小比赛结束后会放出。包含PID算法的使用

http://www.jsqmd.com/news/609201/

相关文章:

  • 设计模式之原型模式
  • 【车载C#中控系统开发黄金法则】:20年一线专家亲授5大避坑指南与实时响应优化秘技
  • UnattendedWinstall版本演进:从V1.0到V3.0的完整发展历程
  • 创维SK-E622v0-江西电信-2+8G-安卓11-原机备份改MAC
  • 爬虫数据分析新利器:RexUniNLU实战,从杂乱文本中提取黄金信息
  • 就在今天,DeepSeek迎来一波重要更新!DeepSeek V4要来了?
  • 别再吹牛了,% Vibe Coding 存在无法自洽的逻辑漏洞!鼐
  • 从实战出发:详解64位PWN中payload构造的堆栈对齐陷阱与调试技巧
  • 1995-1996 年阿拉斯加北坡 ARCSS/LAII 通量站点的北极植被样地
  • SOLIDWORKS右键菜单功能消失?3分钟快速恢复‘打包‘‘重命名‘功能(附注册表修复指南)
  • 系统思考与艺术浸润
  • AI开发-python-langchain框架(--并行流程 )改
  • 手把手教你:在无外网服务器上用Docker离线搭建Jitsi-Meet视频会议系统
  • 构建仓库与包管理
  • 利用SESSION进行文件包含
  • Docker(1) 底层原理一站式学习!!!(零基础保姆式 通俗易懂)
  • SetFit模型性能基准测试:与主流小样本方法的全面对比
  • 鸿蒙_引用自定义构建函数@BuilderParam在自定义组件中的使用
  • 为什么92%的.NET团队在.NET 9发布30天内未启用低代码?揭秘微软未公开的Runtime沙箱限制与IL修剪兼容性断层
  • 从Time-MoE到KAN与Mamba:拆解ICLR 2025时间序列论文里的那些‘网红’架构与核心思想
  • 2026 行业内碳纤维胶源头厂家推荐榜,结构加固型/桥梁修缮型/水下锚固型/特种粘接型厂家选择指南 - 海棠依旧大
  • subprocess.check_output和stdout有什么不同 还有run和popen
  • ArozOS部署最佳实践:5个关键步骤确保系统稳定运行
  • 光伏逆变器测试避坑:派能协议下电流值5倍偏差的修复实录
  • 10-汽车销售系统的设计与实现
  • Gemma-3 Pixel Studio步骤详解:顶部像素面板交互设计与GPU算力适配方案
  • Mem Reduct:5MB级内存清理工具让Windows系统效率提升300%的技术实践
  • Visual Studio 2022 版本对决:Community、Professional 与 Enterprise 全方位深度解析
  • 内存分配算法(系统分配算法~应用常见算法)
  • EtchDroid多语言支持实践:如何为全球用户提供本地化体验