鱼C论坛

 找回密码
 立即注册
查看: 12584|回复: 29

[已解决]Arduino驱动无刷电机

[复制链接]
发表于 2018-5-17 22:08:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 田螺 于 2019-1-11 19:43 编辑

        玩无人机的小伙伴应该已经猜到了,电调就是带动无刷电机做运动的家伙,电机需要电调带动
        大家可能会问 不就一个电机吗?有那么麻烦嘛?我可要告诉大家 “无刷电机” 可不像四驱车那种通电就走的喔。当然你无人机用那种电机也不是不可以
        无刷直流电机由电动机主体和驱动器组成,是一种典型的机电一体化产品。由于无刷直流电动机是以自控式运行的,所以不会像变频调速下重载启动的同步电机那样在转子上另加启动绕组,也不会在负载突变时产生振荡和失步。(来源于百度)
        那么问题来了,我有了电源、有了电调、有了电机,那怎么操控它呢?如果你是有钱人的话那就用钱砸吧。买控制器吧也要买遥控器,一套少了200拿不下来 我这种穷逼也只能看着那些拿遥控器的流憨口水了... 既然大家有雅兴来捧我的场,那我就把省钱但不省力的方法共享给大家。



                               
登录/注册后可看大图


声明:由于我也是才开是了解无人机这一块所以我不会推荐。
准备:
字典: https://www.arduino.cc/reference/en/#functions(Arduino函数功能查询)

电池
        学习嘛可以卖点便宜的,但也要注意安全哦 搞不好会炸的!不是跟你拉稀摆带!(方言意义是不开玩笑!)注意!注意!注意!

电调
电调.jpg
我选接入是T型供电接口
        重点是控制线,分3根 红 黑 白(黄) 红和黑就是给控制器供电电压在4.5-5V,如果你Arduino有单独供电可以直接忽略红色那根。黄色就是信号线了,黑色是负极。


电机
电机.jpg
        电机无非就是旋向的问题了,任意倒两根线就可以

接线
接线.jpg
        大家可以看到自己单片机接线口有A0 A2....    01 02 03~...   
        带了“A”的就是可以输入的模拟量,我旁边的摇杆就是接在上面控制油门的。
  1. analogRead(pin)
  2. 参数
  3. pin:引脚号
  4. value: HIGH or LOW
复制代码

        这个“~”是PWM引脚,没有“~”只能输出高或低电频,带了“~”就可以控制例如灯泡的亮度
  1. analogWrite(pin, value)
  2. pin: the pin to write to. Allowed data types: int.
  3. value: the duty cycle: between 0 (always off) and 255 (always on). Allowed data types: int
复制代码

        就两根线,摇杆暂时不接,看上去乱糟糟的影响大家的心情。
黄色<==>pin4
黑色<==>GND

现在万事俱备只欠东风。现在是最圣神的时刻,因为我们要赐予它“灵魂”
  1. void motor(int sp,int times){//脉冲函数
  2.   int time_l = times;
  3.   int time_h= map(times,0,1020,888,2048);//这个数值就是脉冲的时间
  4.   digitalWrite(sp,HIGH);//将电平至高
  5.   delayMicroseconds(time_h);//延时脉宽值的微秒数
  6.   digitalWrite(sp,LOW);//将电平至低
  7.   delayMicroseconds(2000 - time_l / 6);//延时脉宽值的微秒数
  8. }
  9. void setup(){
  10.   pinMode(4,OUTPUT);//将指定的引脚配置为输入或输出,这里是设的输出
  11. }
  12. void loop(){
  13.   unsigned int rocker;
  14.   rocker = analogRead(A0);//摇杆0~1020
  15.   //引用脉冲函数
  16.   motor(4,rocker);
  17. }
复制代码

