Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 86 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
86
Dung lượng
2,41 MB
Nội dung
MỤC LỤC DANH MỤC HÌNH VẼ Hình 2.1 Sơ đồ chân ATmega16, hình dạng thực tế Hình 2.2 Bộ nhớ AVR Hình 2.3 Sơ đồ cấu tạo Timer/counter0 Hình 2.4 Sơ đồ cấu tạo Timer/counter1 Hình 2.5 Sơ đồ cấu tạo Timer/counter2 Hình 2.6 Sơ đồ khối USART Hình 2.7 Sơ đồ khối chuyển đổi ADC Hình 2.8 hình ảnh động DC Servo Hình 2.9 thành phần động DC servo Hình 2.10 Hình dạng LM35 Hình 2.11 Sơ đồ chân RS232 Hình 2.12 sơ đồ chân chuyển đổi MAX232 cổng COM Hình 3.1: Hệ thống kết nối máy tính với động Hình 3.2 Khối xử lý trung tâm khối hiển thị Himh 3.3: Khối động lực Trang Hinh 3.4 Kết nối AVR với PC thông qua Max232 Hình 3.5 Khối nguồn Hình 3.6 sơ đồ nguyên lý toàn mạch Hình 3.7 Giao diện chương trình DANH MỤC BẢNG BIỂU Bảng 2.1 trạng thái bit Timer/ Counter control register Bảng 2.2 vectơ ngắt Atmega 16 Bảng 2.3 bảng trạng thái chọn số chia tần ADC Bảng 2.4 chức chân RS232 LỜI NÓI ĐẦU Trong thập niên gần công nghiệp hoá đại hoá giới ngày phát triển mạnh mẽ Ở nước ta nay, việc lập trình ghép nối máy tính sử dụng vi điều khiển công cụ ứng dụng rộng rãi lĩnh vực tự động hoá Nó phát triển nhanh chóng, mang lại thay đổi to lớn công nghệ đời sống hàng ngày Việc tạo công nghệ truyền thông không dây tiết kiệm nhiều mặt kinh tế tốn dây dẫn, việc lắp đặt trở nên gọn nhẹ hơn, dễ dàng hơn… Động chiều sử dụng từ lâu hệ truyền động có điều khiển tốc độ yêu cầu dải điều chỉnh lớn, độ ổn định tốc độ cao hệ thường xuyên hoạt động chế độ khởi động, hãm đảo chiều Một số ứng dụng quan trọng động chiều truyền động cho xe điện, máy công cụ, máy nâng vận chuyển, máy cán, máy nghiền Từ vấn đề nhóm đồ án chúng em chọn đề tài “Điều khiển giám sát động DC”.Với hướng dẫn nhiệt tình thầy hướng dẫn đến chúng em hoàn thành đề tài Tuy nhiên, để có sản phẩm có tính ổn định cao, đảm bảo chất lượng tương đối khó khăn Vì tầm hiểu biết nhóm thực hạn chế nên đề tài khó tránh khỏi thiếu sót, khuyết điểm không mong muốn Nhóm đồ án Trang chúng em mong có ý kiến đóng góp quý báu, chân thành quý thầy cô bạn sinh viên để đề tài hoàn thiện CHƯƠNG I: TỔNG QUAN VỀ ĐỀ TÀI 1.1 Lý chọn đề tài 1.1.1 Cơ sở khoa học Với phát triển mạnh mẽ khoa học công nghệ ngày nay, đem lại nhiều ứng dụng thành to lớn phục vụ nhu cầu đời sống thiết thực người Đặc biệt hai lĩnh vực Máy tính điện tử trở nên quen thuộc phục vụ phần lớn cho mặt đời sống người Sự kết hợp hai lĩnh vực mang lại nhiều ứng dụng thiết thực cho kinh tế đời sống người 1.1.2 Cơ sở thực tiễn Động chiều sử dụng từ lâu hệ truyền động có điều khiển tốc độ yêu cầu dải điều chỉnh lớn, độ ổn định tốc độ cao hệ thường xuyên hoạt động chế độ khởi động, hãm đảo chiều Nhờ có đặc tính điều chỉnh tốc độ tốt nên sử dụng phổ biến công nghiệp Một số ứng dụng quan trọng động chiều truyền động cho xe điện, máy công cụ, máy nâng vận chuyển, máy cán, máy nghiền Sẽ đơn giản tiện dụng ta điều khiển giám sát thiết bị điện công ty hay xí nghiệp Từ ý tưởng với nhu cầu từ thực tiễn, nhóm đồ án chúng em định chọn đề tài: “Điều khiển giám sát động DC Trang - - 1.1.3 Nội dung đề tài Điều khiển động dựa vào giao diện viết máy tính sử dụng phần mềm Visual Basic 6.0 để thiết kế giao diện Tín hiệu điều khiển người sử dụng tác động từ máy tính chuyển đổi thành tín hiệu số nhị phân thông qua mạch giao tiếp với máy tính Mạch điều khiển nhận lệnh từ máy tính điều khiển tốc độ đảo chiều động cơ.Hiển thị tốc độ số vòng/s, điện áp , dòng điện động LCD - Điều khiển phím ấn kết hợp với điều khiển máy tính 1.1.4 Mục tiêu nghiên cứu - Thiết kế, chế tạo modul điều khiển động điện chiều giao tiếp máy tính qua cổng COM - Giao tiếp modul VĐK với máy tính thông qua chuẩn RS232 - Tính tốc độ số vòng/s , điện áp , dòng điện , nhiệt độ hiển thị LCD - Hoàn thành sản phẩm với độ xác cao, ứng dụng thực tế 1.1.5 Mục đích nghiên cứu Dựa vào kiến thức học vể điện tử công suất, kỹ thuật giao tiếp máy tính, kết hợp với kiến thức Kỹ thuật điện tử để nghiên cứu giải pháp điều khiển giám sát thiết bị điện thông qua mạch điện tử Nhằm ôn lại kiến thức học nâng cao trình độ chuyên môn để phục vụ cho công việc sau trường 1.1.6 Phương pháp nghiên cứu Tham khảo tài liệu hướng dẫn lập trrình visual basic, kỹ thuật đa xử lý vi điều khiển, giao tiếp máy tính với thiết bị qua cổng COM Tìm hiểu hoạt động IC sử dụng đề tài qua datasheet nhà sản xuất cung cấp 1.1.7 Phương tiện nghiên cứu - Giáo trình liên quan đến đề tài - Máy vi tính - Các linh kiện điện tử để thi công mạch điện: Bộ xử lý trung tâm (Vi điều khiển AVR), động chiều, Cổng truyền thông giám sát thiết bị (chuẩn truyền thông nối tiếp RS232 IC Max 232) , cảm biến nhiệt độ LM35, LCD 16×4 - Các phần mềm hỗ trợ : eagle 5.6, Visual Basic 6.0, Proteus 7.4, HM-TR, driver USB to COM Trang 1.1.8 Ý nghĩa đề tài Trong thực tế có nhiều loại truyền thông không dây dụng rộng rãi, song nhóm đồ án chúng em thiết kế modul điều khiển giám sát động giúp người sử dụng dễ dàng điều khiển quan sát tốc độ, chiều quay động trực tiếp máy vi tính với giao diện Visua Basic, không cồng kềnh, không tốn dây, nút bấm, công tắc mà lại an toàn cho người sử dụng làm việc nhà máy xí nghiệp Kết luận: qua nhóm chúng em mục tiêu nghiên cứu mà ta tìm ý tưởng, phương hướng giải đề tài ứng dụng mạch điều khiển , giám sát động DC thực tế CHƯƠNG II: GIỚI THIỆU LINH KIỆN CHÍNH DÙNG TRONG MẠCH 2.1 ATMEGA 16 2.1.1 - - Giới thiệu Vi điều khiển AVR hãng Atmel (hoa kỳ) sản xuất giới thiệu lần năm 1996 AVR có nhiều dòng khác bao gồm dòng Tiny (ATtiny13, ATtiny22…) có kích thước nhớ nhỏ, phận ngoại vi , đến dòng AVR (AT90S8535, AT90S8515…) có kích thước nhớ vào loại trung bình mạnh dòng Mega (ATmega16, ATmega32, ATmega128… ) với nhớ có kích thước vài Kbyte đến vài trăm Kb với ngoại vi đa dạng Tốc độ dòng Mega cao so với dòng khác Sự khác dòng cấu trúc ngoại vi ATmega16 lọai vi điều khiển có nhiều tính đặc biệt thích hợp cho việc giải toán điều khiển vi xử lý Các lọai vi điều khiển AVR phổ biến thị trường Việt Nam nên không khó khăn việc thay sửa chữa hệ thống lúc cần Giá thành dòng vi điều khiển hợp lý Các phần mềm lập trình mã nguồn mở tìm kiếm dễ dàng mạng ATmega16 vi điều khiển bit dựa kiến trúc RISC Với khả thực lệnh vòng chu kỳ xung clock, ATmega16 đạt tốc độ 1MIPS MHz (1triệu lệnh/s/MHz), lệnh xử lý nhanh hơn, tiêu thụ lượng thấp Trang 2.1.2 Chức Atmega 16 Hình 2.1 Sơ đồ chân ATmega16, hình dạng thực tế + + + + Atmega16 có cấu trúc RISC với: 131 lệnh, hầu hết thực thi chu kì xung nhịp 32x8 ghi đa dụng Tốc độ làm việc 16MPIS, với thạch anh 16MHz Trong chíp có chức hỗ trợ gỡ rối lập trình soạn thảo chương trình Trang + + + + + + + + + + + + + + + + + + + + + + + + + + + Bộ nhớ: 16 KB ISP Flash với khả 10.000lần ghi/xóa 512Byte EEROM 1KB SRAM ngọai Giao tiếp JTAG: Khả quét toàn diện theo chuẩn JTAG Hỗ trợ khả gỡ rối Hỗ trợ lập trình Flash, EEROM, … Khóa bit qua giao tiếp JTAG Ngọai vi: timer/counter bit với chế độ: so sánh chia tần số timer/counter 16 bit với chế độ: so sánh, chia tần số, capture, PWM timer thời gian thực (Real time clock) với dao động riêng biệt kênh PWM nhiều VĐK khác thuộc họ kênh biến đổi ADC 10bit Hỗ trợ giao tiếp I2C Bộ giao tiếp nối tiếp lập trình USART Giao tiếp SPI Watch_dog timer với dao động on-chip riêng biệt Những thuộc tính đặc biệt: Power On reset Brown-out detection Chế độ hiệu chỉnh sai số cho dao động RC On-chip Các chế độ ngắt đa dạng mode sleep: Idle, ADC noise reduction, tiết kiệm lượng, power_down, standby, extended standby I/O port: 32 chân I/O(Atmega16) 21 chân I/O (Atmega8) lập trình Vỏ 40 chân (Atmega16), 28 chân(Atmega8), 64 chân(AT90can128) Nguồn cấp: 2,7->5.5 V với Atmega16L 4.5->5.5V với Atmega16H Tiêu hao lượng: Khi họat động tiêu thụ dòng 1,1mA Ở mode Idle tiêu thụ dòng 0.35mA Ở chế độ Power_down tiêu thụ dòng nhỏ 1uA Trang Đây chức thường thấy vi điều khiển AVR, vi điều khiển khác thuộc dòng vi điều khiển thường hỗ trợ thêm chức đặc biệt Ví dụ AT90can128 hỗ trợ thêm giao tiếp mạng Can bus on-chip - Các phần mềm lập trình cho AVR: + AVRStudio (free), Code Vision + Ngoài dùng chương trình nạp PonyProg2000, Winpic8 2.1.3 Một số modul Atmega 16 • - Modul I/O Vi điều khiển ATmega16 có 32 đuờng vào chia làm bốn nhóm 8bit Các cổng vào AVR cổng vào chiều định hướng, tức chọn hướng cổng hướng vào ( input ) hay hướng ( out put ) Tất cổng vào AVR có tính Đọc - Chỉnh sửa - Ghi ( Read – Modify - Write ) sử dụng chúng cổng vào số thông thường Điều có nghĩa tắt hay đổi hướng chân không ảnh hưởng tới hướng chân khác Tất chân các cổng ( Port ) có điện trở kéo lên (Pull-up ) riêng, ta cho phép hay không cho phép điện trở kéo lên hoat động Điện trở kéo lên ( pull- up ): điện trở dùng thiết kế mạch điện tử logic Nó có đầu nối với nguồn điện áp dương (thường Vcc Vdd) đầu lại nối với tín hiệu lối vào/ra mạch logic chức Điện trở kéo lên lắp đặt lối vào khối mạch logic để thiết lập mức logic khối mạch thiết bị nối với lối vào Điện trở kéo lên lắp đặt giao diện khối mạch logic không loại logic, đặc biệt khối mạch cấp nguồn khác Khi khảo sát cổng cổng vào số thông thường tính chất cổng ( Port A, PortB, PortC ) tương tự nhau, nên ta cần khảo sát cổng cổng vi điều khiển đủ Mỗi cổng vào vi điều khiển liên kết với ghi : PORTx, DDRx, PINx (ở x thay cho A, B, C ) Ba ghi phối hợp với để điều khiển hoạt động cổng, chẳng hạn thiết lập cổng thành lối vào có sử dụng điện trở pull-up… Sau vai trò ghi Thanh ghi DDRx Trang Đây ghi 8bit( ta đọc ghi ghi này) có tác dụng điều khiển hướng cổng PORTx( tức cổng vào hay cổng ra) Nếu bit ghi set bit tương ứng PORTx định nghĩa cổng Ngược lại bit không set bit tương ứng PORTx định nghĩa cổng vào DDA7 R/W - DDA6 R/W DDA5 R/W DDA4 R/W DDA3 DDA2 DDA1 R/W R/W R/W DDA0 R/W Thanh ghi PORTx Đây ghi 8bit ( bit đọc ghi) ghi liệu cổng Px trường hợp cổng định nghĩa cổng ta ghi lên bit ghi chân tương ứng port có mức logic Trong trường hợp mà cổng định nghĩa cổng vào ghi mang liệu điều khiển cổng Cụ thể bit ghi set (đưa lên mức ) điện trở kéo lên pull up chân tương ứng port kích hoạt Ngược lại trạng thái treo (không có điện trở kéo lên) Thanh ghi sau khởi động Vi điều khiển mặc định giá trị 0x00 PORTA7 R/W - PORTA6 PORTA5 R/W R/W PORTA4 R/W PORTA3 R/W PORTA2 R/W PORTA1 R/W PORTA0 R/W Thanh ghi PINx Đây ghi 8bit chứa liệu vào PORTx ( trường hợp PORTx thiết lập cổng vào) đọc mà không ghi vào PINA7 R N/A R N/A PINA6 R N/A PINA5 R N/A PINA4 R N/A PINA3 R N/A PINA2 R N/A PINA1 PINA0 R N/A Trang • Bộ nhớ Atmega 16 Hình 2.2 Bộ nhớ AVR AVR có không gian nhớ nhớ liệu vào nhớ chương trình Ngoài ra, ATmega16 có thêm nhớ EEPROM để lưu trữ liệu Bộ nhớ chương trình( nhớ Flash) Bộ nhớ Flash 16Kb ATmega16 dùng để lưu trữ chương trình Do lệnh AVR có độ dài 16 32 bit nên nhớ Flash xếp theo kiểu 8Kx16 Bộ nhớ Flash chia làm phần, phần chứa instruction (mã lệnh cho hoạt động chip) phần chứa véc tơ ngắt Các véc tơ ngắt nằm phần đầu application section Phần chứa instruction nằm liền sau Chương trình viết cho chíp phải load vào phần Chúng ta nhiều hội tác động vào nhớ lập trình cho chíp • Bộ nhớ liệu SRAM Gồm 1120 ô nhớ liệu định địa cho file ghi, nhớ I/O nhớ liệu SRAM nội Trong 96 ô nhớ định địa cho file ghi nhớ I/O 1024 ô nhớ định địa cho nhớ SRAM nội Trang 10 lcd_putsf("MANU"); lcd_gotoxy(12,0); if(mode==0) lcd_putsf("DUN"); if(mode==1) lcd_putsf("Q_T"); if(mode==2) lcd_putsf("Q_P"); ct_scan_senser(); if(scan_encoder==1) { scan_encoder=0; van_toc=xung_encoder/encoder; }; lcd_gotoxy(0,1); lcd_putsf("V="); lcd_number1(van_toc,2,0); lcd_putsf("(V/s)"); lcd_gotoxy(0,2); lcd_putsf("U="); lcd_number1(dien_ap,4,1); lcd_putsf("(V)"); lcd_gotoxy(9,2); lcd_putsf("Ton="); lcd_number(Ton,2); lcd_putsf("%"); lcd_gotoxy(0,3); lcd_putsf("t="); lcd_number1(nhiet_do,2,0); lcd_putsf("oC"); lcd_gotoxy(8,3); lcd_putsf("I="); lcd_number1(dong_dien,3,1); lcd_putsf("(A)"); } void ct_setting (void) { Trang 72 lcd_gotoxy(0,0); lcd_putsf("SETTING"); lcd_gotoxy(0,1); lcd_putsf("V="); lcd_number1(van_toc_dat,2,0); lcd_putsf("(V/s)"); lcd_gotoxy(0,2); lcd_putsf("t="); lcd_number1(nhiet_do_max,2,0); lcd_putsf("oC"); lcd_gotoxy(8,2); lcd_putsf("I="); lcd_number1(dong_dien_max,3,1); lcd_putsf("(A)"); lcd_gotoxy(0,3); lcd_putsf("ENCODER:"); lcd_number1(encoder,4,0); lcd_putsf("XUNG"); } void ct_scan_senser (void) { static unsigned int nhiet_do1 =0; static unsigned long dien_ap1 =0; static unsigned long tg_dien_ap1 =0; static unsigned long dien_ap2 =0; static unsigned long tg_dien_ap2 =0; static unsigned long tg_dong_dien=0; static unsigned char index1=0; if(scan_senser==1) { scan_senser=0; bien_tg1=read_adc(0); nhiet_do1+=bien_tg1/4; bien_tg1=read_adc(1); bien_tg1=bien_tg1*256/1024; Trang 73 bien_tg1=bien_tg1/10; bien_tg1=bien_tg1*51/10; tg_dien_ap1+=bien_tg1; bien_tg1 =read_adc(2); bien_tg1=bien_tg1*256/1024; bien_tg1=bien_tg1/10; bien_tg1=bien_tg1*51/10; tg_dien_ap2+=bien_tg1; bien_tg1 =read_adc(3); bien_tg1=bien_tg1*256/1024; bien_tg1=bien_tg1/10; bien_tg1=bien_tg1*32/10; tg_dong_dien+=bien_tg1; if(index1dien_ap2)dien_ap=dien_ap1-dien_ap2; else dien_ap=dien_ap2-dien_ap1; tg_dong_dien=0; tg_dien_ap1=0; tg_dien_ap2=0; nhiet_do1=0; index1=0; }; }; } Chương trình VB Dim chuong_trinh As Integer Dim mode As Integer Trang 74 Dim val_PWM As Integer Dim Ton As Integer Dim van_toc_dat As Integer Dim van_toc As Integer Dim co_truyen As Integer Dim chi_so1 As Integer Dim nhiet_do As Integer Dim nhiet_do_max As Integer Dim dong_dien As Integer Dim dong_dien_max As Integer Dim dien_ap As Integer Dim start As Integer Dim len_array As Integer Private Sub Command1_Click() If mode = Then mode = co_truyen = Timer3.Enabled = True End If End Sub Private Sub Command10_Click() len_array = len_array + Text10.Text = Text9.Text = Text9.Text + Text10.Text End Sub Private Sub Command11_Click() len_array = len_array + Text10.Text = Text9.Text = Text9.Text + Text10.Text End Sub Private Sub Command12_Click() Trang 75 len_array = len_array + Text10.Text = Text9.Text = Text9.Text + Text10.Text End Sub Private Sub Command13_Click() len_array = len_array + Text10.Text = Text9.Text = Text9.Text + Text10.Text End Sub Private Sub Command14_Click() len_array = len_array + Text10.Text = Text9.Text = Text9.Text + Text10.Text End Sub Private Sub Command15_Click() len_array = len_array + Text10.Text = Text9.Text = Text9.Text + Text10.Text End Sub Private Sub Command16_Click() len_array = len_array + Text10.Text = Text9.Text = Text9.Text + Text10.Text End Sub Private Sub Command2_Click() mode = co_truyen = Timer3.Enabled = False End Sub Trang 76 Private Sub Command3_Click() If mode = Then mode = co_truyen = Timer3.Enabled = True End If End Sub Private Sub Command4_Click() End End Sub Private Sub Command5_Click() If Option4.Value = True Then van_toc_dat = Val(Text9.Text) Text9.Text = "" Text6.Text = van_toc_dat End If If Option5.Value = True Then nhiet_do_max = Val(Text9.Text) Text9.Text = "" Text7.Text = nhiet_do_max End If If Option6.Value = True Then dong_dien_max = Val(Text9.Text) Text9.Text = "" Text8.Text = dong_dien_max End If Text12.Text = len_array len_array = co_truyen = End Sub Trang 77 Private Sub Command6_Click() len_array = len_array + Text10.Text = Text9.Text = Text9.Text + Text10.Text End Sub Private Sub Command7_Click() If len_array > Then len_array = len_array - Text9.Text = Left(Text9.Text, len_array) End If End Sub Private Sub Command8_Click() len_array = len_array + Text10.Text = Text9.Text = Text9.Text + Text10.Text End Sub Private Sub Command9_Click() len_array = len_array + Text10.Text = Text9.Text = Text9.Text + Text10.Text End Sub Private Sub Form_Load() ' MSComm1.PortOpen = True co_truyen = start = Picture1.Picture = Image1.Picture End Sub Private Sub HScroll1_Change() Trang 78 val_PWM = HScroll1.Value co_truyen = End Sub Private Sub MSComm1_OnComm() Dim X As String Dim a, b, c, d As Integer Dim bien1, bien2, bien3, bien4, bien5, bien6, bien7, bien8, bien9, bien10 As Integer X = MSComm1.Input If co_truyen = Then start = If Len(X) = 10 Then a = Mid(X, 1, 1) bien1 = Asc(a) a = Mid(X, 2, 1) bien2 = Asc(a) a = Mid(X, 3, 1) bien3 = Asc(a) a = Mid(X, 4, 1) bien4 = Asc(a) a = Mid(X, 5, 1) bien5 = Asc(a) a = Mid(X, 6, 1) bien6 = Asc(a) a = Mid(X, 7, 1) bien7 = Asc(a) a = Mid(X, 8, 1) bien8 = Asc(a) a = Mid(X, 9, 1) bien9 = Asc(a) a = Mid(X, 10, 1) bien10 = Asc(a) chuong_trinh = bien1 mode = bien2 Trang 79 val_PWM = bien3 HScroll1.Value = val_PWM Ton = val_PWM \ van_toc = bien4 nhiet_do = bien5 dong_dien = bien6 dien_ap = bien7 van_toc_dat = bien8 nhiet_do_max = bien9 dong_dien_max = bien10 Text1.Text = van_toc Text2.Text = Ton Text3.Text = nhiet_do Text4.Text = dong_dien Text5.Text = dien_ap Text6.Text = van_toc_dat Text7.Text = nhiet_do_max Text8.Text = dong_dien_max Timer2.Enabled = True End If Else co_truyen = Timer1.Enabled = True End If End Sub Private Sub Option1_Click() chuong_trinh = Frame3.Visible = False Frame4.Visible = False co_truyen = mode = End Sub ' chuong trinh tu dong Trang 80 Private Sub Option2_Click() Frame3.Visible = False Frame4.Visible = True chuong_trinh = co_truyen = mode = End Sub ' chuong trinh bang tay Private Sub Option3_Click() Frame3.Visible = True Frame4.Visible = False chuong_trinh = co_truyen = tri_so1 = Text9.Text = "" Text10.Text = Option4.Value = True End Sub Private Sub Option4_Click() chi_so1 = ' co_truyen = Label13.Caption = "X10 V/P" End Sub Private Sub Option5_Click() chi_so1 = ' co_truyen = Label13.Caption = "oC" End Sub Private Sub Option6_Click() chi_so1 = Trang 81 ' co_truyen = Label13.Caption = "X100 mA" End Sub Private Sub Timer1_Timer() Dim sen_byte(0 To 5) As Byte Timer1.Enabled = False If start = Then If mode = Then Shape1.Visible = True Shape2.Visible = False Shape3.Visible = False End If If mode = Then Shape2.Visible = True Shape1.Visible = False Shape3.Visible = False End If If mode = Then Shape3.Visible = True Shape2.Visible = False Shape1.Visible = False End If sen_byte(0) = chuong_trinh sen_byte(1) = mode sen_byte(2) = val_PWM sen_byte(3) = van_toc_dat sen_byte(4) = nhiet_do_max sen_byte(5) = dong_dien_max MSComm1.Output = sen_byte() End If End Sub Private Sub Timer2_Timer() Trang 82 Timer2.Enabled = False If chuong_trinh = Then ' chuong trinh tu dong Frame3.Visible = False Frame4.Visible = False Option1.Value = True End If If chuong_trinh = Then ' chuong trinh bang tay Frame3.Visible = False Frame4.Visible = True Option2.Value = True End If If chuong_trinh = Or chuong_trinh = Then Text1.Text = van_toc Text2.Text = Ton Text3.Text = nhiet_do Text4.Text = dong_dien Text5.Text = dien_ap If mode = Then Shape1.Visible = True Shape2.Visible = False Shape3.Visible = False End If If mode = Then Shape2.Visible = True Shape1.Visible = False Shape3.Visible = False End If If mode = Then Shape3.Visible = True Shape2.Visible = False Shape1.Visible = False End If Trang 83 End If If chuong_trinh = Then ' chuong trinh cai dat Option3.Value = True Frame3.Visible = True Frame4.Visible = False End If End Sub Sub hh() If chi_so1 = Then ' hien thi van toc dat Option4.Value = True End If If chi_so1 = Then ' nhiet max Option5.Value = True End If If chi_so1 = Then Option6.Value = True End If End Sub Private Sub Timer3_Timer() Static timer_index0 As Integer Static i As Integer i=i+1 If i = Then i=0 End If 'thuc hien quay thuan If mode = Then Select Case i Case Trang 84 Picture1.Picture = Image1.Picture Case Picture1.Picture = Image2.Picture Case Picture1.Picture = Image3.Picture Case Picture1.Picture = Image4.Picture End Select End If ' thuc hien quay nguoc If mode = Then Select Case i Case Picture1.Picture = Image4.Picture Case Picture1.Picture = Image3.Picture Case Picture1.Picture = Image2.Picture Case Picture1.Picture = Image1.Picture End Select End If timer_index0 = timer_index0 + If timer_index0 > Then timer_index0 = End If End Sub Trang 85 Trang 86 [...]... mà ADC đang chuyển đổi thì khi quá trình chuyển đổi đã hoàn thành thì kênh vào mới được thay đổi ADCSR (ADC control and status register): Đây là thanh ghi điều khiển và lưu trạng thái của ADC: Bit 7-ADEN: ADC enable Trang 27 Đây là bit điều khiển hoạt động của ADC Khi bit này được set 1 thì ADC có thể hoạt động và ngược lại Nếu như ta ngừng hoạt động của ADC trong khi nó đang chuyển đổi thì nó sẽ kết... về mạch điều khiển này Nếu có bất kì lí do nào ngăn cản chuyển động quay của động cơ, cơ cấu hồi tiếp sẽ nhận ra tín hiệu ra chưa đạt được vị trí mong muốn Mạch điều khiển tiếp tục chỉnh sai lệch cho động cơ đạt được vị trí chính xác Động cơ servo DC 24v, là động cơ một chiều, kích từ nam châm vĩnh cửu (nên rotor nhỏ, nhẹ, moment quán tính nhỏ = servo) Động cơ này thường được dùng để điều khiển cho... trong ADC Trang 28 ACDDR (Thanh ghi dữ liệu): Đây là thanh ghi 16 bit và ta có thể truy nhập chúng như hai thanh ghi 8 bit với địa chỉ và các bit tương ứng Khi khởi tạo chúng có giá trị 0 Sau khi chuyển đổi thì dữ liệu số được đưa vào thanh ghi này 2.2 Động cơ Servo DC Động cơ Servo DC được thiết kế cho những hệ thống hồi tiếp Tín hiệu ra của động cơ được nối với 1 mạch vi điều khiển Khi động cơ quay... thấy: Tám đầu vào của ADC là tám chân của PORTA và chúng được chọn thông qua một MUX Để điều khiển hoạt động vào ra dữ liệu của ADC và CPU chúng ta có 3 thanh ghi: ADMUX, ADCSR và ADCD ADMUX (Multiplexer select register): Đây là thanh ghi điều khiển 8 bit dùng để lựa chọn kênh đầu vào cho ADC Với 3 bit được định nghĩa là: MUX2, MUX1 và MUX0 Ứng với các tổ hợp logic ta có thể chọn kênh đầu vào Chú ý: Nếu... chạy/dừng liên tục, cần thời gian khởi động và dừng thật nhanh, đôi khi có thắng điện kèm theo Hay trong các ứng dụng điều khiển vị trí, nên thường có encoder gắng trên đầu Động cơ này cũng được dùng trong các hệ thống cần điều khiển tốc độ chính xác Hình 2.8 hình ảnh động cơ DC Servo Trang 29 2.2.1 Cấu tạo Hình 2.9 các thành phần của động cơ DC servo - - Một động cơ Servo DC tiêu biểu gồm các thành phần... đầu ra để làm bằng phẳng điện áp đầu ra và giảm bớt tạp nhiễu của động cơ • • 2.2.3 Phương pháp điều chế độ rộng xung Khái niệm: PWM (pulse width modulation) là biến điệu độ rộng xung Trong các thiết bị cơ điện tử, thường dùng PWM để điều tốc, mô-men của động cơ DC rất có iệu quả Mẫu cơ bản là dùng PWM để điều khiển động cơ DC có điện áp 24V, dòng tới 3A Nguyên lý điều chế độ rộng xung: PWM tạo dựng trên... tính bằng volt/vòng quay 2.2.2 Điều khiển tốc độ Thông thường, tốc độ quay của một động cơ điện một chiều tỷ lệ với điện áp đặt vào nó, và ngẫu lực quay tỷ lệ với dòng điện Điều khiển tốc độ của động cơ có thể bằng cách điều khiển các điểm chia điện áp của bình ắc quy, điều khiển bộ cấp nguồn Trang 30 thay đổi đươc, dùng điện trở hoặc mạch điện từ…Chiều quay của động cơ có thể thay đổi được bằng cách... dùng Ví dụ T1 và R1 được dùng với nhau đối với TxD và RxD của vi điều khiển, còn cặp R2 và T2 thì chưa dùng đến Để ý rằng trong MAX232 bộ điều khiển T1 có gán T1in và T1out trên các chân số 11 và 1 tương ứng Chân T1in là ở phía TTL và được nối tới chân RxD của bộ vi điều khiển, còn T1out là ở phía RS232 được nối tới chân RxD của đầu nối DB của RS232 Bộ điều khiển đường R1 cũng có gán R1in và R1out trên... vi điều khiển để báo cho nó biết rằng thiết bị cần dịch vụ của nó Một bộ vi điều khiển có thể phục vụ một vài thiết bị, có 2 cách để thực hiện điều này đó là sử dụng các ngắt Interrup và thăm dò ( polling) Trong phương pháp sử dụng các ngắt thì mỗi khi có thiết bị bất kỳ cần đến dịch vụ của nó thì nó báo cho bộ vi điều khiển bằng cách gửi 1 tín hiệu ngắt Khi nhận được tín hiệu ngắt thì bộ vi điều khiển. .. vụ thiết bị Chương trình đi cùng ngắt được gọi là dịch vụ ngắt ISR hay còn gọi là chương trình quản lý ngắt Còn trong phương pháp thăm dò thì bộ vi điều khiển hiển thị liên tục tình trạng của 1 thiết bị đã cho và điều khiển thỏa mãn thì nó phục vụ thiết bị Sau đó chuyển sang hiển thị tình trạng của thiết bị kế tiếp cho đến khi tất cả đều được phục vụ Điểm mạnh của phương pháp ngắt là bộ vi điều khiển ... thành kênh vào thay đổi ADCSR (ADC control and status register): Đây ghi điều khiển lưu trạng thái ADC: Bit 7-ADEN: ADC enable Trang 27 Đây bit điều khiển hoạt động ADC Khi bit set ADC hoạt động ngược... máy tính Mạch điều khiển nhận lệnh từ máy tính điều khiển tốc độ đảo chiều động cơ. Hiển thị tốc độ số vòng/s, điện áp , dòng điện động LCD - Điều khiển phím ấn kết hợp với điều khiển máy tính... Động Servo DC thiết kế cho hệ thống hồi tiếp Tín hiệu động nối với mạch vi điều khiển Khi động quay vận tốc , vị trí hồi tiếp mạch điều khiển Nếu có lí ngăn cản chuyển động quay động cơ, cấu hồi