Đ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)
Trang 1TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP
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
Trang 2Mục lục
Chương 1: GIỚI THIỆU
1.1 Giới thiệu đề tài.
Hiện nay nhiều hệ thống yêu cầu giám sát cũng như điều khiển tốc độ động cơ nhằm phục công tác sản xuất theo từng điều khiện khác nhau
Sau khi tham khảo một số phương pháp giám sát, điều khiển động cơ chúng em quyết định chọn đề tài “Giám sát và thiết lập tốc độ động cơ sử dụng Keypad”
làm đề tài nghiên cứu cho bài 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 cơ thông qua Keypad và hiển thị chế độ cơ
đã chọn lên màn hình Lcd
Hướng thực hiện yêu cầu đề tài được đưa ra ở trên, nhóm em về cơ bản sẽ tóm tắtnhư sau:
Trang 3quá điều chỉnh tốc độ của động cơ so với tốc độ yêu cầu sai lệch tĩnh của nó phải nằm trong giới hạn cho phép.
Nhằm đưa ra định hướng phát triển tối ưu nhất mà kết quả của nó mang lại thực tiễn nhất
Thường thì thời gian để ổn định tốc độ động cơ nhỏ hơn 2 giây, sai lệch tĩnh nhỏ hơn 1% và độ quá điều chỉnh nhỏ hơn 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 về điều khiển tốc độ động cơmột chiều hoạt động theo thời gian thông việc sử dụng bàn phím keypad và hiển thị raLCD mức tốc độ đã thiết lập
Về không gian: Sử dụng thông qua 2 phần mềm Proteus và phần mềm CCS để cócái nhìn trực tiếp nhất về sản phẩm
Chương 2: THIẾT KẾ
2.1 Yêu cầu của đề tài.
- Thiết lập mức tốc độ cho động cơ từ Keypad
Trang 4Hinh 2.1: Cấu trúc phím nhấn đơn
Ma trận phím 1 hàng 4 cột 1x4 được cho như hình dưới đây:
Khi chưa được nhấn, các chân nối hàng H0 =1 và các chân nối cột C0C1C2C3 đều cógiá trị =1 (do đều được nhấn đến các chân của vi điều khiển)
Để kiểm tra phím nào được nhấn bằng cách cho 1 trong các chân nối đến cột từ C0 ÷C3 lần lượt = 0 Ví dụ:
Hình 2.2: Cấu trúc 1 hàng của ma trận phím
Trang 5Hình 2.3: Cấu trúc ma trận phím 4x4
các chân tương ứng với các Hàng và các Cột như sau: H3H2H1H0C3C2C1C0 =
1111 1111
cho các cột từ C0 đến C3 bằng 0 và kiểm tra xem nếu Hàng nào có mức 0 thì phímtương ứng sẽ được nhấn Mã phím được tính theo công thức sau:
2.2.2 Modul điều khiển tốc độ.(L298)
Mạch điều khiển tốc độ l298 có khả năng điều khiển động cơ dc cùng lúc Sử dụng
IC chính là L298 có cấu tạo gồm hai mạch cầu H transitor
Trang 6Hình 2.4: Module L298 thực tế
GND mạch với GND của vi điều khiển
mạch có Jumper A Enable va B Enable như hình là cho phép chạy
Trang 7• Các chân điều khiển giúp ta dễ dàng cấu hình LCD ở chế độ lệnh hoặc chế độ dữ liệu.
LCD 16×2 có thể sử dụng ở chế độ 4 bit hoặc 8 bit tùy theo ứng dụng ta đang làm
Hình 2.5: Màn hình LCD 16×2LCD 16×2 có thể sử dụng ở chế độ 4 bit hoặc 8 bit tùy theo ứng dụng ta đang làm.Module I2C Arduino
Hình 2.6: Module I2C LCD 16×2
Trang 8LCD có quá nhiều nhiều chân gây khó khăn trong quá trình đấu nối và chiếm dụngnhiều chân trên vi điều khiển Module I2C LCD ra đời và giải quyết vấn để này.
Thay vì phải mất 6 chân vi điều khiển để kết nối với LCD 16×2 (RS, EN, D7, D6, D5 và D4) thì module IC2 bạn chỉ cần tốn 2 chân (SCL, SDA) để kết nối
Module I2C hỗ trợ các loại LCD sử dụng driver HD44780(LCD 16×2, LCD 20×4,
…) và tương thích với hầu hết các vi điều khiển hiện nay
2.2.4 Khối xử lý(pic16f877a).
PIC16F877A là gì
Hình 2.7: Pic16F877APIC16F877A là một Vi điều khiển PIC 40 chân và được sử dụng hầu hết trong các
dự án và ứng dụng nhúng Nó có năm cổng bắt đầu từ cổng A đến cổng E Nó có ba bộ định thời trong đó có 2 bộ định thời 8 bit và 1 bộ định thời là 16 Bit Nó hỗ trợ nhiều giaothức giao tiếp như giao thức nối tiếp, giao thức song song, giao thức I2C PIC16F877A
hỗ trợ cả ngắt chân phần cứng và ngắt bộ định thời
Hình dưới đây là Sơ đồ chân PIC16F877A
Trang 9Hình 2.8 :Sơ đồ chân của Pic16f877a
Cổng A: có tổng cộng 6 chân bắt đầu từ chân số 2 đến chân số 7 Các chân cổng A được ký hiệu từ RA0 đến RA5 trong đó RA0 là ký hiệu của chân đầu tiên của Cổng A.Cổng B: có tổng cộng 8 chân bắt đầu từ chân số 33 đến chân số 40 Các chân cổng B được ký hiệu từ RB0 đến RB7 trong đó RB0 là ký hiệu của chân đầu tiên của cổng B.Cổng C: có tổng cộng 8 Chân Các chân của nó không được thẳng hàng với nhau Bốnchân đầu tiên của cổng C nằm ở chân số 15 đến chân số 18, còn bốn chân cuối cùng nằm
ở chân số 23 đến chân số 26
Cổng D: có tổng cộng 8 chân Các chân của nó cũng không thẳng hàng với nhau Bốn chân đầu tiên của cổng D nằm ở chân số 19 đến chân số 22, trong khi bốn chân cuối cùngnằm ở chân số 27 đến chân số 30
Cổng E: có tổng cộng 3 chân bắt đầu từ chân số 8 đến chân số 10 Các chân cổng E được ký hiệu từ RE0 đến RE2 trong đó RE0 là ký hiệu của chân đầu tiên của cổng E
Trang 10• Cổng nối tiếp PIC16F877a
PIC16F877a có một cổng nối tiếp trong đó được sử dụng để giao tiếp dữ liệu
Chân số 25 cũng hoạt động như TX vì vậy nếu bạn muốn thực hiện giao tiếp nối tiếp thì nó sẽ được sử dụng để gửi dữ liệu nối tiếp
Chân 26 cũng hoạt động như RX, vì vậy nếu bạn muốn thực hiện giao tiếp nối tiếp thì
nó sẽ được sử dụng để nhận dữ liệu nối tiếp
PIC16F877a cũng có một cổng I2C có thể dễ dàng thực hiện giao tiếp I2C
vậy chúng ta có thể sử dụng cổng C như một cổng đơn giản nhưng cũng có thể thực hiện hai giao tiếp này với các chân của nó, vì vậy nó hoàn toàn phụ thuộc vàolập trình viên
PIC16F877a có tổng cộng 8 nguồn ngắt Nguồn ngắt là một số sự kiện tạo ra ngắt, nguồn này có thể là bộ đếm thời gian như các ngắt được tạo sau mỗi 1 giây hoặc cũng có thể là sự kiện thay đổi trạng thái chân, chẳng hạn như nếu trạng thái chân bị thay đổi sau
đó ngắt sẽ được tạo ra
Vì vậy, ngắt PIC16F877a có thể được tạo ra bằng 8 cách sau:
Trang 11#define LCD_ENABLE_PIN PIN_A5
#define LCD_RS_PIN PIN_A3
#define LCD_RW_PIN PIN_A4
#define LCD_DATA4 PIN_C4
#define LCD_DATA5 PIN_C5
#define LCD_DATA6 PIN_C6
#define LCD_DATA7 PIN_C7
#include <lcd.c>
Trang 12long 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
Trang 17printf(lcd_putc,"CHON CAP TOC DO:");
Trang 24Hình 3.2 : Chọn mức tốc độ số 1
Hình 3.3 ; Chọn mức tốc độ số 5
Trang 253.2.2 Hướng phát triển.
Đề tài: “Giám sát và thiết lập tốc độ động cơ sử dụng Keypad” của nhóm em đã hoàn
thành những nội dung yêu cầu đặt ra Tuy nhiên, phần mô phỏng có thể phát triển và kếthợp thêm các nội dung sau: