新人求助——用PWM控制电调,进而电机固定转速旋转。
我是新手,程序怎么写,网上都是可调转速,太麻烦,看不太懂,简单一些,能让电机转起来就行 介绍一下你手中的硬件吧 zoologist 发表于 2014-8-20 20:07 static/image/common/back.gif介绍一下你手中的硬件吧
一块arduino due板,一个微型油泵,上面与一个电调相连 如果电机本身自带电调的话,你只需要按它的脉冲信号来就行了。如提供多少HZ,脉宽多少的脉冲。如与ARDUINO输出I/O口的PWM一至的话可以使用,要不然就要自己写一个脉冲输出的程序 无为 发表于 2014-8-21 09:33 static/image/common/back.gif
如果电机本身自带电调的话,你只需要按它的脉冲信号来就行了。如提供多少HZ,脉宽多少的脉冲。如与ARDUINO输 ...
int pin = 8; //0~13
void setup()
{
pinMode(pin,OUTPUT);
}
void loop()
{
analogWrite(pin,128);
delay(5000);
}
我写了这个,可是电调还是电机一直在叫,电机也没有旋转,是怎么回事 http://www.51zxw.net/study.asp?vip=2413623 低调 发表于 2014-8-21 10:33 static/image/common/back.gif
http://www.51zxw.net/study.asp?vip=2413623
没有讲arduino的吧,在哪呢 先看一下你的电调的说明书吧......我只知道如果是普通模型上用的电调是需要先油门行程校准的,不然转不起来,电机只会叫! 发源地 发表于 2014-8-21 09:59 static/image/common/back.gif
int pin = 8; //0~13
void setup()
int pin = 8; //0~13
void setup()
{
pinMode(pin,OUTPUT);
delay(1500); // 这部分好像需要有个延时,具体看电调说明
}
void loop()
{
analogWrite(pin,128);
delay(5000);
} 貌似应该定义一个 Servo, 然后 Servo.attatch(8);看看舵机的例子,类似的吧 本帖最后由 eddiewwm 于 2014-8-21 22:06 编辑
发源地 发表于 2014-8-21 09:59 static/image/common/back.gif
int pin = 8; //0~13
void setup()
先讓電調控制電機轉起來:
int pin = 8; //0~13
int count =0;
int up =1;
void setup()
{
pinMode(pin,OUTPUT);
while (count<500) // 等待電調初始化,可按需要增長或減短
{
digitalWrite (pin, HIGH);
delayMicroseconds(800);
digitalWrite (pin, LOW);
delayMicroseconds(19200);
count++;
}
count = 1000;
}
void loop()//脈寬循環地 從 1ms 遞增至 2ms 後遞減回 1ms,以改變電機轉速
{
digitalWrite (pin, HIGH);
delayMicroseconds(count);
digitalWrite (pin, LOW);
delayMicroseconds(20000-count);
if ( count == 2000 and up ==1)
{
count--;
up=0;
}
else if (count == 1000 and up == 0)
{
count++;
up = 1;
}
else if (up ==1)
{
count++;
}
else if (up == 0)
{
count--;
}
}
eddiewwm 发表于 2014-8-21 21:10 static/image/common/back.gif
先讓電調控制電機轉起來:
int pin = 8; //0~13
把你这个程序输进去了,可是电机还是滴滴滴的叫,没有转起来,怎么弄
发源地 发表于 2014-8-22 10:48 static/image/common/back.gif
把你这个程序输进去了,可是电机还是滴滴滴的叫,没有转起来,怎么弄
這樣....,給清楚一點你手上的電調和電機的資料,同時拍個照貼上來,以便看看接線的情況。
eddiewwm 发表于 2014-8-22 23:33 static/image/common/back.gif
這樣....,給清楚一點你手上的電調和電機的資料,同時拍個照貼上來,以便看看接線的情況。
奥,我找到原因了,是因为电调的一根地线也要接到电路板上!!1
另外一个问题是电机总是转一段时间后,休息一段时间,我想让它一直转,我就稍微改了一下程序。
void loop()//脉宽循环地从1ms递增至2ms後返減回1ms,以改变电机转速
{
digitalWrite (pin, HIGH);
delayMicroseconds(2000);
digitalWrite (pin, LOW);
delayMicroseconds(18000);
}
下面的都删掉了,结果电机没反应,应该怎么改才行。谢谢啦 发源地 发表于 2014-8-23 15:31 static/image/common/back.gif
奥,我找到原因了,是因为电调的一根地线也要接到电路板上!!1
另外一个问题是电机总是转一段时间后,休 ...
"电机总是转一段时间后,休息一段时间 "?看來你的電調工作得有點奇怪,但既然已可以轉,就說明基本的控制方法仍是有效的,試試其它的控制時序吧,例如:
digitalWrite (pin, HIGH);
delayMicroseconds(1000);
digitalWrite (pin, LOW);
delayMicroseconds(19000);
页:
[1]
2