- UID
- 373967
- 帖子
- 8882
- 主題
- 2609
- 精華
- 0
- 積分
- 1000
- 楓幣
- 103
- 威望
- 977
- 存款
- 34822
- 贊助金額
- 0
- 推廣
- 0
- GP
- 1205
- 閱讀權限
- 70
- 在線時間
- 455 小時
- 註冊時間
- 2023-1-12
- 最後登入
- 2024-11-25
|
所需材料
Arduino Pro Mini(P328 版本)
遙控器(例如基於 nRF24L01+ 的無線遙控器)
馬達控制板(例如 L298N 馬達驅動板)
兩個直流電機
電池或電池盒
其他零件(例如麵包板、連接線等)
程式碼
下面是一個簡單的 Arduino 程式碼範例,可以讓您控制兩個直流馬達,讓遙控飛機前進、後退、轉彎等。
#include <RF24.h>
// 設置遙控器的地址和通道
const uint64_t address = 0xABCDABCDABCD;
const byte channel = 0x60;
RF24 radio(7, 8); // 定義無線模塊的連接腳位
int leftMotor1 = 2; // 馬達控制板上控制左馬達的輸出1
int leftMotor2 = 3; // 馬達控制板上控制左馬達的輸出2
int rightMotor1 = 4; // 馬達控制板上控制右馬達的輸出1
int rightMotor2 = 5; // 馬達控制板上控制右馬達的輸出2
void setup() {
radio.begin();
radio.setChannel(channel);
radio.setPALevel(RF24_PA_LOW);
radio.openReadingPipe(1, address);
radio.startListening();
pinMode(leftMotor1, OUTPUT);
pinMode(leftMotor2, OUTPUT);
pinMode(rightMotor1, OUTPUT);
pinMode(rightMotor2, OUTPUT);
}
void loop() {
if (radio.available()) {
int data[2];
radio.read(data, sizeof(data));
int leftSpeed = data[0];
int rightSpeed = data[1];
// 控制左馬達轉動
if (leftSpeed >= 0) {
digitalWrite(leftMotor1, HIGH);
digitalWrite(leftMotor2, LOW);
analogWrite(leftMotor1, leftSpeed);
} else {
digitalWrite(leftMotor1, LOW);
digitalWrite(leftMotor2, HIGH);
analogWrite(leftMotor1, -leftSpeed);
}
// 控制右馬達轉動
if (rightSpeed >= 0) {
digitalWrite(rightMotor1, HIGH);
digitalWrite(rightMotor2, LOW);
analogWrite(rightMotor1, rightSpeed);
} else {
digitalWrite(rightMotor1, LOW);
digitalWrite(rightMotor2, HIGH);
analogWrite(rightMotor1, -rightSpeed);
}
}
}
這個程式碼使用 nRF24L01+ 無線模組,讓您可以通過遙控器控制馬達的轉速。具體來說,這個程式碼會讀取無線模塊的數據,並根據數據的兩個值來控制左右兩個馬達的轉速。
連接腳位
以下是基本連接示意圖,可作參考,具體腳位和連接方法可能因實際硬體有所不同,請務必仔細閱讀硬體元件的規格和說明。
遙控飛機連接示意圖
這個示意圖展示了如何將 Arduino Pro Mini、無線模塊、馬達控制板和直流電機連接在一起。具體來說,Arduino Pro Mini 的 VCC 和 GND 腳位分別連接到電池的正負極,無線模塊的 CE、CSN、SCK、MOSI 和 MISO 腳位分別連接到 Arduino Pro Mini 的 9、10、13、11 和 12 腳位,左右兩個直流馬達則連接到馬達控制板上的對應腳位。在馬達控制板上,每個馬達都需要兩個輸出來控制其轉速,這些腳位則連接到 Arduino Pro Mini 的 2、3、4 和 5 腳位。 |
|