奥斯丁 发表于 2015-8-11 11:19:22

arduino驱动一个电机,为什么一直滴滴叫就是不转,是不是程序错了,求大神破解



#include<Servo.h>;
#define AIL13   //AIL fuyi
#define ELE29   //ELE shengjiang
#define THR310   //THR youmen
#define RUD411   //RUD fangxiang
#define LED   13
unsigned long INAIL;
unsigned long INELE;
unsigned long INTHR;
unsigned long INRUD;
int OUTAIL;
int OUTELE;
int OUTTHR;
int OUTRUD;
Servo AIL;
Servo ELE;
Servo THR;
Servo RUD;

void setup()
{
pinMode(AIL1,0);
pinMode(ELE2,0);
pinMode(THR3,0);
pinMode(RUD4,0);
pinMode(LED,1);

AIL.attach(4);
ELE.attach(5);
THR.attach(6);
RUD.attach(7);

Serial.begin(9600);
}
void loop()
{

   
digitalWrite(LED,1);
INAIL = pulseIn(AIL1, 1);
INELE = pulseIn(ELE2, 1);
INTHR = pulseIn(THR3, 1);
INRUD = pulseIn(RUD4, 1);

OUTAIL = map(INAIL,1010,2007,47,144);
OUTELE = map(INELE,1010,2007,47,144);
OUTTHR = map(INTHR,1010,2007,47,144);
OUTRUD = map(INRUD,1010,2007,47,144);

AIL.write(OUTAIL);
ELE.write(OUTELE);
THR.write(OUTTHR);
RUD.write(OUTRUD);

int dianya = analogRead(A0);
float wendu = dianya * (5.0 / 1023.0*100);
Serial.print("AIL=");
Serial.print(INAIL);
Serial.print(" ELE=");
Serial.print(INELE);
Serial.print(" THR=");
Serial.print(INTHR);
Serial.print(" RUD=");
Serial.print(INRUD);
Serial.print(" wendu=");
Serial.println(wendu);      

digitalWrite(LED,0);
delay(5);

}

寕静致远 发表于 2015-8-11 12:51:10

得先解调才行,具体步骤可以去问淘宝卖家

血阳 发表于 2015-8-11 14:10:04

大兄弟。
首先,你需要把螺旋桨给拆下来,否则会对你的生命造成威胁···真的。
其次,如果你单纯想要驱动电机的话,不需要这么复杂,你这样写就复杂了。只需要像舵机一样驱动这个电调就行了。

suoma 发表于 2015-8-11 22:01:16

楼上说的对,你的电机没问题吗?

hq951224 发表于 2015-8-12 00:16:50

本帖最后由 hq951224 于 2015-8-12 00:18 编辑

频率没搞对,电调一般应该是500hz以下的pwm来驱动,加个延时函数试试。

mondaywoo 发表于 2015-8-12 10:46:25

初学者学习
页: [1]
查看完整版本: arduino驱动一个电机,为什么一直滴滴叫就是不转,是不是程序错了,求大神破解