Robofun 機器人論壇
標題:
用電子變速器控馬達code問題
[打印本頁]
作者:
blessedlife
時間:
2011-7-28 15:06
標題:
用電子變速器控馬達code問題
int ESCpin = 11; // ESC signal wire connected to pin 11 on arduino
int val = 0;
//variable to store PWM value
void setup()
{
}
void loop()
{
for(val = 0; val <= 255; val += 5)
{
analogWrite(ESCpin, val);
delay(1000);
}
}
今天試了這個範例,
馬達會轉動了,
但馬達會正.反轉,
這是什麼原因?
程式碼不是一直增速嗎?
作者:
rayrider
時間:
2011-7-28 21:58
完全不對。
我不是有說過了嗎?送一個 週期50hz,1500us high 的的ppm訊號給esc
大大你有沒看小弟寫什麼嗎? 小弟說過esc不是H-bridge.
大大你要用控制伺服機的範例來控制esc才會動,怎麼會用analogWrite呢,PPM不是PWM請自已谷歌一下吧.
作者:
blessedlife
時間:
2011-7-30 20:53
回復
2#
rayrider
大大~不好意思...
之前想不出要怎麼控PPM 所以才找ESC的程式來試試
我在試看看您所講的~
作者:
blessedlife
時間:
2011-9-4 17:13
#include <Servo.h>
Servo myservo;
int servoPosition = 1500;
void arm()
{
setSpeed(0);
delay(1000);
}
void setSpeed(int servoPosition)
{
int angle = map(servoPosition,1000,2000,0,180);
myservo.write(angle);
}
void setup()
{
myservo.attach(9);
arm();
Serial.begin(9600);
}
void loop()
{
int servoPosition;
servoPosition = 1350;
setSpeed(servoPosition);
Serial.println(servoPosition);
delay(1000);
}
這是我所寫的程式碼
有聽到"等等登"的聲音
但是馬達還是不會轉動
程式碼有什麼問題嗎?
作者:
rayrider
時間:
2011-9-4 23:25
本帖最後由 rayrider 於 2011-9-5 18:13 編輯
#include <Servo.h>
Servo myservo;
//int servoPosition = 90; //(你loop中又宣告一次兩邊二選一,不要重複,養成壞習慣)
void arm()
{
setSpeed(90); //電變開機要取得中立位是90度不是0
delay(5000); //電變開機要取得中立位是給他一點時間不要急
}
void setSpeed(int servoPosition)
{
int angle = map(servoPosition,1000,2000,0,180); //你用map 你知道是什麼意嗎?
myservo.write(angle);
}
void setup()
{
myservo.attach(9);
arm();
Serial.begin(9600);
}
void loop()
{
int servoPosition;
servoPosition = 85; //如果用了map就不應該是1350
setSpeed(servoPosition);
Serial.println(servoPosition);
delay(1000);
}
複製代碼
ok不ok,都要回貼,不要拍拍屁股又潛水。
作者:
blessedlife
時間:
2011-9-20 21:31
我知道我的問題出在哪了
謝謝rayrider大的講解
歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/)
Powered by Discuz! X3.2