- Thành phần bắt buộc
- Phần mềm được sử dụng
- Mô-đun thu và phát RF 433MHz
- Sơ đồ mạch
- Tạo dự án cho Atmega 8 bằng CodeVision
- CODE và giải thích
- Tải mã lên Atmega8
Làm cho các dự án của chúng tôi Không dây luôn làm cho nó trông bắt mắt và cũng mở rộng phạm vi mà nó có thể được kiểm soát. Bắt đầu từ việc sử dụng đèn LED hồng ngoại thông thường để điều khiển không dây khoảng cách ngắn cho đến ESP8266 để điều khiển HTTP trên toàn thế giới, có rất nhiều cách để điều khiển một thứ gì đó không dây. Trong dự án này, chúng tôi học cách xây dựng các dự án không dây bằng cách sử dụng mô-đun RF 433 MHz và vi điều khiển AVR.
Trong dự án này, chúng tôi thực hiện những việc sau: -
- Chúng tôi sử dụng Atmega8 cho Bộ phát RF và Atmega8 cho phần Bộ thu RF.
- Chúng tôi giao diện một đèn LED và một nút nhấn với bộ vi điều khiển Atmega8.
- Về phía máy phát, chúng tôi Giao diện nút nhấn với Atmega và truyền dữ liệu. Ở phía máy thu, chúng tôi sẽ nhận dữ liệu không dây và hiển thị đầu ra trên đèn LED.
- Chúng tôi sử dụng bộ mã hóa và IC giải mã để truyền dữ liệu 4 bit.
- Tần số tiếp nhận là 433Mhz sử dụng mô-đun RF TX-RX giá rẻ hiện có trên thị trường.
Thành phần bắt buộc
- Vi điều khiển AVR Atmega8 (2)
- Bộ lập trình USBASP
- Cáp FRC 10 chân
- Bảng bánh mì (2)
- Đèn LED (2)
- Nút bấm (1)
- Cặp HT12D và HT12E
- Mô-đun RF RX-TX
- Điện trở (10k, 47k, 1M)
- Dây nhảy
- Nguồn điện 5V
Phần mềm được sử dụng
Chúng tôi sử dụng phần mềm CodeVisionAVR để viết mã và phần mềm SinaProg để tải mã của chúng tôi lên Atmega8 bằng trình lập trình USBASP.
Bạn có thể tải xuống các phần mềm này từ các liên kết cho sẵn:
CodeVisionAVR :
SinaProg:
Trước khi đi vào sơ đồ và mã, chúng ta hãy hiểu hoạt động của mô-đun RF với IC mã hóa-giải mã.
Mô-đun thu và phát RF 433MHz
Đó là các mô-đun máy phát và máy thu chúng tôi đang sử dụng trong dự án. Đây là mô-đun rẻ nhất hiện có cho 433 MHz. Các mô-đun này chấp nhận dữ liệu nối tiếp trong một kênh.
Nếu chúng ta xem thông số kỹ thuật của các mô-đun, máy phát được đánh giá hoạt động 3,5-12V như điện áp đầu vào và khoảng cách truyền là 20-200 mét. Nó truyền trong giao thức AM (Điều chế âm thanh) ở tần số 433 MHz. Chúng ta có thể truyền dữ liệu với tốc độ 4KB / S với công suất 10mW.
Trong hình trên, chúng ta có thể thấy chân cắm của mô-đun Máy phát. Từ trái sang phải các chân là VCC, DATA và GND. Chúng tôi cũng có thể thêm ăng-ten và hàn nó vào điểm được biểu thị trong hình trên.
Đối với thông số kỹ thuật của Bộ thu, Bộ thu có định mức 5V dc và dòng điện Quiescent 4MA làm đầu vào. Tần số nhận là 433,92 MHz với độ nhạy -105DB.
Trong hình trên, chúng ta có thể thấy chân cắm của mô-đun bộ thu. Bốn chân từ Trái sang phải, VCC, DATA, DATA và GND. Hai chân giữa đó được kết nối bên trong. Chúng tôi có thể sử dụng bất kỳ một hoặc cả hai. Nhưng nó là một thực hành tốt để sử dụng cả hai để giảm tiếng ồn khớp nối.
Ngoài ra, một điều không được đề cập trong biểu dữ liệu, cuộn cảm biến đổi hoặc POT ở giữa mô-đun được sử dụng để hiệu chuẩn tần số. Nếu chúng tôi không thể nhận được dữ liệu đã truyền, có khả năng là tần số truyền và nhận không khớp. Đây là mạch RF và chúng ta cần điều chỉnh máy phát tại điểm tần số phát hoàn hảo. Ngoài ra, giống như bộ phát, mô-đun này cũng có một cổng Antenna; chúng ta có thể hàn dây ở dạng cuộn để tiếp nhận lâu hơn.
Phạm vi truyền dẫn phụ thuộc vào điện áp cung cấp cho Máy phát và chiều dài của ăng-ten ở cả hai phía. Đối với dự án cụ thể này, chúng tôi đã không sử dụng ăng-ten bên ngoài và sử dụng 5V ở phía máy phát. Chúng tôi đã kiểm tra với khoảng cách 5 mét và nó hoạt động hoàn hảo.
Tìm hiểu thêm về cặp RF trong Mạch thu và phát RF. Bạn có thể hiểu thêm về hoạt động của RF bằng cách kiểm tra các dự án sử dụng cặp RF sau:
- Robot điều khiển RF
- Mạch chuyển đổi IR sang RF
- Đèn LED điều khiển từ xa RF sử dụng Raspberry Pi
- Thiết bị gia dụng được điều khiển bằng RF
Sơ đồ mạch
Sơ đồ mạch cho phía máy phát RF
- Pin D7 của atmega8 -> Pin13 HT12E
- Pin D6 của atmega8 -> Pin12 HT12E
- Pin D5 của atmega8 -> Pin11 HT12E
- Pin D4 của atmega8 -> Pin10 HT12E
- Nút bấm vào Pin B0 của Atmega.
- Điện trở 1M-ohm giữa chân 15 và 16 của HT12E.
- Chân 17 của HT12E đến chân dữ liệu của mô-đun máy phát RF.
- Chân 18 của HT12E vào 5V.
- Chân GND 1-9 và Chân 14 của HT12E và Chân 8 của Atmega.
Sơ đồ mạch cho phía máy thu RF
- Pin D7 của atmega8 -> Pin13 HT12D
- Pin D6 của atmega8 -> Pin12 HT12D
- Pin D5 của atmega8 -> Pin11 HT12D
- Pin D4 của atmega8 -> Pin10 HT12d
- LED đến Chân B0 của Atmega.
- Chân 14 của HT12D đến chân dữ liệu của mô-đun thu RF.
- Điện trở 47Kohm giữa chân 15 và 16 của HT12D.
- GND chân 1-9 của HT12D và chân 8 của Atmega.
- LED đến chân 17 của HT12D.
- 5V đến chân 7 của Atmega và chân 18 của HT12D.
Tạo dự án cho Atmega 8 bằng CodeVision
Sau khi cài đặt các phần mềm này, hãy làm theo các bước dưới đây để tạo dự án và viết mã:
Bước 1. Mở CodeVision Bấm vào Tệp -> Mới -> Dự án . Hộp thoại Xác nhận sẽ xuất hiện. Nhấp vào Có
Bước 2. CodeWizard sẽ mở ra. Bấm vào tùy chọn đầu tiên, tức là AT90 , và bấm OK.
Bước 3. Chọn chip vi điều khiển của bạn, ở đây chúng ta sẽ lấy Atmega8 như hình.
Bước 4: - Nhấp vào Cổng. Trong phần Máy phát, Nút nhấn là đầu vào của chúng ta và 4 đường dữ liệu là đầu ra. Vì vậy, chúng ta phải khởi tạo 4 chân của Atmega làm đầu ra. Nhấp vào Cổng D. Tạo Bit 7, 6, 5 và 4 bằng cách nhấp vào nó.
Bước 5: - Nhấp vào Chương trình -> Tạo, Lưu và Thoát . Bây giờ, hơn một nửa công việc của chúng tôi đã hoàn thành
Bước 6: - Tạo một thư mục mới trên màn hình để các tệp của chúng ta vẫn nằm trong thư mục, nếu không nó sẽ bị phân tán trên toàn bộ cửa sổ màn hình. Đặt tên thư mục của bạn như bạn muốn và tôi khuyên bạn nên sử dụng cùng tên để lưu các tệp chương trình.
Chúng ta sẽ có ba hộp thoại lần lượt để lưu tệp. Làm tương tự với hai hộp thoại khác sẽ xuất hiện sau khi bạn lưu hộp thoại đầu tiên.
Bây giờ, không gian làm việc của bạn trông như thế này.
Phần lớn công việc của chúng tôi được hoàn thành với sự giúp đỡ của Wizard. Bây giờ, chúng ta chỉ phải viết vài dòng mã cho phần phát và nhận và Thế là xong…
Làm theo các bước tương tự để tạo tệp cho phần Người nhận. Trong phần thu, chỉ có Led là đầu ra của chúng ta, vì vậy hãy tạo cổng B0 bit ra ngoài.
CODE và giải thích
Chúng tôi sẽ viết mã để bật tắt đèn LED không dây bằng RF. Mã hoàn chỉnh cho cả Atmega ở phía máy phát và máy thu được đưa ra ở cuối bài viết này.
Mã Atmega8 cho Máy phát RF:
Đầu tiên Bao gồm tệp tiêu đề delay.h để sử dụng độ trễ trong mã của chúng tôi.
#include
Bây giờ, đến dòng cuối cùng của mã nơi bạn sẽ tìm thấy một trong khi vòng lặp. Mã chính của chúng tôi sẽ nằm trong vòng lặp này.
Trong vòng lặp While , chúng tôi sẽ gửi byte 0x10 đến PORTD khi nhấn nút và, sẽ gửi 0x20 khi không nhấn nút. Bạn có thể sử dụng bất kỳ giá trị nào để gửi.
while (1) { if (PINB.0 == 1) { PORTD = 0x10; } if (PINB.0 == 0) { PORTD = 0x20; } } }
Mã Atmega cho Bộ thu RF
Đầu tiên khai báo các biến ở trên void main hàm để lưu ký tự đến từ mô-đun RF.
#include
Bây giờ đến khi vòng lặp. Trong vòng lặp này, lưu các byte đến vào một byte biến char và kiểm tra xem byte đến có giống như chúng ta viết trong phần truyền của chúng ta hay không. Nếu các byte giống nhau, hãy đặt PortB.0 cao và KHÔNG sử dụng PORTB.0 để bật tắt đèn LED.
trong khi (1) { byte = PIND; if (PIND.7 == 0 && PIND.6 == 0 && PIND.5 == 0 && PIND.4 == 1) { PORTB.0 = ~ PORTB.0; delay_ms (1000); }}}
Xây dựng dự án
Mã của chúng tôi đã hoàn thành. Bây giờ, chúng ta phải Xây dựng dự án của mình . Bấm vào biểu tượng Build the project như hình.
Sau khi xây dựng dự án, tệp HEX được tạo trong thư mục Gỡ lỗi-> Exe có thể được tìm thấy trong thư mục mà bạn đã tạo trước đó để lưu dự án của mình. Chúng tôi sẽ sử dụng tệp HEX này để tải lên trong Atmega8 bằng phần mềm Sinaprog.
Tải mã lên Atmega8
Kết nối các mạch của bạn theo sơ đồ đã cho để lập trình Atmega8. Kết nối một bên của cáp FRC với bộ lập trình USBASP và bên kia sẽ kết nối với các chân SPI của bộ vi điều khiển như mô tả bên dưới:
- Chân 1 của đầu nối FRC cái -> Chân 17, MOSI của Atmega8
- Chân 2 kết nối với Vcc của atmega8 tức là Chân 7
- Chân 5 kết nối với Reset của atmega8 tức là Chân 1
- Chân 7 kết nối với SCK của atmega8 tức là Chân 19
- Chân 9 kết nối với MISO của atmega8 tức là Chân 18
- Pin 8 kết nối với GND của atmega8 tức là Pin 8
Kết nối các thành phần còn lại trên breadboard theo sơ đồ mạch và mở Sinaprog.
Chúng tôi sẽ tải lên tệp Hex được tạo ở trên bằng cách sử dụng Sinaprog, vì vậy hãy mở nó và Chọn Atmega8 từ menu thả xuống Thiết bị. Chọn tệp HEX từ thư mục Debug-> Exe như hình.
Bây giờ, nhấp vào Chương trình.
Bạn đã hoàn tất và Bộ vi điều khiển của bạn đã được lập trình. Sử dụng các bước tương tự để lập trình Atmega khác ở phía máy thu.
Mã hoàn chỉnh và video minh họa được đưa ra bên dưới.