Atmega128 控制直流伺服电机
来源:互联网 发布:摩托罗拉v8软件 编辑:程序博客网 时间:2024/04/29 19:15
转载请注明出处
作者:小马
电机型号是DCM50205D 带1000分辨率增量式光电编码器. 驱动器型号是DCS810 这两款产品都是雷赛公司的产品(去他们公司的网站上可以找到这两款产品具体的参数), 这是当时实验室想研究伺服电机专门买的, 我在实验室这段时间花了一些功夫研究这个东西. 功能模块公司都给做好了,主要是做软件控制. 下面都是我在实际应用中记录的一些笔记。
1 由于我是用单片机控制, PUL+, DIR+, EN+ 接+5v, 对应的负极信号接IO口编程控制.
2 在电源一定的情况下, 电机的速度与pul-输入的脉冲的频率成正比, 刚开始以为是脉宽比决定的,因为以前玩过一个小直流电机就是脉宽比决定速度. 当频率决定电机的速度时,在实际应用中最好是用等宽比.
3 在应用过程中,发现一个问题,要先给电机上电,再给单片机上电,电机运转才正常,目前不知道什么原因.
4 由于该电机是用脉冲控制的,这里要讲一下atmega128的脉冲产生原理. 拿定时器0为例, 输出的方波有三种形式. CTC, 快速PWM, 相位修正PWM。下面就这三种方式分别描述.
一 CTC 模式
这种模式可以产生电机驱动所需的方波, 它脉宽比只能为1:1, 不可调. OCR0影响的是脉冲的频率. 每当TCNT0与OCR0匹配时, TCNT0自动清零, OC0取反. 所以它的频率可由下面的公式表示
N 是分频因子,根据用户对寄存器的设置而不同.所以这种模式下,方波的最高频率可以到二分之一的系统晶振.
二快速PWM模式.
该模式也是在OC0输出PWM波, 它的原理是OC0在TCNT0匹配时置位, 在计数器满(0xff)清零时OC0清零, 由它的产生机理可得到两个结论. 一是PWM脉宽可调,由OCR0决定, 二是PWM频率固定为
N 是分频因子,根据用户对寄存器的设置而不同. 所以该模式下最高的频率可达到系统晶振/256.
三相位修正的PWM.
该模式与快速PWM的区别是当计数器计到MAX时,会从MAX倒回到BOTTOM而不是计到MAX直接清零重新计. 由于其对称的特性,比较适合电机控制. 这种模式也是脉宽可调,频率固定. 频率为
当然还有一种形式就是用IO口模拟产生方波,但是我用示波器观察发现,这种方式产生的方波毛刺较大,不推荐使用.
6 做电机控制的时候,要注意电机运转和停止的时候中要有个缓冲过程, 也就是说,正常运转前要先加速,停止前要先减速.
7 电机上所带编码器线数为1000, DCS810驱动器出厂默认设置编码器分辨率为电机所带编码器线数的4倍. 也就是4000. 也就是一个脉冲的控制精度可达0.09度.
8 一般直流电机只要两根线就可以转动起来的. 根据高中物理知识, 载流导体在磁场中所受到的力的大小与电流成正比, F = B*i*L(B是磁感应强度, i是电流的大小, L是导体的长度) 所以电流越大,电机转速也是越快. 实际应用中加大电压发现电机转速也增加,估计在电机内部最终也会转化为电流.
- Atmega128 控制直流伺服电机
- 直流伺服电机介绍
- 永磁直流(PM DC)电机伺服控制装置
- 用MSN控制伺服电机
- 一般直流电机与直流伺服电机的区别:
- 使用Arduino开发板控制伺服电机
- 关于伺服电机的控制方式
- 直流无刷电机的正弦波控制
- 伺服电机
- 伺服电机
- 伺服电机
- [电机控制话题] 精辟!伺服电机、舵机、步进电机的区别
- 教你怎样选择伺服电机控制方式
- 树莓派3b+控制舵机、伺服电机的驱动代码。
- 总结:伺服电机控制及结合强弱电的控制系统
- 直流无刷电机控制相关问题整理
- arm9 mini2440 pwm 控制直流无刷电机
- 直流电机 步进电机 伺服电机
- 企业信息化系统索引
- 基于s3c2410的YL-LCD35液晶驱动的分析
- 打开本地安全策略mmc无法创建管理单元regsvr32 gpedit.dll提示失败
- 权限表设计
- ASP.NET 关闭进程
- Atmega128 控制直流伺服电机
- 使用C#多线程程序(1)
- ubuntu常用软件
- return的烦恼
- 利用socket编写windows和linux通讯程序
- sqlplus SPOOL 导出网页文件
- sh命令行参数处理以及特殊变量
- 最近很多公司在开年会,客户开年会。
- tree级联联动