Com.97094 Em có cái code transmit này điều khiển 4 relay bằng nrf24l01 qua arduino . Bác cho em hỏi theo code này thì sơ đồ đấu nối buton từ chân 5 6 7 8 sẽ đi xuông mass phải k Em cám ơn
HoangNam.61658 Com.97094 ARDUINO GIAO TIẾP NRF24L01 THU THẬP DỮ LIỆU CẢM BIẾN 2 SLAVE 1 MASTER https://www.youtube.com/watch?v=aG6UEoFj1bA
making PhongPhm Tham khảo bài này thử bạn https://making.vn/d/39-lap-trinh-module-nrf24l01-truyen-nhan-du-lieu-khong-day
making Dưới đây là một ví dụ về code điều khiển xe từ xa sử dụng module nRF24L01. Code này được chia thành hai phần: một phần dành cho bộ phát (remote) và phần còn lại cho bộ thu (xe). Phần code cho Bộ phát (Remote): cpp Sao chép mã #include <SPI.h> #include <nRF24L01.h> #include <RF24.h> // Chân kết nối với module nRF24L01 #define CE_PIN 9 #define CSN_PIN 10 RF24 radio(CE_PIN, CSN_PIN); const byte address[6] = "00001"; // Địa chỉ truyền // Cấu hình các chân điều khiển trên remote int joystickX = A0; // Chân đọc giá trị trục X của joystick int joystickY = A1; // Chân đọc giá trị trục Y của joystick struct Data_Package { int x; int y; }; //Data_Package data; void setup() { Serial.begin(9600); radio.begin(); radio.openWritingPipe(address); // Mở đường truyền đến địa chỉ đã định radio.setPALevel(RF24_PA_MIN); // Thiết lập công suất truyền radio.stopListening(); // Bộ phát không cần lắng nghe } void loop() { data.x = analogRead(joystickX); // Đọc giá trị trục X từ joystick data.y = analogRead(joystickY); // Đọc giá trị trục Y từ joystick radio.write(&data, sizeof(Data_Package)); // Gửi dữ liệu đi delay(20); // Độ trễ nhỏ để giảm tải mạng } Phần code cho Bộ thu (Xe): cpp Sao chép mã #include <SPI.h> #include <nRF24L01.h> #include <RF24.h> // Chân kết nối với module nRF24L01 #define CE_PIN 9 #define CSN_PIN 10 RF24 radio(CE_PIN, CSN_PIN); const byte address[6] = "00001"; // Địa chỉ nhận // Chân điều khiển động cơ int motor1Forward = 3; int motor1Backward = 4; int motor2Forward = 5; int motor2Backward = 6; struct Data_Package { int x; int y; }; Data_Package data; void setup() { Serial.begin(9600); radio.begin(); radio.openReadingPipe(0, address); // Mở đường nhận tại địa chỉ đã định radio.setPALevel(RF24_PA_MIN); // Thiết lập công suất nhận radio.startListening(); // Bắt đầu lắng nghe // Thiết lập các chân điều khiển động cơ là OUTPUT pinMode(motor1Forward, OUTPUT); pinMode(motor1Backward, OUTPUT); pinMode(motor2Forward, OUTPUT); pinMode(motor2Backward, OUTPUT); } void loop() { if (radio.available()) { radio.read(&data, sizeof(Data_Package)); // Nhận dữ liệu từ bộ phát // Điều khiển động cơ dựa trên dữ liệu từ joystick int x = data.x - 512; // Dịch giá trị về giữa (0 -> 1023 thành -512 -> 511) int y = data.y - 512; if (y > 100) { // Tiến digitalWrite(motor1Forward, HIGH); digitalWrite(motor1Backward, LOW); digitalWrite(motor2Forward, HIGH); digitalWrite(motor2Backward, LOW); } else if (y < -100) { // Lùi digitalWrite(motor1Forward, LOW); digitalWrite(motor1Backward, HIGH); digitalWrite(motor2Forward, LOW); digitalWrite(motor2Backward, HIGH); } else { // Dừng lại digitalWrite(motor1Forward, LOW); digitalWrite(motor1Backward, LOW); digitalWrite(motor2Forward, LOW); digitalWrite(motor2Backward, LOW); } if (x > 100) { // Quẹo phải digitalWrite(motor1Forward, HIGH); digitalWrite(motor1Backward, LOW); digitalWrite(motor2Forward, LOW); digitalWrite(motor2Backward, LOW); } else if (x < -100) { // Quẹo trái digitalWrite(motor1Forward, LOW); digitalWrite(motor1Backward, LOW); digitalWrite(motor2Forward, HIGH); digitalWrite(motor2Backward, LOW); } } } Mô tả hoạt động: Bộ phát (remote) sẽ đọc giá trị từ joystick và gửi dữ liệu qua module nRF24L01 đến xe. Bộ thu (xe) sẽ nhận dữ liệu từ bộ phát và điều khiển động cơ để tiến, lùi, quẹo trái hoặc phải dựa trên giá trị trục X và Y của joystick. Kết nối phần cứng: nRF24L01 kết nối với Arduino qua SPI: CE → Chân 9 CSN → Chân 10 SCK → Chân 13 MOSI → Chân 11 MISO → Chân 12 Joystick kết nối với Arduino (remote) qua các chân analog A0, A1. Động cơ kết nối với các chân PWM trên Arduino để điều khiển tiến/lùi/quẹo. Hãy chắc chắn rằng bạn đã cài đặt thư viện RF24 cho Arduino để có thể sử dụng module nRF24L01.