Tải bản đầy đủ (.pdf) (44 trang)

Thiết kế mạch điều khiển tốc độ động cơ có hồi tiếp

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.35 MB, 44 trang )

TRƢỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ VIỄN THÔNG
====o0o====



BÁO CÁO
BÀI TẬP LỚN VI XỬ LÝ
ĐỀ TÀI:
THIẾT KẾ MẠCH ĐIỀU KHIỂN TỐC ĐỘ
ĐỘNG CƠ CÓ HỒI TIẾP

Nhóm:


GVHD:
PGS.TS. PHẠM NGỌC NAM



Hà Nội, 5/2013
Báo cáo BTL Vi Xử Lý
2013




2

TRƢỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ VIỄN THÔNG


====o0o====



BÁO CÁO
BÀI TẬP LỚN VI XỬ LÝ
ĐỀ TÀI:
THIẾT KẾ MẠCH ĐIỀU KHIỂN TỐC ĐỘ
ĐỘNG CƠ CÓ HỒI TIẾP


Nhóm:
32 – TC301 – kỳ 20122
GVHD:
PGS.TS. PHẠM NGỌC NAM



Báo cáo BTL Vi Xử Lý
2013




3
Hà Nội, 5/2013
NHÓM – TC301

Thành viên (#1 là trưởng nhóm):
STT

Họ và Tên
MSSV
Điểm
1



2



3



4



5




Nhận xét (phần GVHD ghi):






Báo cáo BTL Vi Xử Lý
2013




4
Tiêu chí đánh giá
Thang điểm
0. Tổng điểm ban đầu
10.0
1. Điểm trừ

1.1. Không có sản phẩm

1.2. Không có báo cáo bản cứng

1.3. Thiếu chức năng: bật/tắt động cơ

1.4. Thiếu chức năng: cài đặt, hiển thị các tham số động cơ (tốc độ cài
đặt, sai số cho phép)

1.5. Thiếu chức năng: hiển thị tốc độ hiện thời của động cơ

1.6. Thiếu chức năng: cảnh báo nếu tốc độ quá cao/thấp (vƣợt qua sai
số cho phép)

1.7. Thiếu chức năng: hiển thị ngày, giờ hiện tại

1.8. Thiếu chức năng: chỉnh ngày, giờ hệ thống


1.9. Thiếu chức năng: hẹn giờ bật/tắt động cơ

1.10. Thiếu chức năng: hiển thị nhiệt độ hiện thời

1.11. Thiếu một đoạn code viết bắng ASM

1.12. PCB không có tên nhóm và các thành viên

1.13. Báo cáo sơ sài/thiếu nội dung (tên để tài/nhóm/mục lục/yêu cầu
của đề tài/kế hoạch nhóm/thiết kế sơ đồ khối/code)

2. Điểm cộng

2.1. Mạch in và sắp xếp linh kiện đẹp/Mạch in thủ công

2.2. Các chức năng đã thực hiện có đáp ứng tốt (độ nhạy, tốc độ tính
toán, hiển thị)

2.3. Có chức năng: hiển thị chiều quay của động cơ

2.4. Có chức năng: lƣu cấu hình hệ thống trƣớc khi tắt và khôi phục lại
khi bật

2.5. Hiển thị thời gian đáp ứng tốc độ (từ lúc điều chỉnh đến khi đạt
tốc độ ổn định đã cài đặt)

2.6. Dễ sử dụng (bàn phím lớn, ghi chú rõ ràng, thao tác đơn giản)

2.7. Trình bày rõ ràng, trả lời đƣợc các câu hỏi chuyên môn


TỔNG ĐIỂM:

Báo cáo BTL Vi Xử Lý
2013




5





















Báo cáo BTL Vi Xử Lý
2013




6
MỤC LỤC
LỜI NÓI ĐẦU……………………………………………
CHƢƠNG 1: MÔ TẢ ĐỀ TÀI
1.1 Yêu cầu chức năng
1.2 Sơ đồ khối hệ thống
1.3 Kế hoạch thực hiện và phân chia công việc
CHƢƠNG 2: THIẾT KẾ HỆ THỐNG
2.1 Khối nguồn
2.2 Khối vi xử lý
2.3 Khối công suất
2.4 Khối hiển thị
2.5 Khối giao tiếpbàn phím và cảm biến nhiệt độ
2.6 Hình ảnh layout
2.7 Hình ảnh thật của sản phẩm

CHƢƠNG 3: KẾT LUẬN
Tài liệu tham khảo
Phụ lục A: Software Code (Viết trên CCS)
Phụ lục B: Hƣớng dẫn sử dụng
Báo cáo BTL Vi Xử Lý
2013





7


Lời Nói Đầu:
Động cơ dc đƣợc ứng dụng vào nhiều lĩnh vực trong cuộc sống (trong công nghệ
chế tạo robot…).mach điều khiển động cơ có ý nghĩa rất quan trọng trong việc điều
khiển động cơ theo mục đích của ngƣời sử dụng.bên cạnh mục đích chính là điều
khiển động cơ ,ngoài ra còn có thêm một sổ chức năng khác nhƣ hiển thị thời gian
thực trên LCD,hiển thị nhiệt độ trên led.
Bài tập lớn của môn vi xử lý chúng em làm lần này gúp chúng em rèn lyện
thêm các kỹ năng lập trình cho pic c,cách mô phỏng mạch trên proteus và kỹ năng
làm mạch in trên orcard hoặc altium. vận dụng những kiến thức đã học trên giảng
đƣờng vào thực tế và đồng thời rèn luyện đƣợc kỹ năng làm việc nhóm.










Báo cáo BTL Vi Xử Lý
2013





8


CHƢƠNG 1:MÔ PHỎNG ĐỀ TÀI
1.1 Yêu cầu chức năng
Mạch điều khiển tốc đo động cơ có hồi tiếp bao gồm các chức năng chính
sau:
-Hiển thị thời gian thực trên LCD 16x2,cài đặt và thay đổi thời gian thực
-Hiển thị nhiệt độ trên LED 7 thanh
-Hiển thị tốc độ động cơ trên led 7 thanh
-Tăng,giảm tốc độ động cơ ,nhập tốc độ động cơ từ bàn phím,cảnh báo khi
động cơ quay với vận tốc vƣợt quá 1 ngƣỡng nào đó.
1.2 Sơ đồ khối hệ thống

Báo cáo BTL Vi Xử Lý
2013




9

1.3 Kế hoạch thực hiện và phân chia công việc

Báo cáo BTL Vi Xử Lý
2013





10









CHƢƠNG 2: THIẾT KẾ HỆ THỐNG
2.1 Khối nguồn


Nguồn đƣa vào hệ thống là nguồn 12V DC, Yêu cầu điện áp sử dụng cho chip
PIC và các linh kiện điện tử là 5V.
Báo cáo BTL Vi Xử Lý
2013




11
2.2 Khối vi xử lý
-Vi điều khiển: Ở đây sử dụng vi điều khiển PIC 16F877A
-Khối này cũng rất quan trọng không khác gì khối nguồn nó đảm nhận nhiệm
vụ xử lý các dữ liệu chứa trong chƣơng trình .từ đó có thể điều khiển các đối
tƣợng khác làm một công việc gì đó ,điều khiển truy xuất dữ liệu các khối còn
lại trong mạch .nói chung khối công xuất có thể làm nhiều công việc khác

nhau tùy theo ngƣời lập trình viết ra để làm một công việc gì đó tùy theo nhu
cầu sử dụng



2.3 Khối hiển thị
-bao gồm 1 màn hình hiển thị LCD 16x2,4 led 7 thanh.
 Màn hình LCD 16x2
Báo cáo BTL Vi Xử Lý
2013




12

Đây là loại gồm 16 ký tự x2 dòng ,mỗi ký tự được tạo ra từ một ma trận
điểm sáng kích cỡ 5×7 hoặc 5×10
*Sơ đồ chân:

*Nguyên lý hoạt động
-Các chân 1,2,3 là các chân VSS , VDD, VEE trong đó VSS chân nối
đất , VEE chân chọn độ tương phản chân này dc chọn qua 1 biến trở
5K một đầu nối VCC , một đầu nối mát . Chân VDD nối dương nguồn .
- Chân chọn thanh ghi RS (Register Select): Có hai thanh ghi trong
LCD, chân RS(Register Select) được dùng để chọn thanh ghi, như
sau:
Nếu RS = 0 ở chế độ ghi lệnh như xóa màn hình , bật tắt con trỏ…
Nếu RS =1 ở chế độ ghi dữ liệu như hiển thị ký tự , chữ số lên màn
hình .

-Chân đọc/ ghi (R/W): Đầu vào đọc/ ghi cho phép người dùng ghi
Báo cáo BTL Vi Xử Lý
2013




13
thông tin lên LCD khi R/W = 0 hoặc đọc thông tin LCD khi
R/W = 1.
-Chân cho phép E (Enable): Chân cho phép E được sử dụng bởi LCD
để chốt dữ liệu của nó. Khi dữ liệu được đến chân dữ liệu thì cần có 1
xung từ mức cao xuống mức thấp ở chân này để LCD chốt dữ liệu ,
xung này phải có độ rộng tối thiểu 450ns.
Chân D0 – D7: Đây là 8 chân dữ liệu 8 bít, được dùng để gửi thông tin
lên LCD hoặc đọc nội dung của các thanh ghi trong
LCD. Để hiển thị các chữ cái và các con số chúng ta gửi các mã ASCII
của các chữ cái và các con số tương ứng đến các chân này khi bật
RS =1

 LED 7 thanh

 Led 7 thanh có cấu tạo bao gồm 7 led đơn có dạng thanh xếp theo Hình
dƣới và có thêm một led đơn hình tròn nhỏ thể hiện dấu chấm tròn ở góc
dƣới, bên phải của led 7 thanh. 8 led đơn trên led 7 đoạn có Aode(cực +)
hoặc Cathode(cực -) đƣợc nối chung với nhau vào một điểm, đƣợc đƣa
chân ra ngoài để kết nối với mạch điện.
 8 cực còn lại trên mỗi led đơn đƣợc đƣa thành 8 chân riêng:

 Nếu led 7 đoạn có Anode(cực +) chung, đầu chung này đƣợc nối

với +Vcc, các chân còn lại dùng để điều khiển trạng thái sáng tắt của
các led đơn, led chỉ sáng khi tín hiệu đặt vào các chân này ở mức 0.
 Nếu led 7 đoạn có Cathode (cực -) chung, đầu chung này đƣợc
nối xuống Ground (hay Mass), các chân còn lại dùng để điều khiển
trạng thái sáng tắt của các led đơn, led chỉ sáng khi tín hiệu đặt vào
các chân này ở mức 1.

Báo cáo BTL Vi Xử Lý
2013




14
 Để hiển thị đƣợc led 7 thanh chúng ta còn phải ghép nối led với linh
kiện 74hc595


Cách mắc của 74hc595 nhƣ sau

2.4 Khối công suất
-gồm một động cơ dc encoder sử dụng 12v, khuếch đại công suất đùng L298
Đây là một khối cũng khá quan trọng,ta thƣờng sử dụng nguồn 12v,dòng 1
ampe.
Hình ảnh cho L298

L298 có mục đích sử dụng là khuếch đại công suất của động cơ
2.5 Khối giao tiếp bàn phím và Cảm biến nhiệt độ
 ở đây ta dùng bàn phím 4x4
Bàn phím gồm các nút sau

7 8 9 A
6 5 4 B
3 2 1 C
Báo cáo BTL Vi Xử Lý
2013




15
0 # = D

Nút số gồm các số từ 0->9
Nút A là tăng thêm 1 đơn vị,nút B là giảm một đơn vị,nút C
dùng để điều chỉnh giờ chế độ (12h/24h),nút D dùng đẻ
chuyển chế đọ động cơ,nút # dùng để cho tốc độ động cơ về
0 và dùng để cài đặt tốc đọ động cơ.

 cảm biến nhiệt độ
-Chân này đƣợc kết nối với chân ADC (chân RA0)
-Tín hiệu tƣơng tự đƣợc đọc và biến đổi ADC đƣa kết quả nhiệt độ chính xác
ra màn led 7 thanh


2.6 Hình ảnh layout
Mặt trên:
Báo cáo BTL Vi Xử Lý
2013





16


Mặt dƣới:
Báo cáo BTL Vi Xử Lý
2013




17









2.7 Hình ảnh thật của mạch
Toàn mạch:
Báo cáo BTL Vi Xử Lý
2013





18







Báo cáo BTL Vi Xử Lý
2013




19







Báo cáo BTL Vi Xử Lý
2013




20







CHƢƠNG 3:KẾT LUẬN
Sau khi làm xong bài tập lớn môn kỹ thuật vi xử lý ,chúng em đã học đƣợc rất
Báo cáo BTL Vi Xử Lý
2013




21
nhiều điều từ các kỹ năng nhƣ làm việc nhóm,kỹ năng viết code c và asm,kỹ
năng làm mạch thực tế.chúng em biết đƣợc mình phải làm những gì khi bắt
tay vào làm 1 mạch điện tử.
TÀI LIỆU THAM KHẢO
Các trang tìm hiểu thông tin
www.Machdientu.net
www.diedandientuvietanam.net
www.picvietnam.com

www.google.com












PHỤ LỤC A: SOFTWARE CODE
#include <16f877a.h>
#device pic16f877a*=16 adc=10
Báo cáo BTL Vi Xử Lý
2013




22
#include "lcd_4bit.c"
#include "ds1307.c"
#FUSES NOWDT //No Watch Dog Timer
#FUSES HS //High speed Osc (> 4mhz for PCM/PCH)
(>10mhz for PCD)
#FUSES NOPUT //No Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or
B5(PIC18) used for I/O
#FUSES NOCPD //No EE protection
#FUSES NOWRT
#use delay(clock=20000000)
#use i2c(Master,Fast,sda=PIN_C4,scl=PIN_C3)

#byte porte=0x09
#bit shf=porte.0
#bit dat=porte.1
#bit lch=porte.2
#byte portb=0x06
#bit RB4=portb.4
#bit RB5=portb.5
#bit RB6=portb.6
#bit RB7=portb.7
#byte porta=0x05
#bit RA2=porta.2
#bit RA3=porta.3
#bit RA4=porta.4
#bit RA5=porta.5
unsigned char so[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7c,0x07,0x7f,0x6f};
int8 KEY_4X4[4][4]={7,8,9,15,
6,5,4,14,
Báo cáo BTL Vi Xử Lý
2013




23
3,2,1,13,
0,10,11,12};
//cai dat che do lcd
int8 set;
int8 mode;


byte hours=13;
byte min=0;
byte sec=0;

byte wday=6;
byte day=29;
byte month=5;
byte year=13;

byte m12h=0;// che do 12h
byte am_pm=0; // sang chieu

void dDisplay(int8 dec)
{
LCD_PutChar (dec/10 + 0x30);
LCD_PutChar (dec%10 + 0x30);
}

byte DEC2BCD(byte dec)
{
byte h;
byte l;
byte bcd;
h = dec / 10;
l = dec % 10;
Báo cáo BTL Vi Xử Lý
2013





24
bcd = (h << 4) + l;
return bcd;
}

byte BCD2DEC(byte bcd)
{
byte h;
byte l;
byte dec;
h = bcd / 16;
l = bcd % 16;
dec = (h * 10) + l;
return dec;
}

byte getHours(byte bcd) // xu ly du lieu cua gio theo 24h/12h
{
byte hours;
m12h = bcd & 0x40;
if(m12h)
{
am_pm = bcd & 0x20;
hours = BCD2DEC(bcd & 0x1F);
if (hours ==0)
hours = 12;
return hours;
}
else

{
return BCD2DEC(bcd);
}
Báo cáo BTL Vi Xử Lý
2013




25

}
void setHours(byte dec) // xu ly gio khi luu
{
if (m12h) // neu la che do 12h
{
DS1307_WrB(2, DEC2BCD(hours) + m12h + am_pm );
}
else
{
DS1307_WrB(2, DEC2BCD(hours));
}
}
void kt();
int8 keyCode=30,t=0,m=0,m1=0,m2=0;//t kiem tra xoa tg, k là dc
int16 h=0,i=0,pluse=0,duty=0,ktx=0;
int16 chedo_lcd=0,l_led=0,nhapso=0,led=0,u=0;
//hien thi so lcd
void hienso(int16 x)
{

int8 ng,tr,ch,dv;
ng=x/1000;
tr=x/100-ng*10;
ch=x/10-ng*100-tr*10;
dv=x-ng*1000-tr*100-ch*10;
LCD_PutChar(ng+0x30);
LCD_PutChar(tr+0x30);
LCD_PutChar(ch+0x30);
LCD_PutChar(dv+0x30);
}
#int_ext

×