建议大家使用以下代码:
  1. #include <Servo.h>
  2. Servo servo_1;
  3. void motor(int dat){                 //放大或缩小数据并写入函数
  4.   dat = map(dat,0,9,0,180);
  5.   servo_1.write(dat);
  6.   }
  7. void setup(){
  8.   Serial.begin(9600);
  9.   servo_1.attach(8,1000,2000);  //pwm引脚8;高电平2000低电平1000
  10.   }
  11. void loop(){
  12.   int dat = Serial.read();           //以ASCII方式读取
  13.   dat-=48;                              //把ASCII简单转一下0~9
  14.   if(dat!=-49)                          //当没获取数据Serial.read()函数返回字符”-1“
  15.     motor(dat);
  16. }
复制代码


        我拍着胸脯告诉你,你没有看错!没有看错!不到20行而且超级简单!我学习的时候在各大论坛查代码查资料。看又看不大懂而且多得起堆堆(头发短见识短)现在我给大家浓缩了一下希望大家能够看的懂。
        安全注意事项提醒:建议大家show的时候不要把转速调太高,我就是例子,在调油门的时候由于操作不当。还按上了螺旋桨结果把我指甲都打破了,恐怕没人有我这么笨了吧....
        说到油门,电调连接上电机首先要做的第一件事就是设置油门行程,方法是:在arduino串口监视器里面先输入字符‘9’再通电调电源,等到声音与平常无控制器通电时不一样时再输入‘0’油门调整完成。
嘀嘀嘀.jpg
        果真没骗你们吧,只有两根线和很少的代码。至于摇杆的连接我就不写在这里面了,大家一起期待小甲鱼老湿开课吧!


map()函数的用法:
在官方文档里面其实已经写得很清楚了这里我说说我对它的理解。
游客,如果您要查看本帖隐藏内容请回复
最佳答案
2018-5-17 22:22:38
支持
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-5-17 22:22:38 | 显示全部楼层    本楼为最佳答案   
支持
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-5-18 20:11:48 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-19 20:04:59 | 显示全部楼层

谢谢,坚持更新,加油
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-10 18:46:50 | 显示全部楼层
支持支持
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-13 13:35:36 | 显示全部楼层
反手就是一个支持
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-28 17:19:04 | 显示全部楼层
SP
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-11-1 18:18:31 From FishC Mobile | 显示全部楼层
有点东西
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-2-18 15:44:08 | 显示全部楼层
谢谢楼主的干货分享
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-14 12:59:18 | 显示全部楼层
谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-6-29 14:35:42 | 显示全部楼层
可以控制无刷电机的正反转么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-6-30 23:18:25 | 显示全部楼层
chenweb 发表于 2019-6-29 14:35
可以控制无刷电机的正反转么

三项任意调换两项即可实现反转
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-15 10:53:15 | 显示全部楼层
支持
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-26 07:44:07 From FishC Mobile | 显示全部楼层
学习一下,平衡程序
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-17 20:59:45 | 显示全部楼层
支持一下 好代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-27 16:27:22 | 显示全部楼层
极为感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-10 11:11:28 | 显示全部楼层
您好,请问电机和电调的型号是什么?我自己瞎买的,接口都不对应,实在难受。能给个链接吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-10 12:11:34 | 显示全部楼层
小韩111 发表于 2020-2-10 11:11
您好,请问电机和电调的型号是什么?我自己瞎买的,接口都不对应,实在难受。能给个链接吗?

你确定要买的电机型号后可以找客服小姐姐帮你选配电调。我也是随便买的,本来想买小的,结果买大了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-12 19:40:33 | 显示全部楼层
田螺 发表于 2020-2-10 12:11
你确定要买的电机型号后可以找客服小姐姐帮你选配电调。我也是随便买的,本来想买小的,结果买大了

诶,现在疫情这样,我们这里都不让出门了。等之后试试,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-20 17:12:36 | 显示全部楼层
您好,我又来请教了,按照您的代码和连接试了,给电调通电后电机有规律的滴滴声,我想到是要调速度,在串口监视器发送9没有什么反应,监视器和电机都没什么变化,请问该怎么解决?方便的话可以加您微信吗?想详细的请教下。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-20 12:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表