基于arduino控制带编码器直流电机速度

模块:带减速的直流电机(减速比1:120),霍尔编码器(每圈13个信号单相)arduino UNO,TB6612FNG,3.7V电源

编码器连接在直流电机输入端,输出一圈单相有(13*120)个脉冲

#define AIN1  3
#define AIN2  4
#define PWMA  5
#define AA  2
int valA=0;
float  n;
int flag=0;
int pwm=70;
unsigned long starttime,stoptime;
void timer()
{valA++;stoptime=millis(); if((stoptime-starttime)>100){ detachInterrupt(0);flag=1;}
}
void setup() {pinMode(AIN1,OUTPUT);pinMode(AIN2,OUTPUT);pinMode(PWMA,OUTPUT);pinMode(AA,INPUT);Serial.begin(9600);attachInterrupt(0,timer,RISING); starttime=millis();Serial.println(starttime); }
void loop() {digitalWrite(AIN1,HIGH); digitalWrite(AIN2,LOW);analogWrite(PWMA,pwm); if(flag==1)         //if()前面加while(1)不行{ n=valA*100/156.000;     //放大一百倍串口绘图Serial.println(n,3);valA=0;flag=0;pwm=pwm+60-n;            //speed 为60/100 r/sif(pwm>255)pwm=255;if(pwm<0)pwm=0;delay(0);starttime=millis();attachInterrupt(0,timer,RISING); }}

电机控制为PID中的简单的P控制,可以调整参数从而改变调整速度和超调量
编写代码遇到的问题:
1.中断里面不能加 Serial.println()函数,否则速度快时会丢脉冲。
2.主函数里计算速度时,需停止中断,否则容易出错。

基于arduino控制带编码器直流电机速度相关推荐

  1. 基于Arduino控制步进电机 编码器普菲特TB6600控制

    1.因为步进电机用的是下面 这种,它的电流是1.5A,因此我们把编码器上的 开关用1.7A的通道. 就是上面 这个通道,可以看出来我们要把s4,s5打开s6关闭. 就是上面 这种. 然后接线,先接电机 ...

  2. 《Arduino开发实战指南:LabVIEW卷》6.5 基于Arduino控制6自由度机械臂

    6.5 基于Arduino控制6自由度机械臂 6.5.1 实现的功能 本节将使用LabVIEW设计实现基于Arduino的6自由度机械臂控制.本节中设计的机械臂控制主要演示Arduino在多自由度Se ...

  3. 你好!基于Arduino控制的串口屏

    在创客教育中,能用Arduino控制的屏幕有LCD1602液晶显示屏.OLED显示屏(I2C方式)等,但是LCD1602只能显示英文字符和数字,OLED显示屏尺寸又小. 实际上在单片机开发中还会用到一 ...

  4. 单片机驱动直流电机c语言代码,单片机驱动带编码器直流电机 源程序

    #include //单片机头文件,储存一些殊寄存器的地址声明 #include //intrins头文件储存51编程中需要使用到空指令_nop_().字符循环移位指令_crol_等 #include ...

  5. 基于Arduino控制的网格循迹小车

    1.元器件选型 电子元器件清单 序号 标号 名称 规格 数量 1 / Arduino板 / 1 2 / 驱动模块 LM298N 1 3 / 巡线模块 5 机械零部件清单 序号 标号 名称 规格 数量 ...

  6. 使用Arduino 连接旋转编码器

    文章目录 1. 所需的材料 2. 连接导线旋转编码器是如何工作的? 3. 旋转编码器的类型 4. KY-040旋转编码器引脚和说明 5. Arduino与旋转编码器的连接电路图 6. 编写用于旋转编码 ...

  7. 使用 Arduino 和电位器控制直流电机速度

    使用 Arduino 和电位器控制直流电机速度 查看原文 使用 Arduino 和电位器的直流电机速度控制 直流电机是机器人和电子项目中使用最多的电机.对于控制直流电机的速度,我们有多种方法,例如可以 ...

  8. 基于arduino的校园灯光控制_使用Arduino和晶闸管(TRIAC)控制交流风扇的速度

    在许多基于Arduino的自动化项目中,使用开关或使用某种控制很容易打开或关断家用电器.但是在很多应用中,我们需要控制交流电源,例如,控制风扇的速度或灯的亮度.在这种情况下,将使用到PWM技术,因此在 ...

  9. Arduino毕业设计——基于Arduino+PID+AI的自动驾驶小车控制系统设计与实现(毕业论文+程序源码)——自动驾驶小车控制系统

    基于Arduino+PID+AI的自动驾驶小车控制系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于Arduino+PID+AI的自动驾驶小车控制系统设计与实现,文章末尾附有本毕业设计的 ...

最新文章

  1. memset函数使用详解
  2. JavaScript引擎V8 5.1遵循了更多的ECMAScript规范并支持WASM
  3. 关于'java' 不是内部或外部命令,也不是可运行的程序 或批处理文件 和 错误: 找不到或无法加载主类 helloworld的问题...
  4. AsyncTask类浅析
  5. 关于通用框架的一些想法
  6. 1.Linux性能诊断 --- 入门命令100条
  7. 拆书笔记24|笨笨的圣人
  8. 中国版Second Life前途难料
  9. 腾讯职场等级(转载自网络)
  10. WinSCP(5.11.2)绿色便携版,开源SCP/SFTP客户端
  11. 黑龙江科学杂志黑龙江科学杂志社黑龙江科学编辑部2022年第24期目录
  12. ZigBee的发展也有“碎片化”zigbee模块
  13. 论文浅尝 - IJCAI2022 | 基于自适应虚词增强的小样本逆关系分类
  14. 计算神经网络推理时间的正确方法
  15. 精英杀手锏:三招打造职场核心竞争力
  16. 开关电源设计中电感的选择
  17. 对xcode进行UI test出现的@\u8bf7\u8f93\u5165\u7231\u5b66\u6d3e\u8d26\u53f7进行修改
  18. android 6g 有必要吗,6G内存手机普及后 安卓手机为何还是这么卡?
  19. iphone手机和mac电脑隔空投送无法使用怎么处理?
  20. PS怎么快速做破旧划痕老照片效果

热门文章

  1. C语言大作业——匹配系统
  2. 关于Proteus安装后找不到Proteus 7 Professional文件夹或者打不开ISIS 7 Professional解决方案
  3. 深度学习笔记-计算机视觉
  4. 山东省教育招生考试院计算机怎么查,山东省教育招生考试院
  5. win7无法服务器共享文件夹权限,WIN7访问共享文件无权限解决方法
  6. 杂记一:rocksdb架构及其java读写api
  7. 可靠性问题与解决方案/可靠性理解
  8. 【pen200-lab】10.11.1.122
  9. 分布式服务治理框架Dubbo的前世今生及应用实战
  10. C# vb .NET读取识别条形码线性条码UPC-E