STDIO
Tìm kiếm gần đây
    • Nội dung
    • QR Code
    • 0
    • 0
    • Sao chép

    Hướng Dẫn Sử Dụng Module RF315 Truyền Nhận Tín Hiệu Qua Sóng Vô Tuyến Bằng Arduino

    Giới thiệu và code mẫu sử dụng module RF315 thu và phát, code mẫu với Arduino và thư viện VitualWire.
    15/12/2014
    10/08/2020
    4 phút đọc
    Hướng Dẫn Sử Dụng Module RF315 Truyền Nhận Tín Hiệu Qua Sóng Vô Tuyến Bằng Arduino

    Từ những thập niên cuối của thế kỉ 19 sóng vô tuyến đã được khám phá và ứng dụng mạnh mẽ trong lĩnh vực truyền thông. Ngày nay, nhiều thiết bị truyền thông được ra đời phục vụ trong nhiều nhu cầu khác nhau.

    Module RF315 với ưu điểm nhỏ gọn và giá thành thấp nhưng vẫn đáp ứng được nhu cầu truyền tải thông tin bằng sóng vô tuyến là một lựa chọn thích hợp cho việc học tập, nghiên cứu và ứng dụng trong các dự án nhỏ, để truyền nhận thông tin đơn giản.

    Sóng vô tuyến và truyền thông bằng sóng vô tuyến là gì?

    Một điện tích chuyển động sinh ra một điện trường và từ trường biến thiên xung quanh nó, lan truyền trong không gian gọi là sóng điện từ.

    Sóng vô tuyến là một dạng sóng điện từ có bước sóng nằm trong phổ điện từ với tần số nằm trong khoảng 3 kHz đến 300 GHz, tương ứng với bước sóng 1mm đến 100 km và được truyền đi với vận tốc ánh sáng (trong môi trường chân không), có thể lan truyền đi trong môi trường không gian tự do và trên bề mặt Trái Đất nên được ứng dụng nhiều trong truyền thông vô tuyến.

    Bản chất của dữ liệu là 1 dải mã nhị phân gồm các kí tự 0 và 1 nối tiếp nhau, vậy để truyền được dữ liệu đi chúng ta cần chuyển dải nhị phân đó thành 1 dạng tín hiệu có thể truyền đi được và nó phải có dao động (có dạng sóng) để bên nhận có thể phân biệt được các bit trong tín hiệu mà nó nhận được. Dạng tín hiệu sau khi được điều chế đó chính là sóng vô tuyến với một biên độ, tần số và pha xác định.

    Để sử dụng sóng vô tuyến trong truyền thông cần 1 bộ điều chế sóng (theo một quy luật điều chế nhất định) sau đó phát tín hiệu đi và 1 ăng-ten thu tín hiệu, giải mã và cho ra thông tin ban đầu.

    Module RF315 và thư viện hỗ trợ VitualWire

    Module RF315 thu phát.
    Module phát (trái) - Module thu (phải)

    Demo Module thu phát RF315 với Arduino

    Thành phần linh kiện

    • 2 board Arduino.
    • Module RF315 gồm 1 module phát (module nhỏ hơn có 3 chân) và 1 module thu (module lớn hơn có 4 chân).
    • BreadBoard x 2.
    • Dây dẫn.

    Sơ đồ lắp đặt

    SoDoLapDat
    Sơ đồ lắp đặt thu phát với module RF315

    Thư viện VitualWire và các hàm cơ bản

    VitualWire là gì? 

    Arduino hỗ trợ thư viện VitualWire giúp cho việc sử dụng Module RF315 dễ dàng và đơn giản hơn.

    Download thư viện tại đây, sau đó mở Arduino IDE, chọn Sketch → Import Library... → Add Library ... và chọn file .zip vừa tải về để cài đặt thư viện.

    Các hàm config
    vw_set_tx_pin(transmit_pin) Chọn chân truyền data trên Arduino (mặc định là D12)
    vw_set_rx_pin(receice_pin) Chọn chân nhận data trên Arduino (mặc định là D11)
    vw_set_ptt_pin(transmit_en_pin) Chọn chân enable (mặc định là D10)
    vw_set_ptt_inverted(true) Đảo giá trị cho chân enable
    vw_setup(bits_per_second) Chọn tốc độ truyền nhận dữ liệu, lưu ý tốc độ truyền nhận dữ liệu của module thu và module phát phải bằng nhau
    Các hàm dùng cho việc truyền dữ liệu
    vw_send(message, length) Gửi 1 message là 1 mảng kiểu byte với length là độ dài của message
    vw_tx_active() Trả về true nếu message đang được gửi và trả về false nếu như không nhận được message
    vw_wait_tx() Chờ cho đến khi message gửi xong
    Các hàm dùng cho việc nhận dữ liệu
    vw_rx_start() Cho phép receiver module bắt đầu nhận tín hiệu
    vw_have_message() Trả về true nếu message đã được gửi
    vw_wait_rx() Chờ cho đến khi nhận xong message và trả về true
    vw_wait_rx_max(timeout_ms) Chờ cho đến khi nhận xong message và trả về true hoặc trả về false khi thời gian chờ vượt quá timeout_ms
    vw_get_message(buf, &buflen) Đọc message và độ dài của message được nhận gần nhất vào buf và buflen, với buf là 1 mảng kiểu byte
    vw_rx_stop() Dừng cho phép nhận tín hiệu

    Code thử nghiệm

    Code mẫu Module phát
    #include <VirtualWire.h>
    
    #define LED_PIN         13;
    #define TRANSMIT_PIN    12;
    #define TRANSMIT_EN_PIN 10;
    #define SPEED           1024;
    
    void setup()
    {
      vw_set_ptt_pin(TRANSMIT_EN_PIN);
      vw_set_ptt_inverted(true);
      vw_setup(SPEED);
      vw_set_tx_pin(TRANSMIT_PIN);
    
      pinMode(LED_PIN, OUTPUT);
    }
    
    void loop()
    {
      char msg[5] = {'S','T','D','I','O'};   
      
      digitalWrite(LED_PIN, HIGH);
    
      vw_send((byte *)msg, 5);
      vw_wait_tx();
    
      digitalWrite(LED_PIN, LOW);
      delay(1000);
    }
    Code mẫu module thu
    #include <VirtualWire.h>
           
    #define RECEIVE_PIN 11;
    #define SPEED       1024;
    
    byte msg[VW_MAX_MESSAGE_LEN];
    byte msgLen = VW_MAX_MESSAGE_LEN;
    
    void setup()
    {
      Serial.begin(9600);
      Serial.println("Ready.........");
    
      vw_setup(SPEED);
      vw_set_rx_pin(RECEIVE_PIN);
      vw_rx_start();
    }
    
    void loop()
    {
      if (vw_have_message())
      {
        vw_wait_rx();
        vw_get_message(msg, &msgLen);
    
        Serial.print("Got: ");
        for (int i = 0; i < msgLen; i++)
        {
          Serial.write(msg[i]);
        }
        Serial.println();
      }
    }
    0
    Điện Tử Ứng Dụng

    Điện Tử Ứng Dụng

    Kiến thức điện tử, Arduino, Raspberry Pi, giới thiệu sản phẩm.

    Khi bạn nhấn vào liên kết sản phẩm do STDIO đề xuất và mua hàng, STDIO có thể nhận được hoa hồng. Điều này hỗ trợ STDIO tạo thêm nhiều nội dung hữu ích.. Tìm hiểu thêm.

    Đề xuất

    Đo Khoảng Cách Trong Không Gian Với Cảm Biến SRF05 Và Arduino
    Hướng dẫn sử dụng cảm biến sóng siêu âm SRF05 để đo khoảng cách từ vật ...
    Tín Hiệu Số Và Tương Tự - Analog/Digital
    Trong ngành điện tử nói chung và trong lập trình vi điểu khiển nói ...

    Khám phá

    Thỏa Thuận Sử Dụng Dịch Vụ STDIO
    Thỏa thuận này quy định về điều kiện giao kết hợp đồng, quyền lợi, nghĩa ...
    Tính Hiệu Quả và Khả Thi trong Việc Sử Dụng Hệ Thống Chơi Game Thực Tại Ảo Tại Gia Cho Người Lớn Tuổi
    Tổng hợp các kết quả khảo sát về hướng phát triển ứng dụng mới trong y ...
    Validate Form Bằng Thư Viện Knockout-Validation trong Dự Án Durandaljs
    Bài viết hướng dẫn sử dụng thư viện Knockout-Validation để kiểm tra dữ ...
    90 Ngày Đầu Tiên Làm Sếp
    Quyển sách dành cho những ai đang cảm thấy mất định hướng khi lần đầu ...
    STDIO Starter Kit - Các Thành Phần Cần Thiết Để Học Điện Tử Cơ Bản
    Bộ STDIO Starter Kit là bộ kit điện tử thống kê các thành phần cần thiết ...
    7 Điều Không Nên Bỏ Qua Trước Khi Tham Gia Phỏng Vấn Kỹ Thuật
    Với nhiều năm trong lĩnh vực đào tạo và tuyển dụng lập trình viên, nhận ...
    12/08/2015
    Đo Tốc Độ Động Cơ Sử Dụng Cảm Biến IR FC-03
    Bài viết hướng dẫn cách sử dụng cảm biến đo tốc độ IR FC-03 kết hợp với ...
    Hướng Dẫn Sử Dụng Module Wifi ESP8266 v1 với Arduino Uno
    ESP8266 là một chip tích hợp cao - System on Chip (SoC), có khả năng xử ...
    STDIO
    Trang chính
    Công ty TNHH STDIO

    30, Trịnh Đình Thảo, Hòa Thạnh, Tân Phú, Hồ Chí Minh
    +84 28.36205514 - +84 942.111912
    developer@stdio.vn

    383/1 Quang Trung, Phường 10, Quận Gò Vấp, Hồ Chí Minh
    Số giấy phép ĐKKD: 0311563559 do sở Kế hoạch và Đầu Tư TPHCM cấp ngày 23/02/2012

    ©STDIO, 2013 - 2020