Chương trình nghiên cứu robocon

Chia sẻ: Nguyễn Trần Cường | Ngày: | Loại File: DOC | Số trang:23

0
258
lượt xem
177
download

Chương trình nghiên cứu robocon

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Trong những năm gần đây phong trào robocon và các môn cơ điện tử ngày càng phát triển nhưng các tài liệu và công nghệ rất khan hiếm chính vì vậy nhóm robocon CĐTK9 xây dựng chương trình nghiên cứu này với mục tiêu : +) Hỗ chợ cho các sinh viên nghiên cứu chế tạo robot và thực hiện các đồ án môn học cơ điện tử. +) Xây dựng lực lượng chế tạo robot cho năm 2010 và các năm tiếp theo. +) Trao đổi thông tin tạo nên một diễn đàn mở về các thiết bị cơ điện tử và đồ án cơ điện...

Chủ đề:
Lưu

Nội dung Text: Chương trình nghiên cứu robocon

  1. CHƯƠNG TRINH NGHIÊN CỨU ROBOCON Giới thiệu: Trong những năm gần đây phong trào robocon và các môn cơ điện tử ngày càng phát triển nhưng các tài liệu và công nghệ rất khan hiếm chính vì vậy nhóm robocon CĐT- K9 xây dựng chương trình nghiên cứu này với mục tiêu : +) Hỗ chợ cho các sinh viên nghiên cứu chế tạo robot và thực hiện các đồ án môn học cơ điện tử. +) Xây dựng lực lượng chế tạo robot cho năm 2010 và các năm tiếp theo. +) Trao đổi thông tin tạo nên một diễn đàn mở về các thiết bị cơ điện tử và đồ án cơ điện tử. Các vấn đề thắc mắc và góp ý liên hệ : Phạm Văn Lượng Lớp: Cao Đẳng Cơ Điện Tử - Khóa 9 Số điện toại: 0975662019
  2. Mục lục : Chương I_ Mạch điện tử. 1. Mạch nguồn 2. Cảm biến quang 3. Mạch so sánh 4. Mạch vi điều khiển 5. Mạch động lực Chương II_ Sử dụng công cụ lập trình CodeVisionAVR & MPLap và mạch nap. 1. CodevisonAVR Giới thiệu về CodevisonAVR Tạo 1 project mới Lập trình I/O Lập trình timer Lập trình ngắt ngoài INT Lập trình PWM 2. MPlLap Chương III_Lập trình trên ROBOT 1. Chương trình chạy 1 đoạn đường bất kỳ dựa vào encoder 2. Chương trình do đường Thuật toán dò đường Dò đường bắt ngã tư Dò đường 1 đoạn đường bất kỳ dựa vào encoder
  3. Chương I_ Mạch điện tử. 1. Mạch nguồn - Nguồn chúng ta dùng bình DC nên tương đối ổn đinh chún ta chỉ nghiên cứu mạch nguồn đấp ứng đủ cường và điện áp chuẩn cho vi điều khiển hoạt đông. - Mạch nguyên lý. B688 LM7805 PNP1 IC4 L1 R12 1 3 GND 2 IN OUT VCC 1 D2 47 Cuon cam R13 HD13 270 2 C2 C4 C3 C5 2200uF/16V 104 2200uF/16V 104 LD1 GND - Nguyên lý hoạt động • HD13 để cấp nguồn 12V cho mạch • D2 chống cấp ngược nguồn • Các tụ C2,C3,C4,C5 có nhiệm vụ chống nhiễu cho nguồn • Cuộn dây L1 có nhiệm vụ chống nhiễu • R12 là trở gánh • LD1 là led báo có nguồn có 1 trở bảo vệ R13 • IC LM7805 là IC ổn định đầu vào 12V đầu ra 5V. • PNP1 là B688 tranzito mắc theo kiểu B chung này kéo cường cho toàn bộ mạch Chú ý: đây là mạch bắt buộc đi kèm với mạch vi điêu khiển nên chỉ nghiên cứu công dụng “dù hiểu hay không hiểu cũng phải vẽ vào mạch”. 2. Cảm biến quang - Đây là mạch điện cơ bản để nhận biết mầu sắc và ánh sang đơn giản. - Mạch này thường được đùng để làm sensor( mắt nhìn) trong công nghệ dò đường cho các robot. - Đưới đây là mạch điện nghuyên lý.
  4. VCC VCC LDR1 R9 1K LDED0 R1 10K LD1 GND GND H.1 - Nguyên lý hoạt động. • Cảm biến quang chúng ta dùng trong mạch này là quang trở. Quang trở là loại điện trở mà nội trở của chúng thay đổi theo ánh sáng. • Dựa vào đặc điểm của quang trở chúng ta thiết kế như hình vẽ H.1 với : LDR1 là quang trở R1 là trở bảo vệ • Ánh sánh tác động vào quang trở LDR1 khác nhau thì điện thế VLDED0 cũng khác nhau. Khi ánh sáng tác dụng vào LDR1 mạnh thì VLDED0 tăng ngược lại khi ánh sáng tác dụng vào LDR1 yếu( tối ) VLDED0 giảm. Đây là đại lượng căn cứ để ta nhận biết được sự khác biệt giữa 2 màu đơn giản như mặt sân với vạch trắng , màu xanh với màu đỏ…..( giới thiệu ở phần 3) • Ngoài ra chúng ta còn có 1 mạch hỗ chợ ánh sáng gồm LD1(siêu sáng) , R9 nhằm giảm sự tác động của anh sáng bên ngoài tăng độ chính xác cho sensor. 3. Mạch so sánh - Khi đã có giá trị điện áp biến đổi theo ánh sang( màu sắc) và chúng ta muốn phân biệt được đâu là mầu sắc chúng ta cần dùng thi ta cần phải có mạch so sánh các giá trị điên áp đó. - Mạch so sánh chúng ta nghiên cứu ở đây là mạch dùng IC thuật toán thiết kế để so sánh gia trị điện áp. - Mạch nguyên lý VR2 GND VCC 1 3 100K 1 A1 LDED1 2 IC1A H.2 - Nguyên lý hoạt động • Giới thiệu qua về mạch
  5. o VR2: là biến trở ( vi chỉnh) có thể thay đổi giá trị o Khối thuật toán IC1A : nằm trong con IC LM354,LM324…. • Mạch thuật toán thiết kế nhằm mục đính so sánh hoạt động như sau. Nếu điện áp V(-) > V(+) thì đâu ra A1=0( mức thấp) ngược lại nếu V(-)
  6. 2 K1 K2 2 1 M4A M4B 1 3 3 +24V +24V Dong co DC L1 L2 5 4 4 5 12VDL 12VDL D3 UROLE1 UROLE2 D4 H5.1 o Nguyên lý hoạt động o 2 đầu dây 4,5 là 2 đầu điều khiển cuộn dây từ nó được mắc kèm với diôt D3,D4 ( điôt hoàn năng lượng) , đầu dây 4 được mắc với +12V đầu dây 5 là đầu điểu khiển cuộn dây L1,L2 của rơle . Trong mạch ta có 2 dây điều khiển là UROLE1, UROLE2. o Có tổ hợp khóa 2 tiếp điểm k1 và k2 o Trường hợp 1: UROLE1 +12V , UROLE2 = +12V  Khi dây điều khiển UROLE1, UROLE2 đều có điện điều khiển +12V sẽ không có hiện tượng gì sảy ra các tiếp điểm thường đóng là (1-2) vấn được đóng, tiếp điểm thường mở (1-3) vẫn mở.  Động cơ không quay vì điện được cấp vào động cơ là 0V o Trường hợp 2: UROLE1 = 0V, UROLE2= +12V  Cuộn L1 được cấp điện L2 không được cấp điện, L1 sẽ hút tiếp điểm (1-2) mở ra đóng tiêp điểm (1-3) của khóa K1, K2 vẫn giữ trạng thái (1-2) đóng (1-3) mở.  Trong lúc này động cơ được cấp điện M4A = +24V M4B = 0V động cơ sẽ quay ( giả sử là quay thuận chiều kim đông hồ “ quy định để vì tý nữa nó quay ngược thì coi là ngược chiều kim đồng hồ ấy mà”) o Trường hợp 3: UROLE1 = +12V, UROLE2= +0V  Cộn L1 không được cấp điên L2 được cấp điện , khóa K1 có tiếp điểm (1-2) đóng (1-3) mở khóa K2 (1-2) mở (1-3) đóng.  Trong lúc này động cơ điện được cấp nguồng M4A = 0V, M4B = +24V, Động cơ quay ngược lại so với trường hợp trên(ngược chiều kim dồng hồ)
  7. o Trường hợp 4: UROLE1 = 0V, UROLE2= +0V  L1 và L2 đều hút các khóa K1, K2 chuyển (1-2) mở (1-3) đóng  Trong trường hợp này thì điện cấp vào động cơ ở 2 đầu M4A = M4B = +24V không tao ra trênh lệch điệp áp vì M4A – M4B =0V => động cơ không q uay. o Chú ý không cháy nhà: rơle chúng ta sử dụng là loại 5 chân không phải loại 8 chân khác nhau đấy nha. • Các khối mạch cơ bản trong mạch động lực dùng rơle và IRF • Mạch IRF o Mạch được thiết kế để khoách đại cho IRF chạy theo tín hiệu điều khiển của vi điều khiên đưa sang . Đừng ai dại mắc trực tiếp IRF vì cường độ dòng điện của vi điều khiển rất yếu không mỏ được cho IRF. o Mạch nguyên lý. 12VDL 2 1 Q1 C828 2 UPWM1 R29 1 Q3 3 22 / 1W IRF840 C1 3 1 Q5 DZ1 3 15V A564 CAP NP 2 H5.2 o Nguyên lý hoạt động. o Như đã giới thiệu ở trên đây là mạch khuếch đại để mở cho IRF chạy theo tín hiệu PWM của vi điều khiên cấp sang nên chúng ta sẽ xét 2 trường hợp là 0 và 1 của PWM o Trường hợp 1 PWM có tín hiệu là 0  Tín hiệu là 0 tức là 0V Q1 không thông Q2 thông nó sẽ làm cho IRF đóng (chân số 2 của IRF không thông với chân số 3 của IRF) o Trường hợp 2 PWM có tín hiệu là 1  Lúc này Q1 thông Q2 không thông làm cho IRF thông ( chân 2 và c3 của IRF thông) o Con trở R29 và C1 là sơ đồ ghép tầng nối mảng khoách đại và IRF
  8. o DZ1 là con diôtzener nhiệm vụ luốt xung ( ai không hiểu con này về nhà đọc lại chức năng của nó trong sách điện tử cơ bản còn cố tình không hiểu cũng không sao nhưng khi thiết kế mạch đừng có vất nó đi là được) o PWM có ý nghĩa cự kỳ quan trọng o Dưới đây chúng ta nghiên cứu về nó cách nó điều khiển động cơ thế nào o Dưới dây là giản đồ xung. a. PWM 50/50 b. PWM 25/75 c. PWM 75/25 H5.2.1 o Trước hết nhắc tới xung PWM thì chúng ta biết ngay đây là loại xung thì phải thay đổi được tần số ( như con IC 555 trong kỹ thuật số chúng ta đã được học) nhưng dùng tần số để điều khiển động cơ DC thì sẽ làm cho động cơ hoạt động không như chúng ta mong muốn. Vì muốn tăng giảm tốc độ thì chúng ta phải thay đổi tần số mà tần số càng thấp ( chu kỳ T càng cao) sẽ gây ra hiện tượng giật cục như kiểu chúng ta bật tắt nguồn của 1 cái quạt liên tục vậy như vậy động cơ sẽ mất lực và làm nóng động cơ. Đối với các loại động cơ DC chỉ hoạt động tốt trong dải tần mà nhà sản xuất quy định. Thường thì các loại động cơ mà tôi thường dùng thì tôi để tần số vào khoảng 2kHz là ổn. Vậy làm sao để động cơ hoạt động ở 1 tần số mà vẫn điều chỉnh được tốc độ động cơ như các hình ở trên chúng ta sẽ điều chỉnh độ rộng xung trong mỗi chu kỳ thay vì chúng ta chỉnh tần sô. o Vậy PWM là loại xung mà ta vừa có thế điều chỉnh tần số phù hợp với từng động cơ và có thể chỉnh được độ rộng xung để điều khiển tốc độ. o Trong các mạch của chúng ta thì thường để xung ở mưc 1 là cho mạch chay còn mưc 0 là ngừng hoạt động. Vật để động cơ quay nhanh thì ta cho đọ rộng xung của mức 1 tăng như hình H5.2.1 c và nhanh nhất là 100% độ rộng xung ở mưc 1 , ngược lại muốn
  9. chạy chậm thì chúng ta cho độ rộng ở múc 1 giảm đi như hinh H5.2.1b muốn không cho động cơ chạy nữa thì ta điều chỉnh cho 0% độ rộng xung ở mức 1. o Chu ý: đây là mạch thiết kế để nhận xung ở mức 1 nhưng cũng có mạch nhận xung ở mưc 0. Đối với mức 0 thì các bạn tự nghiên cứu. o Nói chung ta dùng xung PWM để điều khiển động cơ như kiểu bật tắt 1 cái quạt 1 cach liên tục nhưng thay vì điều chỉnh tần số để thay đổi tốc độ thì chúng ta thay đổi độ rộng xung động tác này tương tự như chúng ta để thời gian bật điện cho quạt nâu hơn thời gian tắt nó đi( hoặc ngược lại tăt nâu hơn bât) nhưng cộng cả 2 thời gian đó lại cũng chỉ bẳng thời gian chúng ta cả tắt cả bật quạt theo kiểu 50/50 theo kiêu tăng giảm tần số thế là động cơ không giật cục không mất lực lại còn mát rượi. • Mạch đảo chiều quay và quản lý tốc độ dùng PWM DK 12VDL LS3 12V RELAY D29 8 2 1 DC3_DC3 1 Q1 5 C828 6 1 2 24V 7 2 R29 Q3 3 UPWM1 1 4 104 C10 22 / 1W IRF840 3 3 C1 D28 2 CON2 Q5 DZ1 3 1 15V A564 CAP NP 2 H5.3 o Mạch này chúng ta dùng 1 mạch IRF và 1 mạch dảo chiều dùng rơle 8 chân khác với mạch dùng 2 rơle 5 chân như ở trên. o Đối với mạch khiển đảo chiều dùng rơle nguyên lý hoạt động như sau: o Là rơle có 8 chân trông đó có 2 chân điều khiển cuộn hút 1-8 và 2 khóa 5-6-7 và khóa 2-3-4 o Nếu không có điện cấp cho cuông hút thì các chân thường đóng 2-3 và 6-7 sẽ cấp điện cho động cơ theo mạch ở đây thì tiếp điểm 6-7 sẽ cấp nguồn cho động cơ là +24V và tiếp điểm 2-3 sẽ cấp xung PWM cho động cơ. o Ví dụ ta chưa sét tới chân PWM từ chân số 2 của IRF đưa sang ta coi chân này chỉ là chân cấp điện âm 0V thì mạch sẽ cấp điện cho động cơ quay
  10. thuận, chú ý là chân ra của rơle thì chân số 6 có điện +24V còn chân số 3 sẽ là 0V. o Bây giờ chúng ta cấp điện cho cuộng hút của rơle hoạt động thì các tiếp điểm (7-6),(2-3) sẽ mở và (5-6),(3-4) sẽ đóng điện cấp vào động cơ sẽ đảo chiều chân số 6 sẽ là 0V và chân số 3 sẽ là +24V . Vì bị đảo chiều dòng điện nên đông cơ sẽ quay ngược lại so với trường hợp bên trên o Chú ý: nếu sét mạch điện sử dụng rơle 8 chân hư trên khi điều khiển thì chúng ta chỉ có thê điều khiển cho động cơ quay ngược và xuôi mà thôi không thể dừng động cơ như mạch H5.1. Nhưng chúng ta còn có mạch IRF đi kèm thì mạch lại có ưu điêm hơn hẳn so với mạch H5.1 vì không những chúng ta có thể dừng được động cơ mà chúng ta còn có thể điều khiên được tốc độ động cơ. Vì vi điều khiển có thể khóa IRF không cho chân (2-3của) thông nhau nữa( hoạt động của mạch IRF đã trình bày ở trên). Chương II_ Sử dụng công cụ lập trình CodeVisionAVR & MPLap và mạch nap. 1. CodevisonAVR 1.1Giới thiệu về CodevisonAVR - Đây là phần mềm lập trình cho họ vi điều khiển Atmega hay còn gọi là AVR sử dụng ngôn ngữ là C. - CodevisonAVR rất mạnh chúng hỗ chợ đến tận răng những người mới học đầy đủ các tinh năng rất dễ sử dụng. - Trong chương trình chúng ta chỉ nghiên cứu đến các phần cơ bản để có thế lập trình robot còn các phần khác các bạn tự nghiên cứu. - Dễ sử dụng đơn giản nhưng nó rất hiệu quả đối với nhưng người mới bắt đầu lắm bắt nhâp môn vào ROBOCON. 1.2 Tạo 1 project mới - Sau khi khởi động chư trinh CodevisonAVR ta vào Tools -> CodeWinzadAVR hoạc chúng ta có thể chỉ thẳng vào biểu tượn cái bánh răng trên thanh công cụ theo hướng mũi tên.
  11. - Sẽ có 1 của sổ như sau hiên ra • Trước hết chúng ta phải chọn tên chip ở ô Chip chỉ vào ô tam giác và chọn chip cần dung. • Clock: là ô để chúng ta chọn tần số cho thạch anh ( tần số thạch anh phải chọn theo mạch vẽ) • Các Tap còn lại là các chức năng khác nhau mà chương trinh hỗ chợ đối với các chip khác nhau thì các hỗ chợ này cũng khác nhau. Tùy thuộc vào các tính năng chúng ta có thể chọn các chức năng tùy ý.
  12. • Nếu chọn song các chức năng cần dùng chúng ta sẽ tạo ra 1 project như sau chọn File -> Generate, Save and Exit • 1 của sổ thông báo giúp chung ta chọn địa chỉ đặt chương trinh Chọn địa chỉ cất file ở ô save in , đáng tên file vào File name cuối cùng chọn nút Save , nó sẽ hiện ra 1 cửa số mới như sau.
  13. Ta cũng chọn như trên đáng tên và cũng ấn nút Save lại tiếp tục có 1 của sổ mơi hiện ra Chọn như trên và cũng ấn save chúng ta sẽ được 1 của sổ như sau ( chú ý các địa chỉ đặt File tron 3 lần hỏi của máy phải đặt cùng 1 thư mục)
  14. 1.3Lập trình I/O ( input ,out) - I/O là lập trình các Pin của vi điều khiển nhận hoặc xuất tín hiệu. Chúng ta sử dụng vi điều khiển atmega218 là loại có tới 6 PORT (ABCDEF) có 8PIN (8 chân) và 1 PORT có 5PIN (5chân). Tất cả các Pin này đều là chân I/O và ngoài nhiệm vụ I/O thì các Pin này còn có các chức năng khác tùy thuộc vào cách khai báo phần cứng vi điều khiên. I/ O là kiến thức cơ bản nhất mà các vi điều khiển đều có. Nếu muốn 1 chân nào đó là nhận tín hiêu hoặc xuất tín hiệu thì trước hết chúng ta cũng phải khai báo phần cứng của vi điều khiển để định nghĩa cho từng chân. Thanh ghi định nghĩa nhiệm vụ xuất nhận là DDRx ( x là: A,B,C,D,E,F) Tóm tắt : Lập trình điều khiển led bật tắt ,sử dụng cách định nghĩa PIN và PORT ,cách dùng thư viện delay.h của codevision.
  15. Giới thiệu: Cấu trúc chân của AVR có thể phân biệt rõ chức năng (vào ra) trạng thái (0 1) từ đó ta có 4 kiểu vào ra cho một chân của avr.Khác với 89 là chỉ có 2 trạng thái duy nhất (0 1) . Đặc biệt nguồn từ chân của AVR đủ khoẻ để điều khiển Led trực tiếp (mA) còn 89 chỉ là vài uA . Để điều khiển các chân này chúng ta có 2 thanh ghi ->PORTx :giá trị tại từng chân (0 – 1) có thể truy cập tới từng bit PORTx.n ->DDRx : thanh ghi chỉ trạng thái của từng chân , vào hoặc là ra .Giá trị 1 là ra và 0 là vào .
  16. Ví dụ 1 : Nhấp nháy lần lượt đèn xanh và đèn đỏ , khi ấn nút bấm chỉ có đèn đỏ sáng. Phần cứng : đèn xanh PORTB.4 , đèn đỏ PORTB.5 , nút bấm PINB.7 Chú ý : định nghĩa 1 chân là chân vào PIN x.x #define nut_bam PINB.7 định nghĩa 1 chân là chân vào PORT x.x #define den_do PORTB.5 Trong bài này PORT B có 2 biến đầu ra là PB5 và PB6 DDRB=0b00110000 =0x30 Khởi tạo chân PB7 cần được treo lên 5V , khi ấn nút bấm sẽ thông GND(0V) nên ta có PORTB=0b10000000=0x80; Sau khi định nghĩa , nếu bạn den_do=1; đèn led đỏ sẽ tắt den_do=0; đèn sẽ sáng . ( do cách thiết kế mạch đầu dương led nối 5V còn đầu âm nối vào VĐK) delay.h có 2 cách gọi là trễ theo ms và us delay_ms(time); delay_us(time); c code 1. 2. /***************************************************** 3. This program was produced by the 4. CodeWizardAVR V1.24.8d Professional 5. Automatic Program Generator 6. © Copyright 1998-2006 Pavel Haiduc, HP InfoTech s.r.l. 7. http://www.hpinfotech.com 8. 9. Project : 10. Version : 11. Date : 12/27/2007
  17. 12. Author : Pham van Luong 13. Company : CDT-K9 14. Comments: 15. 16. 17. Chip type : ATmega16 18. Program type : Application 19. Clock frequency : 8.000000 MHz 20. Memory model : Small 21. External SRAM size : 0 22. Data Stack size : 256 23. *****************************************************/ 24. 25. #include 26. #include 27. 28. // Declare your global variables here 29. 30. #define den_xanh PORTB.5 31. #define den_do PORTB.6 32. #define nut_bam PINB.7 33. 34. void main(void) 35. { 36. 37. // Port B initialization 38. // Func7=In Func6=Out Func5=Out Func4=In Func3=In Func2=In Func1=In Func0=In 39. // State7=T State6=0 State5=0 State4=T State3=T State2=T State1=T State0=T 40. PORTB=0x80; 41. DDRB=0x30; 42. 43. 44. 45. while (1) 46. { 47. // Place your code here 48. //khi nut bam chua duoc bam logic nut_bam=1 49. if(nut_bam) 50. { 51. den_xanh=1;den_do=0; 52. delay_ms(500); 53. den_xanh=0;den_do=1; 54. delay_ms(500); 55. } 56. //khi nut bam duoc an nut_bam=0 chi den do sang 57. else 58. {den_xanh=1;den_do=0;} 59. }; 60. } 61. 62. 63.
  18. 1.4Lập trình timer Đặc tính: - Bao gồm các bộ timer 8bit 16 bit, thường có từ 3 – 4 bộ Timer - Có các kênh PWM (từ 4 đến 8 kênh tuỳ loại ) - Bao gồm nhiều chế độ ngắt và PWM … - Có thể là một kênh đếm riêng biệt - Tự động xoá Timer trong chế độ so sánh(tự động nạp lại) - Có chế độ PWM - Tạo ra tần số - Đếm các dự kiện ngắt ngoài - Tạo ra các ngắt tràn và ngắt so sánh .... Introduction Các chế độ hoạt động của timer: Chế Độ Thông Thường: Đây là chế độ hoạt động đơn giản nhất của Timer .Bộ đếm sẽ liên tục đếm tăng lên cho đến khi vượt quá giá trị lớn nhất TOP và sau đó sẽ được khởi động lại tại giá trị Bottom.Trong các hoạt động thông thường thì cờ tràn sẽ được thiết lập khi giá trị trong Timer đạt giá trị không và không bị xoá đi.Tuy nhiên nếu mà ngắt tràn được chấp nhận thì cờ ngắt sẽ tự động bị xoá khi ngắt được thực hiện.Giá trị trong Timer có thể được viết vào bất cứ lúc nào Chế Độ So Sánh (CTC): Đấy là chế độ mà giá trị trong Timer luôn được so sánh với giá trị trong thanh ghi ORC .Khi giá trị trong Timer bằng giá trị trong thanh ghi ORC thì giá trị trong Timer sẽ bị xoá đi.Giá trị trong ORC đóng vai trò là giá trị TOP cho bộ đếm.Chế độ này cũng cho phép tạo ra tần số so sánh ở đầu ra.Tuy nhiên trong chế độ này nếu giá trị mới ghi vào thanh ghi ORC mà nhỏ hơn giá trị tức thời của bộ đếm thì thì 1 so sánh sẽ bị lỡ, khi đó bộ đếm sẽ đếm đến giá trị lớn nhất sau đó rơi xuống giá trị 0 trước khi so sánh tiếp theo xuất hiện.
  19. Sơ đồ thời gian của chế độ CTC Chế Độ Fast PWM: Cho phép tạo ra sóng với tần số cao.Sự khác biệt cơ bản giữa Fast PWM với các loại PWM khác là nó chỉ sử dụng 1 sườn dốc.Bộ đếm sẽ đếm từ Bottom đến Max sau đó khởi động lại từ bottom. Trong chế độ không đảo đầu ra của chân so sánh OCx sẽ bi xoá khi có phép toán so sánh giữa TCNTx và thanh ghi ORC là bằng nhau. Và sẽ được sét lên 1 khi giá trị đạt Bottom. Trong chế độ đảo ,đầu ra đảo sẽ được set lên 1 khi sự so sánh giữa thanh ghi ORC và giá trị trong Timer bằng nhau và sẽ bị xoá khi giá trị đạt Bottom.Trong cả hai trường hơp này tần số của chế đô Fast PWM đều gấp đôi so với chế độ phase correct PWM sử dụng hai sườn dốc Với tần số cao này chế độ độ Fast PWM rất tốt cho các ứng dụng như ADC hay chỉnh lưu.Ngoài ra với tần số cao giúp làm giảm kích thước của thiết bị ngoài như cuộn dây tụ từ đó giúp làm giảm toàn bộ chi phí cho hệ thống Sơ đồ dưới đây mô tả chu kỳ thời gian của chế độ:
  20. Biều đồ thời gian chế độ Fast PWM Chế độ Phase correct PWM: Chế độ này hoạt động dựa trên hai sườn lên xuống.Bộ đếm sẽ đếm liên tục từ giá trị BOTTOM đến giá trị MAX và sau đó từ giá trị MAX đến giá trị BOTTOM.Trong chế độ so sánh không đảo chân so sánh (OCx) sẽ bị xóa khi giá trị TCNTx bằng giá trị OCRx trong quá trình đếm lên và sẽ được set bằng 1 khi giá trị so sánh xuất hiện trong quá trình đếm xuống.Chế độ so sánh đảo thì các giá trị là ngược lại.Với hoạt động hai sườn xung này thì chế độ này không tạo ra được tần số nhỏ như chế độ một sườn xung .Nhưng do tính cân đối của hai sườn xung thì nó tốt hơn cho điều khiển động cơ Chế độ phase correct PWM hoạt động cố định là 8 bít.Trong chế độ này bộ đếm sẽ tăng cho đến khi đạt giá trị MAX ,khi đó nó sẽ đổi chiều đếm.Biểu đồ thời gian đây mô tả hoạt động của toàn bộ quá trình: Từ biểu đồ thời gian ta nhận thấy việc thay đổi tần số trong hoạt động của phase correct PWM có thể thay thế bằng hai giá trị là MAX và BOTTOM. Nó linh hoạt hơn so với chế độ Fast PWM. Tần số có thể tính theo công thức như sau: f=fc/N*510 Trong đó N tạo ra bởi bộ chia nó có các giá trị là:1,8,64,256 hoặc 1024 Các thanh ghi trong bộ Timer/ Counter: Thanh ghi điều khiển - TCCRx:

CÓ THỂ BẠN MUỐN DOWNLOAD

Đồng bộ tài khoản