极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 29086|回复: 16

求助:用arduino控制无刷电机的问题

[复制链接]
发表于 2012-10-20 17:46:51 | 显示全部楼层 |阅读模式
这个程序用电位器控制无刷电机转速,实验中为电机什么唧唧响,不转,,求大神帮助
#include <Servo.h>
Servo myservo;
int potpin = A0;  
int val;   
void setup()
        {
          myservo.attach(9,1000,2000);  
          delay(2500);
          myservo.writeMicroseconds(1000);
          delay(2000);
        }
void loop()
        {
          val = analogRead(potpin);
          val = map(val, 0, 1023, 0, 179);
          myservo.write(val);
          delay(15);
       }
回复

使用道具 举报

发表于 2012-10-20 23:57:42 | 显示全部楼层
电压太小了吧
回复 支持 反对

使用道具 举报

发表于 2012-11-18 17:14:52 | 显示全部楼层
你确定了解无刷电机?无刷电机与舵机,有刷电机区别很大,控制较为复杂。靠上面的几句程序别指望能让无刷电机转动。
回复 支持 反对

使用道具 举报

发表于 2013-1-12 12:19:02 | 显示全部楼层
用arduino里面的舵机控制函数试试看
回复 支持 反对

使用道具 举报

发表于 2013-1-12 12:19:32 | 显示全部楼层
要带电调的哦
回复 支持 反对

使用道具 举报

发表于 2013-1-24 02:59:30 | 显示全部楼层
对 要加电调  还要编一个 PWM 的函数  当然使arduino 本身的 analogwrite 也可以
回复 支持 反对

使用道具 举报

发表于 2013-3-16 07:40:06 | 显示全部楼层
micro_听海 发表于 2012-11-18 17:14
你确定了解无刷电机?无刷电机与舵机,有刷电机区别很大,控制较为复杂。靠上面的几句程序别指望能让无刷电 ...

楼主没说清楚,他用了无刷电调,信号和控制舵机的一样。
几句程序有什么问题,主要内容都包括在库里了,servo库有几千行代码,还不够驱动无刷?
回复 支持 反对

使用道具 举报

发表于 2013-3-16 07:40:57 | 显示全部楼层
小政哥 发表于 2013-1-12 12:19
用arduino里面的舵机控制函数试试看

本来就是用了舵机控制函数:
#include <Servo.h>
Servo myservo;
回复 支持 反对

使用道具 举报

发表于 2013-3-16 07:45:14 | 显示全部楼层
我来告诉楼主什么问题:
99%的无刷电调,接电后都会先检测油门信号,如果不是0的话就不会正常启动电机,而是唧唧响报警。
所以,setup那里应该给出一个0.5ms/20ms的PWM信号,延迟几秒,让电调检测。
回复 支持 反对

使用道具 举报

发表于 2013-3-26 09:36:09 | 显示全部楼层
拨一下试试
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-3-27 20:05:42 | 显示全部楼层
laji3865689 发表于 2013-3-16 07:45
我来告诉楼主什么问题:
99%的无刷电调,接电后都会先检测油门信号,如果不是0的话就不会正常启动电机,而 ...

myservo.writeMicroseconds(500);
delay(5000);
这样对吧?
回复 支持 反对

使用道具 举报

发表于 2013-4-24 00:46:52 | 显示全部楼层
这方面,用arduino控制无刷电机我已近做出来了。用Servo.h库可以控制。9楼的说的对,电调是要自检的,只有通过了才能控制无刷电机,好盈的电调是可以编程的,你可以写一个自检的程序来初始化电调,也可以用用模拟口读取电位器的阻值来模拟航模遥控器
控制电调的步骤是:
(1)初始化:如控制舵机一样调节脉宽为20ms,即控制舵机角度为180°,此时电机会发出一声响
(2)再调节脉宽为0ms,电机此时再次响一声;
(3)此时电调的初始化完成了;调节电位器,即可调节无刷电机的转速了
希望能给你帮助。
回复 支持 反对

使用道具 举报

发表于 2013-4-24 00:49:08 | 显示全部楼层
初始化程序也可以问我要QQ:932500391。我想做4轴飞控,正在努力研究中!!!
呵呵
回复 支持 反对

使用道具 举报

发表于 2013-4-29 11:26:29 | 显示全部楼层
  myservo.attach(9,1000,2000);              这个表示什么意思,为什么要有个1000,2000
          delay(2500);                               为什么延时这么长时间
          myservo.writeMicroseconds(1000);                 这个又是什么意思
          delay(2000);                                      为什么还有延时这么长的时间

回复 支持 反对

使用道具 举报

发表于 2013-5-16 13:57:56 | 显示全部楼层
问题出在
val = analogRead(potpin);
val = map(val, 0, 1023, 0, 179);
你是在读电位器A0数值来控制无刷给入量的
将它注释掉,直接写 val =100;或其他数值
就可以了
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-5-4 03:30 , Processed in 0.059447 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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