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);
} 得先解调才行,具体步骤可以去问淘宝卖家 大兄弟。
首先,你需要把螺旋桨给拆下来,否则会对你的生命造成威胁···真的。
其次,如果你单纯想要驱动电机的话,不需要这么复杂,你这样写就复杂了。只需要像舵机一样驱动这个电调就行了。 楼上说的对,你的电机没问题吗? 本帖最后由 hq951224 于 2015-8-12 00:18 编辑
频率没搞对,电调一般应该是500hz以下的pwm来驱动,加个延时函数试试。 初学者学习
页:
[1]