Điều khiển động cơ Servo từ xa bằng biến trở - Sử dụng module nRF24L01

I. Lượn vài vòng

Nhiều bạn đã và đang tìm hiểu những ứng dụng của module nRF24L01 và đang gặp rắc rối, hay không biết liệu nó có làm được gì hay hơn không. Ở bài viết này tôi xin hướng dẫn một cách tiếp theo để điều khiển động cơ Servo thông qua module nRF24L01 và biến trở. Nó làm được gì không? Ở đây tác giả tạm giữ bí mật về ứng dụng của nó trên dự án của mình. Nhưng với bài viết này hoàn toàn bạn có thể nghĩ ra ứng dụng cho nó chẳng hạn tăng tốc độ máy quạt từ xa, điều chỉnh van nước,... Chả có gì khó cả, ta bắt đầu thôi nào!

II. Nhắc lại một ít kiến thức về Module NRF24L01

Các bn có th d dàng tìm kiếm thông s ca module này trên Cộng đồng Arduino Việt Nam qua từ khóa NRF24L01. Tôi xin gii thiu sơ qua mt s đc đim mà tôi quan tâm như sau:

  • Khoảng cách thu phát khoảng 100m (với điều kiện trống trải), khoảng 30-50m (trong nhà). Với một số phiên bản đặc biệt ví dụ như loại NRF24L01+ thì khoảng cách có thể lên tới 1km. Khá thích hợp cho các bộ điều khiển cầm tay.
  • Có anten sẵn trên bảng mạch rất tiện và đẹp.
  • Có khả năng truyền tín hiệu 2 chiều. Tức là một module vừa có thể là transmitter vừa có thể là receiver. Khác biệt so với loại 433Mhz là phải có 2 module riêng biệt.
  • Giá thành thấp khoảng 10k VNĐ/cái (tôi mua trên Aliexpress.com) tức rẻ hơn module 433Mhz một chút.
  • Ít gặp sự cố (hiện tại tới lúc này)

III. Phần cứng

  • 02 mạch Arduino.
  • 02 module NRF24L01.
  • 01 biến trở
  • 01 động cơ servo futaba
  • Test board và dây nối.

IV. Lắp mạch

Ở đây tôi nói về cách nối module NRF24 với Arduino cách nối dây này dùng cho cả hai bên mạch thu và phát đừng quên nhé !

1. Module nRF24L01

NRF24 Arduino
1 GND
2 3.3V
3 D9
4 D10
5 D13
6 D11
7 D12

2. Cách nối dây dành cho transmitter (mạch phát):

3. Cách nối dây dành cho receiver (mạch thu):

 

V. Lập trình

Lưu ý: Cần tải và cài đặt thư viện nRF24L01 thì mới nạp code được nhá !

Để tải và cài đặt bạn quay lại bài viết Sử dụng Module NRF24L01 - Thu phát sóng vô tuyến 2.4GHz với Arduino

Hoặc tải thư viện TẠI ĐÂY (mirror)

1. Dành cho transmitter (mạch phát):

#include <SPI.h>
#include "RF24.h"
const uint64_t pipe = 0xE8E8F0F0E1LL; // địa chỉ để phát
RF24 radio(9,10);
unsigned char msg[1]; //số dương kiểu unsigned char, tương đương với byte msg[1]. Dùng để lưu trữ nội dung sẽ gửi.
const int potpin_1 = A0; // chân biến trở
int val_1;
void setup(){ 
    //========Module NRF24
    Serial.begin(9600);
    radio.begin();                     
    radio.setAutoAck(1);               
    radio.setRetries(1,1);             
    radio.setDataRate(RF24_1MBPS);    // Tốc độ truyền
    radio.setPALevel(RF24_PA_MAX);      // Dung lượng tối đa
    radio.setChannel(10);               // Đặt kênh
    radio.openWritingPipe(pipe);        // mở kênh
}
void loop() { 
    val_1 = analogRead(potpin_1); //đọc giá trị biến trở
    val_1 = map(val_1, 0, 1023, 0, 180); 
    msg[0] = val_1;
    Serial.println(msg[0]);
    radio.write(&msg, sizeof(msg));
}

2. Dành cho receiver (mạch thu):

