Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 23 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
23
Dung lượng
2,2 MB
Nội dung
ĐẠI HỌC LẠC HỒNG KHOA CƠ ĐIỆN ĐIỆN TỬ - ĐỒ ÁN MÔN HỌC VI ĐIỀU KHIỂN Đề tài: THIẾT KẾ THI CÔNG MẠCH ĐIỀU KHIỂN THIẾT BỊ BẰNG REMOD SVTH: NGUYỄN QUỐC AN NGUYỄN PHƯỚC HẢI NGUYỄN LÊ MẠNH ĐÌNH GVHD: T.S NGƠ KIM LONG Đồng nai, 2021 MỤC LỤC Contents CHƯƠNG MỞ ĐẦU 1.1 Lý chọn đề tài 1.2 Mục tiêu nghiên cứu 1.3 Phạm vi nghiên cứu .1 1.4 Kết đạt CHƯƠNG CƠ SỞ LÝ THUYẾT 2.1 Phần cứng 2.1.1 Vi xử lý : STM32F103 .2 2.1.2 Module Điều khiển hồng ngoại từ xa + Remote IR 2.1.3 Module relay .5 2.1.4 LCD 16x2 tích hợp module chuyển đổi I2C 2.2 Phần mềm hỗ trợ lập trình .7 2.2.1 STM32CubeMX: .7 2.2.2 KeilC V5 CHƯƠNG :THIẾT KẾ 3.1 Bài toán đặt 3.2 Xử lý tín hiệu remote Hồng Ngoại IR1838 .10 3.2.1 Truyền liệu hồng ngoại: .10 3.2.2 Phương thức giao tiếp 11 3.2.3 Mã code hồng ngoại 11 3.3.2 Lập trình STM32F411 với remote hồng ngoại+IR1838 14 4.1 Kết đạt 19 4.2 Nhận xét cải tiến .19 DANH MỤC BẢNG BIỂU 21 DANH MỤC HÌNH ẢNH 21 CHƯƠNG MỞ ĐẦU 1.1 Lý chọn đề tài Ngày nay, xã hội phát triển mạnh mẽ , kỹ thuật ngày đại nên nhu cầu điều khiển thiết bị từ xa , ngày cao hệ thống dây cáp phức tạp lại đáp ứng nhu cầu khu vực chật hẹp việc nghiên cứu thiết kế sản phẩm điều khiển thiết bị không dây ý nghĩa lớn Do đó, nhóm định làm đề "mạch điều khiển thiết bị remote hồng ngoại " chúng em nghiên cứu hệ điều hành STM32F1, cách thức giao tiếp, điều khiển thu thập liệu qua phát hồng ngoại từ chúng em thiết kế phần cứng điều khiển relay module kết hợp với để mở rộng đối tượng điều khiển 1.2 Mục tiêu nghiên cứu Mục tiêu sản phẩm: - Thay việc điều khiển thiết bị dây cáp - Điều khiển thiết bị dễ dàng - Có thể điều khiển nhiều thiết bị lúc 1.3 Phạm vi nghiên cứu - Phần cứng: Đấu nối thiết bị ngoại vi với vi xử lý trung tâm Xử lý vấn đề phần cứng phát sinh (Nhiễu) Phần mềm: Nghiên cứu, đưa giải pháp lập trình 1.4 Kết đạt - Thành thạo việc sử dụng phát huy tính hữu hiệu vào project có dùng IR1838, board mạch STM32F103 , biết cách quản lý liệu đọc để xử lý ứng dụng nhiều chức khác CHƯƠNG CƠ SỞ LÝ THUYẾT 2.1 Phần cứng Với đề tài khoá cửa tự động này, phần cứng mà em sử dụng bao gồm: - Kit STM32F103C8T6 CAN RS485 Board - Mạch nạp STM32, ST-Link V2 mini - Module Điều Khiển Hồng Ngoại Từ Xa + Remote IR 1838 - Module Relay 5V với opto cách li kích H/L - LCD Text LCD1602 xanh dương chữ trắng 5V kèm I2C diver 2.1.1 Vi xử lý : STM32F103 Bo mạch điều khiển cơng nghiệp Stm32F103, tích hợp CAN, 485, giao tiếp nối tiếp, cho dù bạn chọn loại nào, đáp ứng yêu cầu sử dụng, sản xuất cấp công nghiệp, hiệu suất ổn định đáng tin cậy Gợi ý cho người: Nếu bạn muốn học giao tiếp xe buýt, đề nghị bạn nên mua bảng Bằng cách này, bạn trực quan trải nghiệm hiệu giao tiếp đa máy Hoạt động thường xuyên-ADC Hoạt động CRC thường xuyên Hoạt động thường xuyên-I0 bản_LED đèn nước chảy Hoạt động thường xuyên bản-SysTick (bộ đếm thời gian đánh dấu hệ thống) Hoạt động hẹn TIM thường xuyên Bộ thu phát USART thường xuyên Nút thường trình (phương pháp truy vấn) Nút thường trình (chế độ ngắt) Quy trình giao thức MODBUS khơng theo quy trình dựa bo mạch MINI 10 Thường xuyên-Tạo nhiệm vụ dựa UCOS bo mạch MINI 11 Hiệu ứng ánh sáng Thở thường xuyên dựa bo mạch MINI, thực TIM1 PWM 12 Dựa quy trình dựa cổng nối tiếp ảo STM32 USB để chụp ADC 13 Dựa quy trình dựa cổng nối tiếp ảo STM32 USB để điều khiển cổng IO 14 Giao tiếp ví dụ-CAN dựa hai bảng MINI 15 Giao tiếp thường xuyên-RS485 dựa hai bo mạch MINI 16 Quy trình-quy trình máy chủ web dựa WEB (phải mua riêng để chạy) 17 Quy trình thu phát định kỳ-Khơng dây dựa mô-đun NRF24L01 (phải mua riêng để chạy) 18 Quy trình đo nhiệt độ định kỳ dựa DS18B20 (phải mua riêng để chạy) 19 Quy trình đo nhiệt độ độ ẩm dựa định kỳ-DHT11 (phải mua riêng để chạy) Hình Kit STM32F103C8T6 CAN RS485 Board 2.1.2 Module Điều khiển hồng ngoại từ xa + Remote IR Thông số kỹ thuật: ● Mạch thu: IR 1838 ● Điện áp hoạt động: 5VDC ● Dạng ngõ ra: Digital Sơ đồ chân: ● Chân VCC: cung cấp điện áp 3.3V đến 5V ● Chân GND: nối mass nguồn ● Chân IN: kết nối trực tiếp đến vi điều khiển ` Hình 2 Hình ảnh thực tế mắt thu hồng ngoại Remote hồng ngoại 2.1.3 Module relay Module relay 5V với opto cách ly kích H/L với opto cách ly nhỏ gọn, có opto transistor cách ly giúp cho việc sử dụng trở nên an tồn v ới board mạch chính, mạch sử dụng để đóng ngắt nguồn điện cơng suất cao AC DC, có th ể chọn đóng kích mức cao mức thấp Jumper Module Relay kích H/L (5VDC) sử dụng nguồn 5VDC để ni mạch, tín hiệu kích có th ể tùy chọn kích mức cao (High - 5VDC) mức thấp (Low - 0VDC) qua Jumper m ỗi relay Thích hợp cho thiết bị sử dụng mức tín hiệu 5VDC Vi điều khiển, Thông số kỹ thuật: Điện áp ni mạch: 5VDC Dịng tiêu thụ: khoảng 200mA/1Relay Tín hiệu kích: High (5VDC) Low (0VDC) chọn Jumper Relay mạch: o Nguồn nuôi: 5VDC o Tiếp điểm đóng ngắt max: 250VAC-10A 30VDC-10A Kích thước: 155 (L) * 55 (W) * 19 (H) mm Hình Mạch Relay 5V với opto cách li kích H/L 2.1.4 LCD 16x2 tích hợp module chuyển đổi I2C Tính Đây LCD ký tự 16x2 chữ trắng xanh dương có IC điều khiển HD44780 Super Twisted Nematic (STN) LCD Giao tiếp đơn giản với bit bit Giao tiếp dễ dàng với loại vi điều khiển board Arduino, ATMEL AVR PIC Đặc điểm: LCD STN độ tương phản cao 16x2 Chữ trắng xanh dương Điện áp hoạt động: +5.0VDC Đèn LED màu trắng Ký tự 5x8 dot IC điều khiển HD44780 tương đương Giao tiếp or bit Kích thước: Module: 80 x 36 x 13.5mm Vùng nhìn: 66 x 16mm Hình LCD 1602 xanh dương chữ trắng 5V kèm I2C driver 2.2 Phần mềm hỗ trợ lập trình 2.2.1 STM32CubeMX: STM32CubeMX công cụ hỗ trợ cấu hình sinh code cho MCU STM32 Tất cơng việc cấu hình, nâng cấp thực qua giao diện đồ họa Việc giúp cho việc lập trình STM32 dễ dàng hơn, rút ngắn thời gian nghiên cứu phát triển Hình Phần mềm Stm32CubeMx 2.2.2 KeilC V5 Hiện có nhiều trình biên dịch ngơn ngữ C cho 8051 Mikro C, IAR, SDCC, Reads 51 … µVision mơi trường phát triển tích hợp (IDE: Integrated Development Environment, trình soạn thảo ngơn ngữ C, trình biên dịch debug) công ty Keil Software, thường gọi Keil C Keil C môi trường phát triển mạnh sử dụng rộng rãi Nó hỗ trợ ta viết chương trình cho chip vi điều khiển lõi 8051 ARM tất hãng giới Hình Phần mềm Keil C Version CHƯƠNG :THIẾT KẾ 3.1 Bài tốn đặt Thiết kế thi cơng điều khiển từ xa giúp cho người dùng tùy ý điều khiển thiết bị nhà mà không cần phải di chuyển dây phức tạp truyền thống Như vậy, vi điều khiển STM32 nhận tín hiệu (Digital) từ remote hồng ngoại gửi về, xử lý đưa tín hiệu để điều khiển relay Truyền tín hiệu điều khiển thơng qua remote hồng ngoại, vi điều khiển phân tích tín hiệu nhận truy quét với tín hiệu cài đặt trước xuất tín hiệu cho relay , relay có nhiệm vụ điều khiển cấu chấp hành Dựa vào số lượng thiết bị, ta cấu hình số ngõ vào ngõ để phù hợp với thiết bị ngoại vi PORT GPIOA GPIOA GPIOB PIN 2,3,4,5 8.9.10.11 6.7 CẤU HÌNH GIPO_PULLUP OUTPUT OUTPUT SDA,SCL Bảng Cấu hình IN-OUT cho vi điều khiển Ta có sơ đồ nối chân vi điều khiển cá thiết bị ngoại vi sau: - PB7, PB8, PB9, PB10, PB1, PA2, PA3, PA4, PA5 – Chân tín hiệu module relay - PA1 – Chân nhận tín hiệu IR 1838 - PB6, PB7 – Hai chân SDA, SCL LCD Hình Sơ đồ kết nối 3.2 Xử lý tín hiệu remote Hồng Ngoại IR1838 3.2.1 Truyền liệu hồng ngoại: Ánh sáng hồng ngoại phát từ vật liệu có nhiệt độ, từ mặt trời, bóng đèn vật dụng phịng Điều có nghĩa có nhiều ánh sáng hồng ngoại gây nhiễu xung quanh Để ngăn tín hiệu nhiễu ảnh hưởng đến tín hiệu IR (hồng ngoại), kỹ thuật điều chế tín hiệu sử dụng Trong điều chế tín hiệu IR, mã hóa phát IR chuyển đổi tín hiệu nhị phân thành tín hiệu điện Tín hiệu điện gửi đến đèn LED truyền Đèn LED truyền chuyển đổi tín hiệu điện điều chế thành ánh sáng hồng ngoại Sau đó, thu IR giải mã tín hiệu ánh sáng hồng ngoại chuyển đổi trở lại thành nhị phân trước truyền thơng tin đến STM32F103 10 Hình Tín hiệu từ đầu phát đến vi điều khiển Tín hiệu IR nằm dạng chuỗi xung ánh sáng bật tắt tần số cao gọi tần số sóng mang Tần số sóng mang phát từ remote hồng ngoại 36kHz, tự nhiên loại bỏ nhiễu từ mơi trường xung quanh Bằng cách này, thu IR biết tín hiệu 36kHz gửi từ máy phát mà từ môi trường xung quanh Diode thu nhận tất tần số ánh sáng hồng ngoại, thơng qua lọc thơng dải cho phép bước sóng có tần số 36kHz qua Sau đó, tín hiệu khuếch đại tiền khuếch đại chuyển đổi thành tín hiệu nhị phân trước gửi đến vi điều khiển 3.2.2 Phương thức giao tiếp Chúng ta dùng giao thức NEC để chuyển đổi liệu nhị phân kết hợp với sóng mang mức logic giao thức NEC định nghĩa sau: ● Mức logic 1: xung CAO có chu kỳ 560 us mức THẤP có chu kỳ 1690 us ● Mức logic 0: xung CAO có chu kỳ 560 us mức THẤP có chu kỳ 560 us Khi xung mức cao, chúng chia thành xung nhỏ có chu kỳ 28 us (36kHz) Hình 3 Dữ liệu hồng ngoại thông qua giao thức NEC 11 3.2.3 Mã code hồng ngoại Mỗi nhấn nút remote mã HEX (Thập lục phân) truyền Thông tin điều chế gửi qua ánh sáng hồng ngoại đến phận thu tín hiệu Để giải mã phím nhấn, cần xác định mã tương ứng cho nút nhấn điều khiển từ xa STM32F411 cần biết Hình Sơ đồ chân IR1838 3.3.1 Giải Thuật: 12 Hình Sơ đồ giải thuật toán Các chế độ thiết lập cho sản phẩm: - Khi nhấn nút "1": On Relay - Khi nhấn nút "9": OFF Relay - Khi nhấn nút "2": On Relay - Khi nhấn nút " #": OFF Relay - Khi nhấn nút "3": On Relay - Khi nhấn nút "*": OFF Relay 13 - Khi nhấn nút "4": ON Relay - Khi nhấn nút "0": OFF Relay - Khi nhấn nút "5": ON Relay - Khi nhấn nút "k": OFF Relay - Khi nhấn nút "6": ON Relay - Khi nhấn nút "^": OFF Relay - Khi nhấn nút "7": ON Relay - Khi nhấn nút "": ON Relay 1, 2, 3, 4, 5, 6, 7, Hình Sơ đồ giải thuật chi tiết tốn 14 3.3.2 Lập trình STM32F411 với remote hồng ngoại+IR1838 Viết code cho tác vụ Tác vụ Code Tác vụ 1: Thêm thư viện, cấu #include "main.h" #include "dwt_stm32_delay.h" //thư viện delay #include "i2c-lcd.h" uint16_t Out[]= { GPIO_PIN_10,GPIO_PIN_11,GPIO_PIN_2,GPIO_PIN_3,GPI O_PIN_4,GPIO_PIN_5}; void SystemClock_Config(void); static void MX_GPIO_Init(void); static void MX_I2C1_Init(void); uint32_t data; uint8_t count; hình chế độ chạy, khai báo biến Tác vụ 2: Đọc liệu từ IR1838 uint32_t dulieu_data (void) { uint32_t code=0; while (!(HAL_GPIO_ReadPin (GPIOA, PIO_PIN_1))); while ((HAL_GPIO_ReadPin (GPIOA, GPIO_PIN_1))); for (int i=0; i 12) // neu khoang lon hon 1,2ms { code |= (1UL