Robofun 機器人論壇
標題:
想請教Arduino對Arduino PWM無線傳輸
[打印本頁]
作者:
zxcasd819
時間:
2015-10-26 21:05
標題:
想請教Arduino對Arduino PWM無線傳輸
小弟是Arduino新手,想要做一個遙控的坦克樣子的多功能車。可是目前連動力操作都有問題。
我想要兩個可變電阻分別控制兩邊的馬達。
現在寫出一邊可以動了,不過有個問題就是,他會一直閃爍,馬達雖然是再轉,可是感覺是頻率很快地停一下停一下,接上LED燈看確實就是一直閃。
想請問CODE是哪裡有問題,還想請問如果在加一個可變電阻的話,要怎麼寫
傳送端:
int potpin = 2;
int val = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
val=analogRead(potpin);
Serial.println(val/4);
Serial.write(val/4);
delay(50);
}
接收端:
int val;
void setup()
{
Serial.begin(9600);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
}
void loop()
{
if(Serial.available()>0){
val = Serial.read();
Serial.flush();
Serial.println();
val = map(val, 0, 1023, 0, 255);
digitalWrite(5, LOW);
analogWrite(6, val*4);
}
}
作者:
超新手
時間:
2015-10-27 08:20
本帖最後由 超新手 於 2015-10-28 08:35 編輯
你把偵錯和控制馬達部份混在一起
拿掉偵錯部份應該就 OK 了吧?我猜的...
傳送端:
int potpin = 2;
int val = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
val=analogRead(potpin);
Serial.write(val/4);
delay(50);
}
接收端:
int val;
void setup()
{
Serial.begin(9600);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
}
void loop()
{
if(Serial.available()>0){
val = Serial.read();
digitalWrite(5, LOW);
analogWrite(6, val);
}
}
作者:
zxcasd819
時間:
2015-10-27 23:30
回復
2#
超新手
你好~謝謝回復~!
不過我測完這樣還是會閃耶..而且變得沒有PWM 要把 val = map(val, 0, 1023, 0, 255)留著才能
不知道會閃到底是什麼原因
作者:
超新手
時間:
2015-10-28 08:35
本帖最後由 超新手 於 2015-10-28 08:39 編輯
對, 接收端要改成以下才對
void loop()
{
if(Serial.available()>0){
val = Serial.read();
digitalWrite(5, LOW);
analogWrite(6, val);
}
}
那些 MAP是多此一舉
因為analogRead的範圍是從 0~1023
除以 4 後, 變為 0 ~255
剛好符合analogWrite 的範圍, 直接給就好了
你的作法是
analogRead 0~1023
除以 4 後, 變為 0 ~255
MAP 變成 0~63
乘以 4
變成 0~255
analogWrite 是 PWM, 不是 DAC
會閃不算不正常吧?
歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/)
Powered by Discuz! X3.2