Arduino Pro Mini(P328 版本)製作遙控飛機
所需材料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;
radio.read(data, sizeof(data));
int leftSpeed = data;
int rightSpeed = data;
// 控制左馬達轉動
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 腳位。
頁:
[1]