ĐIỀU KHIỂN GIÁM SÁT VÀ THIẾT LẬP TỐC ĐỘ ĐỘNG CƠ SỬ DỤNG KEYPAD HỆ THỐNG NHÚNG( LẤY FILE CODE PIC+ FILE MÔ PHỎNG PROTEUS LIÊN HỆ ZALO 0327697318) ĐIỀU KHIỂN GIÁM SÁT VÀ THIẾT LẬP TỐC ĐỘ ĐỘNG CƠ SỬ DỤNG KEYPAD HỆ THỐNG NHÚNG( LẤY FILE CODE PIC+ FILE MÔ PHỎNG PROTEUS LIÊN HỆ ZALO 0327697318)
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP KHOA ĐIỆN TỬ BÁO CÁO TIỂU LUẬN Môn học: HỆ THỐNG NHÚNG Đề tài: Giám sát thiết lập tốc độ động sử dụng Keypad GVHD : Ths.Tăng Cẩm Nhung SVTH :Nguyễn Trung Kiên (TN) MSSV :K175520114094 SVTH : Trần Hữu Phúc MSSV :K175520114107 SVTH : Cao Văn Huy MSSV:K175520114091 Thái Nguyên, ngày tháng năm 2021 Mục lục Chương 1: GIỚI THIỆU 1.1 Giới thiệu đề tài Hiện nhiều hệ thống yêu cầu giám sát điều khiển tốc độ động nhằm phục công tác sản xuất theo điều khiện khác Sau tham khảo số phương pháp giám sát, điều khiển động chúng em định chọn đề tài “Giám sát thiết lập tốc độ động sử dụng Keypad” làm đề tài nghiên cứu cho tiểu luận cuối kỳ môn học Hệ thống nhúng Hệ thống giúp điều khiển tốc độ động thông qua Keypad hiển thị chế độ chọn lên hình Lcd Hướng thực yêu cầu đề tài đưa trên, nhóm em tóm tắt sau: - - Sử dụng vi điều khiển PIC16F877A làm chip điều khiển trung tâm Sử dụng modul L298 để điều khiển tốc độ động Xậy dựng keypad gồm: + phím từ đến để chọn mức tốc độ động + Phím Enter để xác nhận mức tốc độ + Phím Clear để xóa chọn sai Sử dụng LCD hiển thực mức tốc độ chọn Đối tượng điều khiển động 1.2 Mục đích đề tài Mục đích thiết kế hệ thống điều khiển cho tốc độ quay động cho thời gian để động hoạt động ổn định từ lúc bắt đầu mở máy độ điều chỉnh tốc độ động so với tốc độ yêu cầu sai lệch tĩnh phải nằm giới hạn cho phép Nhằm đưa định hướng phát triển tối ưu mà kết mang lại thực tiễn Thường thời gian để ổn định tốc độ động nhỏ giây, sai lệch tĩnh nhỏ 1% độ điều chỉnh nhỏ 5% 1.3 Phạm vi nghiên cứu Về nội dung nghiên cứu: Đề tài tập trung nghiên cứu điều khiển tốc độ động chiều hoạt động theo thời gian thông việc sử dụng bàn phím keypad hiển thị LCD mức tốc độ thiết lập Về không gian: Sử dụng thông qua phần mềm Proteus phần mềm CCS để có nhìn trực tiếp sản phẩm Chương 2: THIẾT KẾ 2.1 Yêu cầu đề tài - Thiết lập mức tốc độ cho động từ Keypad - Hiện thị mức tốc độ chọn lên hình Lcd 2.2 Sơ đồ cấu trúc hệ thống Theo u cầu đề tài nhóm chúng tơi tiến hành thiết kế sơ đồ khối hệ thống hình : Chức khối: • • • • • Khối điều khiển: Modul điều khiển tốc độ: Động Khối hiển thị Khối xử lý 2.2.1 Khối điều khiển.(keypad) • Ngun tắc qt phím: Cấu tạo ma trận phím: Ma trận phím cấu tạo nên từ phím nhấn đơn, phím nhấn đơn hoạt động sau: - Chân H0 nối đến chân vi điều khiển nên H0=1, chân lại nối Mass Hinh 2.1: Cấu trúc phím nhấn đơn • Khi nhấn phím, chân H0 nối Mass H0=0 Cấu tạo ma trận phím từ phím đơn Ma trận phím hàng cột 1x4 cho hình đây: Khi chưa nhấn, chân nối hàng H0 =1 chân nối cột C0C1C2C3 có giá trị =1 (do nhấn đến chân vi điều khiển) Để kiểm tra phím nhấn cách cho chân nối đến cột từ C0 ÷ C3 = Ví dụ: - Nếu C0 = 0, phím số “0” nhấn (do chân C0 xem nối Mass) Nếu C1 = 0, phím số “1” nhấn (do chân C1 xem nối Mass) Nếu C2 = 0, phím số “2” nhấn (do chân C2 xem nối Mass) Nếu C2 = 0, phím số “3” nhấn (do chân C3 xem nối Mass) Hình 2.2: Cấu trúc hàng ma trận phím • Ma trận phím hàng cột 4x4 cho hình đây: Hình 2.3: Cấu trúc ma trận phím 4x4 - - Cho hàng ngõ vào cột ngõ Khi chưa có phím nhấn trạng thái chân tương ứng với Hàng Cột sau: H3H2H1H0C3C2C1C0 = 1111 1111 Thơng thường, để kiểm tra phím ta sử dụng phương pháp quét Cột, cho cột từ C0 đến C3 kiểm tra xem Hàng có mức phím tương ứng nhấn Mã phím tính theo cơng thức sau: MP = Cột * 4+Hàng Ví dụ: Nếu H2 = C1 = 0, phím có mã “6” nhấn (MP = 1*4+2=6) Nếu H0 = C3 = 0, phím có mã “C” nhấn (MP = 3*4+0=12=C) • Phương pháp quét phím: - Lần lượt kiểm tra Cột, xem có phím nhấn khơng? - Nếu có trả MP 15 phím (từ phím “0” đến phím “15 hay F” - Nếu khơng trả MP=0xFF - 2.2.2 Modul điều khiển tốc độ.(L298) Mạch điều khiển tốc độ l298 có khả điều khiển động dc lúc Sử dụng IC L298 có cấu tạo gồm hai mạch cầu H transitor Hình 2.4: Module L298 thực tế • • - Thơng số kỹ thuật: Điện áp đầu vào từ – 30V Dòng điện tối đa cho động 2A Điện áp tín hiệu điều khiển: – 7V Dịng u cầu tín hiệu điều khiển – 36 mA Sơ đồ chân module L298 Chân12V Power cấp nguồn cho mạch L298 nguồn động lực cho động Chân5V Power dùng cấp nguồn cho Arduino, có Jumper 5V Enable Chân GND chân cấp MASS cho mạch, sử dụng vi điều khiển cần nối GND mạch với GND vi điều khiển Chân Enable chân cho phép ngỏ động hoạt động dừng Mặc định mạch có Jumper A Enable va B Enable hình cho phép chạy Chân IN1, IN2 điều khiển chiều tốc độ động thông qua ngỏ output A Chân IN3, IN4 điều khiển chiều tốc độ động thông qua ngỏ output B Chân output A, output B chân ngỏ động 1, 2.2.3 Khối hiển thị.(Lcd 16x2) Màn hình LCD 16×2 linh kiện sử dụng rộng rãi trong dự án điện tử lập trình Thụng s k thut LCD 16ì2: ã LCD 16ì2 cú 16 chân chân liệu (D0 – D7) chân điều khiển (RS, RW, EN) • chân lại dùng để cấp nguồn đèn nn cho LCD 16ì2 ã Cỏc chõn iu khin giúp ta dễ dàng cấu hình LCD chế độ lệnh chế độ liệu • Chúng cịn giúp ta cấu hình chế độ đọc ghi LCD 16×2 sử dụng chế độ bit bit tùy theo ứng dụng ta làm Hình 2.5: Màn hình LCD 16×2 LCD 16×2 sử dụng chế độ bit bit tùy theo ứng dụng ta làm Module I2C Arduino Hình 2.6: Module I2C LCD 16×2 LCD có q nhiều nhiều chân gây khó khăn q trình đấu nối chiếm dụng nhiều chân vi điều khiển Module I2C LCD đời giải vấn để Thay phải chân vi điều khiển để kết nối với LCD 16×2 (RS, EN, D7, D6, D5 D4) module IC2 bạn cần tốn chân (SCL, SDA) để kết nối Module I2C hỗ trợ loại LCD sử dụng driver HD44780(LCD 16×2, LCD 20×4, …) tương thích với hầu hết vi điều khiển 2.2.4 Khối xử lý(pic16f877a) PIC16F877A Hình 2.7: Pic16F877A PIC16F877A Vi điều khiển PIC 40 chân sử dụng hầu hết dự án ứng dụng nhúng Nó có năm cổng cổng A đến cổng E Nó có ba định thời có định thời bit định thời 16 Bit Nó hỗ trợ nhiều giao thức giao tiếp giao thức nối tiếp, giao thức song song, giao thức I2C PIC16F877A hỗ trợ ngắt chân phần cứng ngắt định thời • Sơ đồ chân PIC16F877A Hình Sơ đồ chân PIC16F877A Hình 2.8 :Sơ đồ chân Pic16f877a • PIC16F877a có tổng cộng Cổng là: Cổng A: có tổng cộng chân chân số đến chân số Các chân cổng A ký hiệu từ RA0 đến RA5 RA0 ký hiệu chân Cổng A Cổng B: có tổng cộng chân chân số 33 đến chân số 40 Các chân cổng B ký hiệu từ RB0 đến RB7 RB0 ký hiệu chân cổng B Cổng C: có tổng cộng Chân Các chân khơng thẳng hàng với Bốn chân cổng C nằm chân số 15 đến chân số 18, bốn chân cuối nằm chân số 23 đến chân số 26 Cổng D: có tổng cộng chân Các chân khơng thẳng hàng với Bốn chân cổng D nằm chân số 19 đến chân số 22, bốn chân cuối nằm chân số 27 đến chân số 30 Cổng E: có tổng cộng chân chân số đến chân số 10 Các chân cổng E ký hiệu từ RE0 đến RE2 RE0 ký hiệu chân cổng E • Cổng nối tiếp PIC16F877a PIC16F877a có cổng nối tiếp sử dụng để giao tiếp liệu Chân số 25 hoạt động TX bạn muốn thực giao tiếp nối tiếp sử dụng để gửi liệu nối tiếp Chân 26 hoạt động RX, bạn muốn thực giao tiếp nối tiếp sử dụng để nhận liệu nối tiếp • Giao tiếp I2C PIC16F877a PIC16F877a có cổng I2C dễ dàng thực giao tiếp I2C - Chân số 18 hoạt động SCL, viết tắt Serial Clock Line - Chân số 23 hoạt động SDA, chữ viết tắt Serial Data Line - Bây bạn thấy có cổng nối tiếp cổng I2C cổng C, sử dụng cổng C cổng đơn giản thực hai giao tiếp với chân nó, hồn tồn phụ thuộc vào lập trình viên • Ngắt PIC16F877a PIC16F877a có tổng cộng nguồn ngắt Nguồn ngắt số kiện tạo ngắt, nguồn đếm thời gian ngắt tạo sau giây kiện thay đổi trạng thái chân, chẳng hạn trạng thái chân bị thay đổi sau ngắt tạo Vì vậy, ngắt PIC16F877a tạo cách sau: - Ngắt ngoài.Ngắt định thời (Timer0 / Timer1) Thay đổi trạng thái cổng B Cổng SlaveSong song Đọc / Ghi Bộ chuyển đổi A / D Nhận / Truyền nối tiếp.PWM (CCP1 / CCP2) Thao tác ghi EEPROM 10 long map(long x, long in_min, long in_max, long out_min, long out_max) { return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; } int8 i=0,j=0,q=0, e=0,r=0,t=0,y=0,u=0,a=0,h=0; void setup(){ SETUP DIEU KHIEN DONG CO -set_tris_c(0xff); setup_adc(ADC_CLOCK_DIV_32); setup_adc_ports(AN0); set_adc_channel(0); delay_us(100); setup_timer_2(T2_DIV_BY_16,254,1); setup_ccp1(CCP_PWM); setup_ccp2(CCP_PWM); set_pwm1_duty(0); set_pwm2_duty(0); } int quet_phim(){ QUETPHIM -int8 mp=0xFF; int8 quet[]={0xEF,0xDF,0xBF,0x7F}; for(int8 cot=0;cot