沒想到弄好一組對收藍芽後就可以變出很多種配置,
這次就來玩,主-PS搖桿,從-兩顆伺服馬達。
模組就之前介紹過了,這邊不多贅述。
至於跟(21)篇的主要差異在於這篇是傳遞類比訊號,而(21)篇是傳遞數位訊號。
上圖是Master配置。
上圖是Slave 配置。
成果感覺還行。
底座沒有固定,所以倒了,不管。
程式如下 :
Master--
#include <SoftwareSerial.h>
#include<Servo.h >
SoftwareSerial BT(8, 9);
int valX, posX;
int valY, posY;
const byte pinX = A0;
const byte pinY = A1;
void setup() {
Serial.begin(9600);
Serial.println("BT is ready!");
BT.begin(38400);
}
void loop() {
valX = analogRead(pinX);
valY = analogRead(pinY);
posX = map(valX, 0, 1023, 0, 179);
posY = map(valY, 0, 1023, 0, 179);
BT.write(posX);
BT.write(posY);
//從這裡將類比訊號傳到藍芽。
delay(100);
}
Slave--
#include <SoftwareSerial.h>
#include<Servo.h >
SoftwareSerial BT(8, 9);
Servo servo1;
Servo servo2;
int val1,val2;
void setup() {
servo1.attach(3);
servo2.attach(4);
Serial.begin(9600);
Serial.println("BT is ready!");
BT.begin(38400);
}
void loop() {
if (BT.available()>0) {
val1 = BT.read();
servo1.write(val1);
delay(15);
}
//接收類比訊號一,啟動一號馬達。
if (BT.available()>0) {
val2 = BT.read();
servo2.write(val2);
delay(15);
//接收類比訊號二,啟動二號馬達。
}
delay(15);
}
其實馬達還是有點抖動,delay這邊還可以再多試一下。
你好,關於在Slave那塊,我要怎麼知道VAL1和VAL2分別代表X軸或Y軸?
回覆刪除總感覺是不是缺了甚麼
哈囉 不用特地分開定義喔
回覆刪除你好! 請問方便借我參考您的電路圖嗎
回覆刪除