#include <SPI.h>
#include <Servo.h> 
#include "RF24.h"
const uint64_t pipe = 0xE8E8F0F0E1LL; // địa chỉ phát
RF24 radio(9,10);
unsigned char msg[1];
Servo servo1;// servo1
int data; 
int pos;
    
void setup(){
    Serial.begin(9600);
    radio.begin();                     
    radio.setAutoAck(1);              
    radio.setDataRate(RF24_1MBPS);    // Tốc độ dữ liệu
    radio.setChannel(10);               // Đặt kênh
    radio.openReadingPipe(1,pipe);     
    radio.startListening();            
    servo1.attach(3);  // sử dụng chân số 3 để điều khiển servo
}
    
void loop(){
    if (radio.available()) {
        radio.read(&msg, sizeof(msg));
        servo1.write(msg[0]);
        Serial.println(msg[0]);
    }
}

VI. Kết luận cuối cùng

Từ những công cụ và kiến thức mình cung cấp ở trên bạn có thể tự nghĩ ra ý tưởng của mình về ứng dụng nó đi nào ! Cảm ơn đã đọc bài bạn có thể đóng góp ý kiến bên dưới

Video demo hoạt động quay gấp buổi tối có gì thông cảm HAHA :  

lên
25 thành viên đã đánh giá bài viết này hữu ích.
Chuyên mục: 
Các dự án được truyền cảm hứng

Xe điều khiển bằng tay game Dual Shock3 thông qua Bluetooth

Vừa bắt đầu với arduino được hơn 1 tuần, có tham khảo qua các nguồn từ "trung ương đến địa phương", nắm được 1 số kiến thức cơ bản nên mình bắt đầu thực hiện 1 sản phẩm để đúc kết kinh nghiệm. Trong số đó thì xe điều khiển là dễ nhất. Kết hợp với cái tay game ps3 nằm lăn lóc ở góc nhà. Thế là có 1 chiếc xe điều khiển từ xa. Bắt đầu nhé.

lên
17 thành viên đã đánh giá bài viết này hữu ích.

Làm xe điều khiển từ xa bằng Bluetooth - Điều khiển bằng Android với App Inventor

Mình rất thích điện tử nhưng không học về ngành điện tử. Rất may là có Adruino, rồi có cộng đồng Adruino Việt Nam, đặc biệt là sự nhiệt tình của tất cả các bạn trong cộng đồng, mình đã làm được 1 chiếc xe điều khiển từ xa. Cho con chơi là lí do phụ thôi, còn tìm hiểu, học tập là chính. Hôm nay chia sẻ cùng các bạn, cùng gửi lời cảm ơn đến tất cả các bạn trong cộng đồng. Có bạn thì giúp đỡ trực tiếp, có bạn thì viết bài, rồi có bạn thì bình luận, nêu câu hỏi. Tất cả đều có giá trị đối với mình.

Ngại viết bài nên mình đăng dưới dạng ảnh.

lên
26 thành viên đã đánh giá bài viết này hữu ích.
Các bài viết cùng tác giả

Bật tắt đèn bằng giọng nói với Arduino

Đã có nhiều bài viết về sử dụng bluetooth để bật tắt thiết bị từ xa, hay là những cách điều khiển khác bằng button nhưng liệu bạn có nghĩ bạn có thể bật tắt thiết bị (Ví dụ ở đây là một đèn LED, nếu muốn bật tắt thiết bị 220V bạn tham khảo thêm bài này) từ xa bằng giọng nói hay không? Có vẻ có gì đó không ổn đúng không nào, nhưng nó không khó và không có gì là không ổn cả. Với bài viết này tác giả muốn giúp mọi người có thể làm được điều này một cách dễ dàng và ứng dụng nó làm điều mình thích!

lên
33 thành viên đã đánh giá bài viết này hữu ích.

Cách chế một Camera Stream cho robot không cần Raspberry Pi hay Intel Galileo

Có nhiều bạn đang tìm cách nào đó để robot của bạn có camera mà lo lắng chi phí quá cao, hay lo lắng rằng nó quá khó để thực hiện điều đó. Giải pháp đã có! Hôm nay mình xin giới thiệu một cách mới để có thể sử dụng một cái điện thoại cũ chạy hệ điều hành Android thành camera quan sát cho Robot của bạn hay làm điều gì đó cao cả hơn theo trí tưởng tượng của bạn! 

lên
24 thành viên đã đánh giá bài viết này hữu ích.