ĐIỀU KHIỂN ON_OFF TỐC ĐỘ ĐỘNG CƠ 1 CHIỀU HỆ THỐNG NHÚNG( CODE PIC+ MÔ PHỎNG PROTEUS)ĐIỀU KHIỂN ON_OFF TỐC ĐỘ ĐỘNG CƠ 1 CHIỀU HỆ THỐNG NHÚNG( CODE PIC+ MÔ PHỎNG PROTEUS)ĐIỀU KHIỂN ON_OFF TỐC ĐỘ ĐỘNG CƠ 1 CHIỀU HỆ THỐNG NHÚNG( CODE PIC+ MÔ PHỎNG PROTEUS)
Trang 1TRƯỜ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
ĐỘNG CƠ 1 CHIỀU
GVHD : THS.TĂNG CẨM NHUNG
SVTH 1: ĐOÀN MINH HIẾU (TN)
MSSV : K175520114016
SVTH 2 : CHU TAM KHÔI
MSSV : K175520114026
Thái Nguyên, ngày tháng năm 2021
Trang 2MỤC LỤC
CHƯƠNG 1 GIỚI THIỆU YÊU CẦU – GIỚI HẠN CỦA ĐỀ TÀI 3
1.1 Giới thiệu đề tài 3
1.2 Mục đích đề tài 3
1.3 Phạm vi nghiên cứu 3
CHƯƠNG 2 THIẾT KẾ 4
2.1 Giới thiệu 4
2.2 Thiết kế sơ đồ khối 4
Hình 1: Sơ đồ khối mạch điều khiển động cơ 1 chiều 4
2.3 Thiết kế sơ đồ nguyên lý 4
a Khối nguồn 4
b Khối điều khiển 5
Hình 2: keypad – phone 5
c Khối xử lí 5
Hình 3: PIC16F877A 5
d Khối hiển thị 5
Hình 4: Kí hiệu và hình ảnh led 7 đoạn 6
Hình 5: Hình ảnh LCD 6
Hình 6: Hình ảnh led matrix 7
e Khối đệm dữ liệu 7
Hình 7: Hình ảnh IC 74HC595 7
f Khối động lực 8
Hình 8: Động cơ 1 chiều 8
2.4 Lưu đồ và chương trình 9
a Giới thiệu yêu cầu điều khiển 9
b Lưu đồ 9
Hình 9: Lưu đồ điều khiển 9
c Chương trình điều khiển 9
CHƯƠNG 3 KẾT QUẢ THỰC HIỆN VÀ KẾT LUẬN 15
3.1 Kết luận 15
Hình 10: Chương trình khi hoàn thành 15
Trang 33.2 Hướng phát triển 15
TÀI LIỆU THAM KHẢO 16
CHƯƠNG 1: GIỚI THIỆU YÊU CẦU - GIỚI HẠN CỦA ĐỀ TÀI
1.1 Giới thiệu đề tài
- Ngày nay thế giới đã bước vào một cuộc cách mạng khoa học kỹ thuật trong mọi lĩnh vực Con người biết ứng dụng khoa học kĩ thuật vào sản xuất để nâng cao năng suất chất lượng rút ngắn thời gian sản xuất Động cơ một chiều được sử dụng phổ biến và rộng rãi trong tất cả các lĩnh vực từ quân sự đến công nghiệp và dân dụng Những ứng dụng quan trọng của nó bao gồm: nhà máy cán, nhà máy giấy, nhà máy dệt, nhà máy
in, máy công cụ, máy xúc, cần cẩu và đặc biệt là lĩnh vực robotic…
- Các mạch điều khiển động cơ yêu cầu thay đổi tốc độ quay của động cơ nhịp nhàng
và điều khiển chính xác Phương pháp truyền thống để điều khiển tốc độ động cơ một chiều là thay đổi giá trị điện áp cung cấp cho động cơ Phương pháp đơn giản nhất là
sử dụng biến trở và phương pháp điều khiển này không chính xác như mong muốn do đặc tuyến của biến trở, tầm hoạt động bị giới hạn, điều khiển không hiệu quả và gây
ra hiện tượng quá nhiệt của cuộn dây dẫn đến hư động cơ
- Ngày nay việc sử dụng các vi mạch khả lập trình như vi xử lý trong các thiết bị điều khiển trở thành một xu thế quan trọng, mang lại hiệu quả cao, tốc độ xử lý nhanh, độ chính xác cao, mạch phần cứng tinh gọn, giảm giá thành sản phẩm, hạn chế rủi ro
1.2 Mục đích của đề tài
- Trong bài này chúng em tập trung nghiên cứu phương pháp lập trình on_off động cơ
1 chiều bằng bàn phím keypad 3x4 để điều khiển tốc độ động cơ DC sử dụng dòng
vi điều khiển PIC 16F877A và hiển thị thời gian quay thuận và ngược ra led 7 đoạn, hiển thị chiều quay thuận, ngược ra led matrix
1.3 Phạm vi nghiên cứu
- Trong bài này chúng em sử dụng Keypad 3x4 để điều khiển chiều quay và thời gian quay của động cơ và dùng Led 7 đoạn để hiện thị thời gian quay của động cơ đang quay bao nhiêu và dùng led matrix để hiện thị chiều quay, sử dụng nguồn pin hoặc điện từ lưới 220V
Trang 4CHƯƠNG 2 : THIẾT KẾ
2.1 Giới thiệu
- Với đề tài “ Điều khiển on_off tốc độ động cơ 1 chiều ” chúng em sẽ thiết kế theo yêu cầu như sau :
+ Sử dụng keypad để xác định chiều quay và thời gian quay của động cơ
+ Hiển thị thời gian quay thuận và ngược ra led 7 đoạn
+ Hiển thị chiều quay ra led matrix
2.2 Thiết kế sơ đồ khối
- Theo như yêu cầu đã giao của đề tài nhóm chúng em tiến hành thiết kế sơ đồ khối cho mạch “ Điều khiển on_off tốc độ động cơ 1 chiều” như hình 1 :
Hình 1: Sơ đồ khối mạch điều khiển động cơ 1 chiều
Chức nắng từng khối:
Khối nguồn: có chức năng cấp nguồn cho toàn bộ hệ thống
Khối điều khiển: có chức năng điểu khiển chế độ làm việc hệ thống và là tín hiệu đầu vào của khối xử lý
Khối xử lý: có chức năng thu thập và xử lý tín hiệu ( từ tín hiệu đầu vào của khối điều khiển và xuất ra tín hiệu cho khối hiển thị)
Khối hiển thị: có chức năng hiển thị cấp độ làm việc của động cơ
Khối động lực: có chức năng vận hành động cơ theo xung được cấp
Trang 52.3 Thiết kế sơ đồ nguyên lý
a Khối nguồn
- Khối nguồn dùng để cấp nguồn cho toàn bộ hệ thống trong mạch
- Chủ yếu là cấp nguồn cho các linh kiện như: KEYPAD, 74HC595, RESPACK-8, LCD, 7SEG-COM-CATHODE
b Khối điều khiển
- Khối điều khiển có chức năng điểu khiển chế độ làm việc hệ thống và là tín hiệu đầu vào của khối xử lý
- Trong mạch này nhóm chúng em chọn keypad dùng đề điều khiển chiều quay và thời gian quay của động cơ
Hình 2: keypad - phone
c Khối xử lý
- Khối xử lý: có chức năng thu thập và xử lý tín hiệu ( từ tín hiệu đầu vào của khối điều khiển và xuất ra tín hiệu cho khối hiển thị)
- Lựa chọn: PIC 16F877A
Hình 3: PIC16F877A
Trang 6d Khối hiển thị
- Led 7 đoạn có chức năng hiển thị số thập phân cho biết kết quả sau khi xử lý
- Có 2 loại led 7 đoạn là anode chung và cathode chung Led 7 đoạn có kí hiệu, sơ đồ chân như hình sau:
Hình 4: Kí hiệu và hình ảnh led 7 đoạn
- Led 7 đoạn có cấu tạo là các led đơn được sắp xếp theo vị trí để khi sáng hoặc tắt tạo thành 1 số thập phân từ 0 đến 9 Dòng cho mỗi đoạn từ 5 đếm 15 mA và điện áp cho các led nhỏ là 2V
- Nhóm tiến hành chọn led loại cathode chung (7SEG-COM-CATHODE )
Hình 5: Hình ảnh LCD
LCD 16×2 được sử dụng để hiển thị trạng thái hoặc các thông số
LCD 16×2 có 16 chân trong đó 8 chân dữ liệu (D0 – D7) và 3 chân điều khiển (RS,
RW, EN)
Trang 7 5 chân còn lại dùng để cấp nguồn và đèn nền cho LCD 16×2.
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
Chúng còn giúp ta cấu hình ở chế độ đọc hoặc ghi
LCD 16*2 hoạt động ổn định ở điện áp 5V
- Led matrix là một hệ thống các bóng đèn led với những led chip được cấu tạo, sắp xếp theo trật tự các hàng, các cột nối tiếp với nhau, vì thế cấu trúc của các bóng led giống như một cấu trúc ma trận thu nhỏ
- Nhóm tiến hành chọn LED MATIX-8X8-GREEN
Hình 6: Hình ảnh led matrix
e Khối đệm dữ liệu
- Nhóm tiến hành chọn IC 74HC595
Trang 8Hình 7: Hình ảnh IC 74HC595
VCC là chân nối điện cực dương
GND là chân nối đất
ENABLE là chân có cho phép IC chạy hay không, khi ở trạng thái LOW, IC được
phép chạy
RESET khi chân này ở trạng thái HIGH, toàn bộ bộ nhớ trong IC bị xóa sạch
Q0 → Q7 là các chân tượng trưng cho 8 bit trong vùng nhớ của IC
INPUT là chân đưa dữ liệu vào IC
LATCH khi chân ở trạng thái từ LOW chuyển sang HIGH thì IC xuất dữ liệu từ ô nhớ ra các chân Q0 → Q7
CLOCK khi có một xung clock (1 lần LOW và một lần HIGH) thì dữ liệu được
dịch vào một bit theo trạng thái hiện tại của chân INPUT
QH IC có vùng nhớ 8 bit, nếu như truyền vào IC nhiều hơn 8 bit thì sẽ tràn vùng
nhớ và bit bị tràn truyền qua QH này
f Khối động lực
- Khối động lực có chức năng vận hành động cơ theo xung được cấp.
- Lựa chọn: động cơ 1 chiều (Motor).
Trang 9Hình 8: Động cơ 1 chiều
2.4 Lưu đồ và chương trình
a Giới thiệu yêu cầu điều khiển
+ Sử dụng keypad để xác định chiều quay và thời gian quay của động cơ + Hiển thị thời gian quay thuận và ngược ra led 7 đoạn
+ Hiển thị chiều quay ra led matrix
b Lưu đồ
Trang 10Hình 9: Lưu đồ điều khiển
c Chương trình điều khiển
#include <16f877a.h>
#use delay(clock=20M)
#define LCD_RS_PIN 48
#define LCD_RW_PIN 49
#define LCD_ENABLE_PIN 50
#define LCD_DATA4 52
#define LCD_DATA5 53
#define LCD_DATA6 54
#define LCD_DATA7 55
#include<lcd.c>
#define DS1 PIN_C2
#define DS2 PIN_C3
#define DS3 PIN_C4
#define ST2 PIN_C7
#define SH2 PIN_C5
int8 a=0;
int TT=0;
unsigned int8 maphim,maphim1;
int8 led[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; unsigned int C[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; int8 ma_led[]={255,253,253,1,253,253,255,255,
255,129,251,247,239,223,129,255,
Trang 11255,1,125,125,125,131,255,255};
#INT_TIMER0
void hien_thi(){//! Ham ngat
int DB; //!bien trung gian
int HT;
int LD;
for(int i=0;i<8;i++){
DB=C[i]; //! Lay gia tri tu mang ma cot
if(TT==0){
HT=ma_led[16+i];
LD=led[0]<<1;
}
else if(TT==1){
HT=ma_led[i]; //! lay gia tri tu mang ma hang
LD=led[maphim]<<1;
}
else if(TT==2){
HT=ma_led[8+i];
LD=led[maphim1]<<1;
}
for(int j=0;j<8;j++){
output_bit(DS1,DB%2); //xuat tin hieu ra chan DS1
output_bit(DS2,HT%2); //xuat tin hieu ra chan DS2
output_bit(DS3,LD%2);
DB=DB/2; //Chia 2 de lay bit nap vao chan tin hieu cho lan lap sau HT=HT/2; //Chia 2 de lay bit nap vao chan tin hieu cho lan lap sau LD=LD/2;
output_bit(SH2,1); //kich Chan chuyen bit ra cac chan
output_bit(SH2,0); //dua ve muc 0
}
output_bit(ST2,1); //Kich chan chot tien hien ra cac chan 74HC595 output_bit(ST2,0); //dua ve muc 0
}
}
int8 quet_phim()
{
int8 mp=0xff;
int8 maquet[]={0xEF, 0xDF, 0xBF, 0x7F};
for (int8 cot=0; cot<=3; cot ++)
{
output_D(maquet[cot]);
while(input(pin_d0)==0) mp= cot*1+1;
while(input(pin_d1)==0) mp= cot*1+4;
while(input(pin_d2)==0) mp= cot*1+7;
while(input(pin_d3)==0) mp= cot*1+17;
Trang 12}
return mp;
}
void main()
{
set_tris_D(0xF0);
set_tris_B(0x00);
set_tris_C(0x00);
lcd_init();
setup_timer_0(T0_INTERNAL|T0_DIV_64|T0_8_BIT); enable_interrupts(INT_TIMER0|GLOBAL);
output_LOW(pin_C1);
output_LOW(pin_C0);
lcd_gotoxy(2,1);
lcd_putc("Nhap thoi gian: ");
while(true)
{
TT=0;
output_LOW(pin_C1);
output_LOW(pin_C0);
if(a==0){
maphim=quet_phim();
if(maphim!=0xff)
{
lcd_putc("\f");
lcd_gotoxy(1,1);
lcd_putc("Quay thuan: ");
lcd_gotoxy(13,1);
lcd_putc(maphim+0x30);
lcd_gotoxy(14,1);
lcd_putc("s");
lcd_gotoxy(1,2);
lcd_putc("Quay nguoc: ");
a++;
}
}
else if(a==1){
maphim1=quet_phim();
if(maphim1!=0xff)
{
lcd_gotoxy(13,2);
lcd_putc(maphim1+0x30);
lcd_gotoxy(14,2);
lcd_putc("s");
TT=1;
output_HIGH(pin_C0);
output_LOW(pin_C1);
Trang 13delay_ms(maphim*1000);
TT=2;
output_HIGH(pin_C1);
output_LOW(pin_C0);
delay_ms(maphim1*1000);
a=0;
}
}
}
CHƯƠNG 3: KẾT QUẢ THỰC HIỆN VÀ KẾT LUẬN
3.1 Kết luận
- Trong quá trình xây dựng và hoàn thiện đề tài “Điều khiển on_off tốc độ động cơ 1 chiều” nhóm em cơ bản đã hoàn thành được những mục tiêu cơ bản sau:
+ Xây dựng được mô hình đúng theo yêu cầu đặt ra
+ Vận hành theo đúng yêu cầu công nghệ
+ Hệ thống hoạt động chính xác và hiệu quả
Hình 10: Chương trình khi hoàn thành
Trang 143.2 Hướng phát triển
- Hướng phát triển của nhóm em cho đề tài này là: có thể cho led matrix hiển thị nhiều thứ
hơn, sử dụng các loại cảm biến dữ liệu analog để điều khiển tự động hoặc sử dụng nút bấm để điều khiển tốc độ động cơ ở các mức độ khác nhau
- Qua quá trình thực hiện và hoàn thành đề tài chúng em đã học hỏi thêm được nhiều kiến
thức quý giá Chúng em cũng xin cảm ơn cô Tăng Cẩm Nhung đã tận tình giúp đỡ và tạo
mọi điều kiện thuận lợi để chúng em có thể hoàn thành tốt đề tài này Tuy nhiên đây chỉ là
mô hình mô phỏng chưa được lắp đặt thực tế và do hạn chế về kiến thức nên không thể tránh khỏi những sai sót, chúng em rất mong sự đóng góp ý kiến của thầy cô và các bạn
để đề tài của chúng em hoàn thiện hơn
Chúng em xin chân thành cảm ơn!
TÀI LIỆU THAM KHẢO
[1]- Bài giảng Hệ thống nhúng 2010, BM Kỹ thuật Máy tính, ĐH Kỹ thuật Công nghiệp Thái nguyên.
[2]- Đào Trọng Nghĩa, “ PIC 16F877A CCS vi điều khiển lập trình điều khiển điện tử ”, 2006
[3]-https://khotrithucso.com