Thiết kế và thi công mạch điện:Tất cả các mạch dưới đây được vẽ trên phần mềm orcad.. Kết nối mạch và viết chương trình:Sau khi thi công các mạch chúng ta kết nối các mạch với nhau dựa v
Trang 1TRƯỜNG CAO ĐẲNG KỸ THUẬT CAO THẮNG
BÁO CÁO BÀI TẬP LỚN
Đề tài: đo tốc độ động cơ.
Giáo viên hướng dẫn:
Sv thực hiện: Trần Tuấn Vũ
Tp Hồ CHí Minh, tháng 8 năm 2012
Trang 2Báo cáo bài tập lớn về chủ đề đo tốc độ động cơ.
Motor encoder 200 xung/vòng
Vi điều khiển 16f887
Màn hình LCD 16x2
Biến áp nguồn
Mạch nạp vi điều khiển
Các linh kiện cần thiết
Và các dụng cụ: mỏ hàn, kiềm, …
Trang 3II Thiết kế và thi công mạch điện:
Tất cả các mạch dưới đây được vẽ trên phần mềm orcad
Mạch điều khiển:
Trang 4Mạch hiển thị LCD:
Mạch điều khiển động cơ:
Trang 5III Kết nối mạch và viết chương trình:
Sau khi thi công các mạch chúng ta kết nối các mạch với nhau dựa vào mạch nguyên lý đã có ở trên
Trước khi kết nối chúng ta kiểm tra các chân linh kiện và các dây trên mạch điện có bi dính nhau không
Khi kết nối nên lưu ý các đường dây nguồn của LCD và các dây tín hiệu từ mạch điều khiển đến mạch khác
Sau khi kết nối xong chúng ta chuyển qua viết code cho vi điều khiển
Và code được chúng tôi sử dụng như sau:
// ket noi LCD
sbit LCD_RS at Rb1_bit;
sbit LCD_EN at Rb3_bit;
sbit LCD_D4 at Rb4_bit;
sbit LCD_D5 at Rb5_bit;
sbit LCD_D6 at Rb6_bit;
sbit LCD_D7 at Rb7_bit;
sbit LCD_RS_Direction at TRISb1_bit;
sbit LCD_EN_Direction at TRISb3_bit;
sbit LCD_D4_Direction at TRISb4_bit;
sbit LCD_D5_Direction at TRISb5_bit;
sbit LCD_D6_Direction at TRISb6_bit;
sbit LCD_D7_Direction at TRISb7_bit;
Trang 6// khai bao bien
char txt1[4],txt2[4];
int xung,adc;
int vantoc;
void ngat() iv 0x04 //chuong trinh ngat {
if(TMR1IF_BIT==1)
{
TMR1IF_BIT=0;
TMR1H=60;
TMR1L=255;
xung=TMR0;
TMR0=0;
}
}
void main() {
ansel=0;
anselh=0;
trisa0_bit=0;
trisa2_bit=0;;
ra0_bit=0;
ra2_bit=1;
Trang 7// setup lcd ldc ghi du lieu
trisb2_bit=0;
rb2_bit=0;
//setup tmr0 la counter
t0se_bit=0;
t0cs_bit=1;
psa_bit=0;
ps0_bit=0;
ps1_bit=0;
ps2_bit=0;
//setup timer1 10ms
TMR1CS_BIT=0;
T1CKPS0_BIT=0;
T1CKPS1_BIT=0;
T1SYNC_BIT=1;
TMR1ON_BIT=1;
TMR1GE_BIT=0;
TMR1H=60;
TMR1L=255;
Trang 8TMR1IF_BIT=0;
PEIE_BIT=1; // cho phep ngat cuc bo
gie_bit=1; // cho phep ngat toan cuc
lcd_init(); // khai bao su dung lcd
adc_init(); // khai bao dung chuc nang adc pwm1_init(2000); // khai bao pwm 2khz
pwm1_start();
while(1){
adc=adc_read(1); // doc gia tri adc
adc=adc/4; // chuyen gia tri 10bit sang 8bit pwm1_set_duty(adc); // set gia tri pwm
vantoc=xung*30;
wordtostr(vantoc,txt2);
lcd_out(1,1,"so xung:");
bytetostr(xung,txt1);
lcd_out(1,9,txt1);
lcd_out(1,12,"/10ms");
lcd_out(2,1,"van toc:");
lcd_out(2,9,txt2);
lcd_out(2,14,"v/p");
Lcd_Cmd(_LCD_CURSOR_OFF);
delay_ms(20);
}
Trang 9Sau khi đã viết code xong chúng ta cần biên dịch và nạp chương trình vào vi điều khiển thong qua mạch nạp PICKIT2
Sau khi đã nạp chương trình xong chúng ta chuyển vi điều khiển vào mạch điều khiển chạy thử và hiệu chỉnh cho phù hợp
Trang 10IV Kết quả thu được:
Kiểm tra thiết bị lần cuối trước khi cấp nguồn, vặn biến trở về bên trái Sau đó cấp nguồn cho hệ thống vận hành
Vặn biến trở tăng giảm và theo dõi tốc độ hiển thị trên LCD cũng tăng giảm theo khi chúng ta điều chỉnh biến trở, và chúng ta cũng có thể cảm nhận được tôc đọ động cơ bang tai và mắt Như vậy mạch đã chạy ổn định và đúng yêu cầu đặt ra của dề tài
Trang 11V Kinh nghiệm sau khi hoàn thành bài tập lớn:
Hiểu biết thêm về động cơ encoder
Nâng cao trình độ lập trinh vi sử lí và thiết kế mạch
Biết chọn lựa linh kiện chính xác
Nên mua linh kiện trươc khi thiết kế mạch tránh tình trạng linh kiện mua k trung khớp với mạch in
Khi thiết kế mạch in nên lưu ý khoảng cách giữa các dây, để khi thi công thuận lợi hơn tránh tình trạng dính mạch
Giải quyết vấn đề encoder bị nhiễu tín hiệu
Nâng cao trình độ làm việc theo nhóm