Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 28 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
28
Dung lượng
1,09 MB
Nội dung
ỨNG DỤNG ĐO, ĐIỀUKHIỂN VÀ GIÁM SÁT TỐCĐỘĐỘNGCƠ ENCODER SỬ DỤNG VIĐIỀUKHIỂNPIC16F877A I TÌM HIỂU THIẾT BỊ 1) Pic16F877A Đây viđiềukhiển thuộc họ PIC16Fxxx với tập lệnh gồm 35 lệnh cóđộ dài 14 bít.Mỗi lệnh thực thi chu kỳ xung clock.Tốc độ hoạt động tối đa cho phép 20MHz với chu kỳ lệnh 200ns.Bộ nhớ chương trình 8Kx14 bít, nhớ liệu 368x8 byte RAM nhớ liệu EEPROM với dung lượng 256x8 byte.Số PORT I/O với 33 pin I/O - Các đặc tính ngoại vibao gồm khối chức sau: + Timer0: đếm bít với chia tần số bít + Timer1: đếm 16 bít với chia tần số, thực chức đếm dựa vào xung clock ngoại viviđiềukhiển hoạt động chế độ sleep + Timer2: đếm bít với chia tần số, postcaler + Hai Capture/ so sánh/ điều chế độ rộng xung + Các chuẩn giao tiếp nối tiếp SSP, SPI I2C + Chuẩn giao tiếp nối tiếp USART với bít địa + Cổng giao tiếp song song PSP với chân điềukhiển RD, WR, CS bên - Các kênh Analog: + kênh chuyển đổi ADC 10 bít.Hai so sánh - Bên cạnh vài đặc tính khác viđiềukhiển như: + Bộ nhớ flash với khả ghi xóa 100.000 lần + Bộ nhớ EEPROM với khả ghi xóa 1.000.000 lần + Dữ liệu nhớ EEPROM lưu trữ 40 năm + Khả tự nạp chương trình với điềukhiển phần mềm + Watchdog Timer với dao động + Chức bảo mật mã chương trình + Chế độ Sleep + Có thể hoạt động với nhiều dạng Oscillator khác 2) IC L293D điềukhiểnđộng Nguồn cấp Vs (chân 10) : max 36V , Vss - Nguồn cấp logic Vss ( chân 20 ) : max 36V, 4.5 V - Dòng làm việc bình thường 600 mA - Dòng đỉnh 1.2 A -L293D IC cầu H điềukhiểnđộng Gồm kênh điềukhiểnđiềukhiểnđộng DC động bước pha (5 dây) Để điềukhiểnđộng DC, bạn sử dụng kênh L293D cho động -L293D tích hợp sẵn ốt bảo vệ viđiềukhiển chống lại dòng cảm ứng động khởi động tắt Vì vậy, bạn cần gắn motor vào L293D chân viđiềukhiển tương ứng, làm cho động chạy Dòng L293 có loại: L293B/E L293D, dòng L293B có khả chịu tải cao (1A so với 600mA L293D) ốt bảo vệ viđiềukhiển -Với motor, bạn cần chân từ viđiềukhiển kết nối với L293D, có chân điềukhiểntốcđộđông dùng xung PWM, chân lại logic dùng điều chỉnh chiều quay motor -Tín hiệu điềukhiển xử lý độc lập với với đầu Ví dụ: bạn điềukhiểnđộng DC chạy với tốcđộ khác nhau, hướng khác nhau, động dừng động chạy -Mỗi kênh L293D chịu tải 600mA dòng đỉnh 1A -Để sử dụng động công suất cao hơn, bạn việc gắn song song nhiều L293 lại với Với IC L293, bạn có tải chịu 1.2A tải đỉnh 2A -L293D có chức tự động ngắt bị nóng mức nhằm bảo vệ IC 3) Động DC a) Nguyên lí hoạt động Giống loại động điện khác, động điện chiều gồm có stator rotor….Động điện chiều gồm có stator, rotor, cổ góp chổi điện - Stator: gọi phần cảm, gồm dây quấn kích thích quấn tập trung cực từ stator Các cực từ stator ghép cách điện từ thép kỹ thuật điện dập định hình sẵn có bề dày 0,5-1mm, gắn gông từ thép đúc, vỏ máy - Rotor: gọi phần ứng, gồm lõi thép phần ứng dây quấn phần ứng lõi thép phần ứng có hình trụ, ghép từ thép kỹ thuật điện ghép cách điện với Dây quấn phần ứng gồm nhiều phần tử, đặt vào rãnh lõi thép rotor Các phần tử dây quấn rotor nối tiếp thông qua góp cổ góp Lõi thép phần ứng cổ góp ñược cố định trục rotor Cổ góp chổi điện: làm nhiệm vụ đảo chiều dòng điện dây quấn phần ứng b) Phân loại động DC Dựa vào hình thức kích từ, người ta chia động điện chiều thành loại sau: Động điện chiều kích từ độc lập: Dòng điện kích từ lấy từ nguồn riêng biệt so với phần ứng Trường hợp đặc biệt, từ thông kích từ tạo nam châm vĩnh cữu, người ta gọi động điện chiều kích thích vĩnh cửu Động điện chiều kích từ song song: Dây quấn kích từ nối song song với mạch phần ứng Động điện chiều kích từ nối tiếp: Dây quấn kích từ mắc nối tiếp với mạch phần ứng Động điện chiều kích từ hỗn hợp: Dây quấn kích từ có hai cuộn, dây quấn kích từ song song dây quấn kích từ nối tiếp Trong đó, cuộn kích từ song song thường cuộn chủ đạo 4) ENCODER Để điềukhiển số vòng quay hay vận tốcđộng thiết phải đọc góc quay motor Một số phương pháp dùng để xác định góc quay motor bao gồm tachometer (thật tachometer đo vận tốc quay), dùng biến trở xoay, dùng encoder Trong phương pháp phương pháp analog dùng optiacal encoder (encoder quang) thuộc nhóm phương pháp digital - CẤU TẠO , NGUYÊN LÍ HOẠT ĐỘNG Hệ thống optical encoder bao gồm nguồn phát quang (thường hồng ngoại – infrared), cảm biến quang đĩa có chia rãnh Optical encoder lại chia thành loại: encoder tuyệt đối (absolute optical encoder) encoder tương đối (incremental optical encoder) Trong đa số DC Motor, incremental optical encoder dùng mô hình động servo không ngoại lệ Encoder thường có kênh bao gồm kênh A, kênh B Bên đĩa quay chia thành rãnh nhỏ cặp thu-phát dành cho rãnh Đây kênh A encoder, hoạt động kênh A sau : tia hồng ngoại từ nguồn phát xuyên qua rãnh encoder đến cảm biến quang ,1 tính hiệu xuất cảm biến,kênh A xuất xung.Như vòng quay motor, có N “xung” xuất kênh A N số rãnh đĩa gọi độ phân giải (resolution) encoder Mỗi loại encoder cóđộ phân giải khác nhau, có đĩa chĩ có vài rãnh có trường hợp đến hàng nghìn rãnh chia Để điềukhiểnđộng cơ, ta phải biết độ phân giải encoder dùng Độ phân giải ảnh hưởng đến độ xác điềukhiển phương pháp điềukhiển Trên encoder có cặp thu phát khác đặt đường tròn với kênh A lệch chút (lệch M+0,5 rãnh), kênh B encoder Tín hiệu xung từ kênh B có tần số với kênh A lệch pha 90o Bằng cách phối hợp kênh A B người đọc biết chiều quay động Hãy quan sát hình Hình thể trí cảm biến kênh A B lệch pha Khi cảm biến A bắt đầu bị che cảm biến B hoàn toàn nhận hồng ngoại xuyên qua, ngược lại Hình thấp dạng xung ngõ kênh Xét trường hợp motor quay chiều kim đồng hồ, tín hiệu “đi” từ trái sang phải Bạn quan sát lúc tín hiệu A chuyển từ mức cao xuống thấp (cạnh xuống) kênh B mức thấp Ngược lại, động quay ngược chiều kim đồng hồ, tín hiệu “đi” từ phải qua trái Lúc này, cạnh xuống kênh A kênh B mức cao Như vậy, cách phối hợp kênh A B xác định góc quay (thông qua số xung) mà biết chiều quay động (thông qua mức kênh B cạnh xuống kênh A) 5) LCD - LCD pinout - Sơ đồ nối chân LCD VSS: tương đương với GND - cực âm VDD: tương đương với VCC - cực dương (5V) Constrast Voltage (Vo): điềukhiểnđộ sáng hình Register Select (RS): điềukhiển địa ghi liệu Read/Write (RW): Bạn đọc (read mode) hay ghi (write mode) liệu? Nó phụ thuộc vào bạn gửi giá trị vào Enable pin: Cho phép ghi vào LCD D0 - D7: chân dư liệu, chân có giá trị HIGH LOW bạn chế độ đọc (read mode) nhận giá trị HIGH LOW chế độ ghi (write mode) Backlight (Backlight Anode (+) Backlight Cathode (-)): Tắt bật đèn hình LCD 6) Truyền thông RS232 a/ Cổng COM: - Giao tiếp PIC PC thông qua cổng nối tiếp hay gọi cổng COM theo chuẩn giao tiếp RS232 - Cổng COM có dạng: đầu nối DB25 ( 25 chân ) DB9 ( chân ) mô tả bảng sau: - Cổng nối tiếp sử dụng để truyền liệu hai chiều máy tính ngoại vi, có ưu điểm sau: + Khoảng cách truyền xa so với truyền song song + Số dây kết nối + Có thể truyền không dây dùng hồng ngoại + Có thể ghép nối với VĐK hay PLC + Cho phép nối mạng + Có thể tháo lắp thiết bị lúc máy tính làm việc + Có thể cung cấp nguồn cho mạch điện đơn giản - Các thiết bị ghép nối chia làm loại: + DCE: thiết bị trung gian MODEM + DTE: thiết bị tiếp nhận hay truyền liệu PC, PLC, VĐK + Việc trao đổi tín hiệu thông thường qua chân RDX (nhận) RTX (gửi) Tín hiệu truyền theo chuẩn RS232: + Chuẩn RS232 truyền tín hiệu với tốcđộ thông dụng là: 1200 bps, 4800 bps, 9600 bps, 19200 bps + Định dạng khung truyền chuẩn RS232: Khi không truyền liệu, đường truyền trạng thái mark ( điện áp -• 10V) Khi bắt đầu truyền, DTE đưa xung Start ( space :10V ) sau đó• truyền từ D0 -> D7 Parity, cuối xung Stop ( mark: - 10V ) để khôi phục lại trạng thái đường truyền.Ví dụ truyền ký tự A: Các đặc tính kỹ thuật chuẩn RS232: b/ IC MAX 232 IC MAX 232 IC chuyên dùng giao tiếp nối tiếp với PC Nó có đệm nhận.Đường dẫn điềukhiển lối vào CTS, điềukhiển việc xuất liệu cổng nối tiếp cần thiết, nối với chân 9.Chân RTS (chân 10) nối với đường dẫn bắt tay để điềukhiển với trình nhận.Thường đường dẫn bắt tay nối với cổng nối tiếp qua cầu nối, để không dùng đến Chế độ định thời: Mỗi timer có nhiều ghi chứa giá trị đếm (tùy thuộc vào độ dài timer), ta giả sử tên ghi TMR cóđộ dài n byte (n=1 với timer0, n=2 với timer1), hay giá trị đếm tối đa (Chuyển từ 2^8n-1 0) Khi giá trị TMR đạt đến giá trị này, viđiềukhiển set bit cờ timer lên mức Người dùng biết thời điểm cách kiểm tra bit cờ Khi cài đặt hoạt động chế độ định thời: - Giá trị ghi TMR tự động tăng lên đơn vị sau chu kì lệnh viđiều khiển: TMR=TMR+1 - Khi giá trị TMR đạt đến giá trị tối đa (Đối với timer0: từ 255 cộng thêm chuyển 0, timer1: từ 65535 cộng chuyển 0) , bit cờ Timer (Đối với Timer0, tên bit cờ TMR0IF, vị trí bit số ghi INTCON; Đối với Timer1, tên bit cờ TMR1IF, vị trí bit số ghi PIR1) set lên mức * Trong 25ms ta lại tính toán tốcđộđộng lần dựa vào số xung encoder đo Vậy cần dùng timer1 để định khoảng thời gian 25 ms Sử dụng tần số thạch anh 20MHz, dùng chia chu kì xung Tx= 1/20(us) chu kì lệnh = chu kì xung chu kì lệnh Tl = 4Tx*8 = 4*1/20*8 = 1.6 (us) Để có 25 ms = 25 000 us ta cần 25 000/1.6 = 15 635 (lần đếm) Cần set_timer1 giá trị 2^16 – 15 635 = 65 536 – 15 635 = 49 911 Khi tràn Timer1 (TMR1IF set lên mức 1) chương trình nhảy vào đoạn chương trình ngắt timer1 b) Bộ tạo xung PWM Nguyên lí hoạt động setup_timer_2 (mode, period, postscale) Ta có công thức tính chu kì xung PWM: f = fosc / [ 4*mode*(period+1) ] Tpwm = Tosc * * mode * (period + 1) Trong : mode: T2_DIV_BY_1, T2_DIV_BY_4, T2_DIV_BY_16 period: 0-255 postscale: Tosc = 1/fosc = 1/(20*10^6) Chọn fpwm = 10 kHz = 10^4 Hz => Tpwm = 10^-4 Tần số điều xung PWM: 10^-4 = (period + 1)* * 1/(20*10^6) * mode 500 = (period + 1) * mode Chọn cặp period = 124 Mode = setup_timer_2(T2_DIV_BY_4, 124, 1); Ta có công thức tính duty (duty cycle) là: duty = giatriphantram * (4 * (period +1) ) duty = giatriphantram * * (124+1) duty = giatri/100 * 500 duty = giatri * lưu ý : giatriphantram (%), giatri số thực c) Giới thiệu ngắt Ngắt hiểu theo nghĩa đơn giản kiện ngẫu nhiên làm gián đoạn trình xảy Ngắt thực cho phép Cụ thể hoạt độngviđiềukhiểncó kiện ngắt xảy ngắt cho phép: - Thực nốt lệnh thực - Dừng chương trình thực - Lưu lại địa lệnh chương trình thực vào nhớ stack - Nhảy tới địa 0x04 nhớ chương trình - Tại đây,vi điềukhiển thực chương trình phục vụ ngắt người lập trình lập trình từ trước - Sau thực xong chương trình phục vụ ngắt, viđiềukhiển lấy lại địa lệnh lưu thực tiếp chương trình thực dở lúc chưa có ngắt Tới ta tổng hợp lại thuật ngữ dùng cho xử lý ngắt viđiều khiển: - Nguồn ngắt: nguồn ngắt nguyên nhân gây ngắt Như ví dụ trên, nguồn ngắt điện thoại gọi bạn gọi - Sự kiện ngắt: nguồn ngắt xảy - Chương trình phục vụ ngắt: chương trình viđiềukhiển xử lý có kiện ngắt xảy người lập trình lập trình Ví dụ ta trả lời chạy khỏi phòng gặp bạn - Vecto ngắt: tức địa 0x04 nơi viđiềukhiển chạy tới sau lưu địa trả - Bit cho phép ngắt: tức việc cho phép viđiềukhiển chạy chương trình phục vụ ngắt có kiện ngắt xảy Trong viđiềukhiển PIC, ngắt có bit cho phép Bit tận chữ E (enable), nằm ghi chuyên dụng Muốn cho phép ngắt đó, ta phải đưa bit cho phép ngắt tương ứng lên giá trị Ngắt thực cho phép ngắt ta cho bit cho phép ngắt toàn cục GIE (Global Interrupt Enable) lên mức Ta hình dùng sau: có kiện ngắt- điện thoại gọi, ta cho phép nghe điên thoại (tức bit cho phép ngắt ngắt set lên 1) đồng thời thầy giáo cho phép (bit cho phép ngắt toàn cục GIE lên mức 1) ta nghe điện thoại (cho chương trình phục vụ ngắt hoạt động) - Một số ngắt khác, ngắt ngoại vibao gồm ADC, PWM v.v Muốn cho phép phải đưa bit cho phép ngắt ngoại vi lên mức Cờ ngắt: bit phản ánh trạng thái kiện ngắt Mỗi ngắt có bit cờ Khi bit cờ nghĩa kiện ngắt tương ứng với cờ xảy Ta hình dung tiếng chuông điện thoại cờ ngắt, chuông rung báocó kiện ngắt- có điện thoại xảy Các bit tận từ F (Flag- cờ) Lưu ý dù ngắt có cho phép hay không cờ ngắt set lên có kiện ngắt xảy (Dù ta có phép nghe điện thoại hay không chuông điện thoại reo) Các ngắt viđiềukhiển PIC16F877A: Viđiềukhiển PIC16F877A có 15 nguồn ngắt Được chia làm lớp ngắt: - Lớp ngắt bản: bao gồm ngắt ngắt tràn timer 0, ngắt ngoài, ngắt thay đổi trạng thái chân PortB (RB4-RB7) Bit cho phép ngắt bit cờ tương ứng TMR0IE,TMR0IF; INTE, INTF; RBIE RBIF Để ý phép ngắt thực xảy phải có bit cho phép ngắt toàn cục GIE - Lớp ngắt ngoại vi: bao gồm ngắt ngoại vi ngắt tràn timer (TMR1IE, TMR1IF), ngắt tràn Time2(TMR2IE, TMR2IF), ngắt hoàn thành việc chuyển đổi ADC (ADCIE, ADCIF), ngắt hoàn thành việc nhận kí tự truyền thông RS232 (RCIE, RCIF), ngắt hoàn thành việc truyền kí tự truyền thông RS232 (TXIE, TXIF) v.v Để ý muốn thực cho phép ngắt bit cho phép ngắt toàn cục set phải set bỉt cho phép ngắt ngoại vi PEIE Trong ta sử dụng ngắt để đếm xung encoder Hoạt động ngắt Nguồn ngắt: xung vào chân RB0 viđiềukhiểnPIC Sự kiện ngắt: kiện ngắt xảy có xung vào chân RB0 viđiềukhiển Xung xung sườn dương hay sườn âm phụ thuộc bit cài đặt chọn dạng xung, bit INTEDG ( bit ghi OPTION_REG) hay Bit cho phép ngắt: Để cho phép ngắt ngoài, bit cho phép ngắt INTIE (bit ghi INTCON) phải set lên Ngoài ra, bit cho phép ngắt toàn cục GIE (bit ghi INTCON) phải set lên Cờ ngắt: bit cờ ngắt bit INTIF (bit ghi INTCON) tự động set lên có kiện ngắt xảy Cờ phải xóa chương trình (cụ thể chương trình phục vụ ngắt) để viđiềukhiển quản lý xác lần ngắt code CCS /////////////////////////////////////////////////////////////////////////////////////// #include #device ADC=16 #FUSES NOWDT //No Watch Dog Timer #FUSES NOBROWNOUT //No brownout reset #FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O #use delay(crystal=20000000) #use RS232 (Baud = 9600, parity = n ,xmit = pin_C6, rcv = pin_C7) #include //khai bao ket noi cac nut nhan #define TANG input(PIN_B1) #define GIAM input(PIN_B2) //khai bao ket noi chan voi L293D #define EN1 PIN_C3 unsigned int16 counter = 0; unsigned int16 SoXungDangDem = 0; unsigned int16 SoXungDoDuoc = 0; void _KhoiTaoTIMER1(void); void _KhoiTaoNgatNgoai(void); void _KhoiTaoTIMER1(void) { setup_timer_1(T1_internal|T1_DIV_BY_8); set_timer1(49911); enable_interrupts(int_timer1); //cho phep ngat timer1 } // -void _KhoiTaoNgatNgoai(void) { enable_interrupts(int_ext); //Cho phep ngat ngoai hoat dong enable_interrupts(int_ext_H2L); //Khi tin hieu chuyen tu cao xuong thap clear_interrupt(int_ext); } #int_timer1 void _NgatTIMER1(void) { disable_interrupts(int_ext); //Tat timer setup_timer_1(T1_disabled); //Stop dem timer SoXungDoDuoc = SoXungDangDem; SoXungDangDem = 0; set_timer1(49911); //thoi gian lay mau = 25 ms //25ms=25000us = (65536 - value)*1.6us =>value = 49911 setup_timer_1(T1_INTERNAL|T1_DIV_BY_8); //Cho phep ngat timer hoat dong lai enable_interrupts(int_ext); //cho phep ngat ngoai hoat dong lai Counter++; } // -#int_ext void _NgatNgoai(void) { SoXungDangDem = SoXungDangDem + 1; } // void main() { int16 Duty=250; int16 GiaTri=50; //50% int16 TocDo; float Tam; _KhoiTaoTIMER1(); _KhoiTaoNgatNgoai(); enable_interrupts(GLOBAL); //Cho phep ngat toan cuc - la tien de cho cac ngat hoat dong lcd_init(); lcd_putc('\f'); setup_timer_2(T2_DIV_BY_4,124,1);// fpwm = 10KHz setup_ccp1(CCP_PWM); set_pwm1_duty(0); output_bit(EN1,0); output_bit(EN1,1); set_pwm1_duty(Duty); while(TRUE) { lcd_gotoxy(1,1); printf(lcd_putc,"VALUE DUTY:%02ld",GiaTri); lcd_putc('%'); if(TANG==0) { while(TANG==0); GiaTri=GiaTri+5; if(GiaTri>90) { GiaTri=30; } Duty =GiaTri * 5; output_bit(EN1,1); set_pwm1_duty(Duty); } else if(GIAM==0) { while(GIAM==0); GiaTri=GiaTri-5; if(GiaTri=10) { Counter = 0; //Tocdo= (so xung moi phut)/So xung encoder //25 ms SoXungDoDuoc => so Xung moi phut = (SoXungDoDuoc / 0.025) * 60s Tam = ((float)SoXungDoDuoc * (1000f/25f) *60f)/334f; TocDo = (int16)Tam; lcd_gotoxy(1,2); printf(lcd_putc, "TOC DO:%04ld",TocDo); printf("%4ld\r",TocDo); delay_ms(50); } } } 2) Mô proteus 3) Mạch in 4) Kết nối với máy tính Giao diện viết phần mềm c# để vẽ hiển thị tốcđộđộng Code C# using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO.Ports; namespace Giaodien { public partial class frmMain : Form { #region Quan ly bien SerialPort UART = new SerialPort(); #endregion #region Quan ly ham private void _KhoiDong() { try { cbxCom.DataSource = SerialPort.GetPortNames(); if (cbxCom.Items.Count > 0) { cbxCom.SelectedIndex = 0; } } catch (Exception) { } } #endregion #region Quan ly form public frmMain() { InitializeComponent(); } private void frmMain_Load(object sender, EventArgs e) { try { Control.CheckForIllegalCrossThreadCalls = false; _KhoiDong(); this.UART.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(this.UART_DataReceived); chart1.ChartAreas[0].AxisX.Minimum = 0; chart1.ChartAreas[0].AxisX.Interval = 1; chart1.ChartAreas[0].AxisX.Maximum = 10; chart1.ChartAreas[0].AxisY.Maximum = 4000; // btnConnect_Click(null, null); } catch (Exception) { } } private void frmMain_Shown(object sender, EventArgs e) { } private void frmMain_FormClosing(object sender, FormClosingEventArgs e) { try { UART.Close(); } catch (Exception) { } } private void frmMain_KeyDown(object sender, KeyEventArgs e) { switch (e.KeyCode) { case Keys.Escape: { System.Diagnostics.Process.GetCurrentProcess().Kill(); //Close(); break; } } } #endregion private void btnConnect_Click(object sender, EventArgs e) { try { if (cbxCom.Text.Trim().Length == 0) { MessageBox.Show("Vui Lòng chọn cổng COM!"); return; } if (btnConnect.Text == "Connect") { btnConnect.Text = "Disconnect"; UART.PortName = cbxCom.Text; UART.Open(); } else { btnConnect.Text = "Connect"; UART.Close(); } } catch(Exception) { } } string Tam = ""; int Index = 0; int[] Data = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; private void UART_DataReceived (object sender, SerialDataReceivedEventArgs e) { try { Tam = UART.ReadTo("\r"); //Nhan du lieu tu VDK gui len Data[0] = Convert.ToInt32(Tam); lbTocdo.Text = "Tốc Độ: " +Data[0].ToString(); if (Index = 1; i ) { Data[i] = Data[i - 1]; } BeginInvoke(new Action(() => { chart1.Series["Series1"].Points.DataBindY(Data); chart1.Series["Series1"].Points.ResumeUpdates(); chart1.Series["Series1"].LegendText = "Tốc Độ: " + Data[0].ToString(); })); } catch (Exception) { } } private void groupBox1_Enter(object sender, EventArgs e) { } } } ... làm vi c bình thường 600 mA - Dòng đỉnh 1.2 A -L293D IC cầu H điều khiển động Gồm kênh điều khiển điều khiển động DC động bước pha (5 dây) Để điều khiển động DC, bạn sử dụng kênh L293D cho động. .. đếm số vòng quay động (phản hồi từ đo tốc độ động cơ- encoder), đếm số sản phẩm dây chuyền v.v Vi điều khiển PIC1 6F877A có Timer: - Timer0: bit (số đếm tối đa 255), hoạt động chế độ định thời đếm... khiển xử lý độc lập với với đầu Ví dụ: bạn điều khiển động DC chạy với tốc độ khác nhau, hướng khác nhau, động dừng động chạy -Mỗi kênh L293D chịu tải 600mA dòng đỉnh 1A -Để sử dụng động công