Tải bản đầy đủ (.docx) (11 trang)

Báo cáo bài tập lớn về chủ đề đo tốc độ động cơ

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 (112.91 KB, 11 trang )

TRƯỜ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


Báo cáo bài tập lớn về chủ đề đo tốc độ động cơ.
I.

Chuẩn bị:
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, …


II.

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:




Mạch hiển thị LCD:

Mạch điều khiển động cơ:


III.

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;


// khai bao bien

char txt1[4],txt2[4];
int xung,adc;
int vantoc;
void ngat() iv 0x04
{
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;

//chuong trinh ngat



// 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;


TMR1IE_BIT=1;
TMR1IF_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);
adc=adc/4;
pwm1_set_duty(adc);

// doc gia tri adc
// chuyen gia tri 10bit sang 8bit
// 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);
}


}
Sau 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.


IV.

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.



V.

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.



×