Professional Documents
Culture Documents
AVR-Xuất Xung Với Tần Số Và Độ Rộng Theo ý Muốn - Cộng Đồng Arduino Việt Nam
AVR-Xuất Xung Với Tần Số Và Độ Rộng Theo ý Muốn - Cộng Đồng Arduino Việt Nam
Tham khảo Nào cùng làm! Đăng bài Tải về Cuộc thi Về chúng tôi Bài tập
Vút bay...
Thấy bài viết hữu ích? Hãy bình chọn nó ở hệ thống Rate Node dưới mỗi bài viết để động viên tác già!
(/)
Arduino.vn (http://arduino.vn/) Nào cùng làm (http://arduino.vn/nao-cung-lam) AVR-Xuất xung với tần số và độ rộng theo ý muốn
Group Facebook
AVR-Xuất xung với tần số và độ rộng theo ý muốn (https://www.facebook.com/groups/Ardui
để trao đổi nhanh hơn với BQT và các tác
giả!
Nick Chung (/users/nick-chung) gửi vào Thứ bảy, 7 Tháng 1, 2017 - 08:30
Mô tả dự án:
Tiếp tục chuỗi bài: Điều khiển pin bằng ngôn ngữ chính thống.
Bài viết này sẽ giúp bạn tạo một xung PWM có tần số và độ rộng xung theo ý muốn.
Chủ đề này đã được bạn NTP_PRO viết rất kĩ, hãy tìm hiểu về nó nhé.
iNut Platform - Hệ sinh …
Link: http://arduino.vn/bai-viet/411-timer... (http://arduino.vn/bai-viet/411-timercounter-tren-avrarduino)
Nếu thấy chưa rõ phần nào hãy chủ động search goocle nha.
Tương lai sẽ có các bài viết với ví dụ minh họa về ngắt, các bạn hãy ủng hộ nhé ^^.
Mục
Mục lục
lục Cộng đồng Raspberry Pi …
Thích Trang 5,6K lượt thích
arduino.vn/tutorial/1416-avr-xuat-xung-voi-tan-so-va-do-rong-theo-y-muon 1/21
4/10/2021 AVR-Xuất xung với tần số và độ rộng theo ý muốn | Cộng đồng Arduino Việt Nam
ĐĂNG NHẬP
Tham khảo Nào cùng làm! Đăng bài Tải về Cuộc thi Về chúng tôi Bài tập
1 void setup()
2 {
pinMode(13, OUTPUT);
1 void setup()
3
2 {
4 }
analogWrite(5, 25); TẠO TÀI KHOẢN MỚI (/USER/REGISTE
3
5 void loop()
4 // 25/256=10% YÊU CẦU MẬT KHẨU MỚI (/USER/PASS
6 {
5 }
Connect
7 digitalWrite(13, HIGH);
6 void loop() Mã kiểm tra
8 delayMicroseconds(100);
7 { Vui lòng nhập vào mã kiểm tra ở ô bên cạ
9 digitalWrite(13, LOW);
8 }
delayMicroseconds(900); Tôi không phải là người
10
máy reCA
11 } Bảo mật - Đ
Đăng
Đăng nhập
nhập
• Tần số mặc định trên pin 5,6 là 976 Hz (uno r3), trên pin 3, 11 là 976 Hz (Leonardo).
• Tần số mặc định trên các pin còn lại là 490 hz.
• Nó truy cập trực tiếp lên các thanh ghi nên không ảnh hưởng đến tốc độ sử lý . (bạn sẽ biết điều đó ngay bây giờ).
Chạy mô phỏng trên
proteus (http://arduino.vn/bai-viet/291-cach-xuat-file-hex-tu-arduino-ide-va-mo-phong-arduino-tren-phan-
mem-proteus)
2 {
(http://arduino.vn/bai-
3 pinMode(13, OUTPUT);
viet/diem-cong-
4 analogWrite(5, 25); dong/giai-thuong)
}
5
Arduino
(http://arduino.vn/bai-
6
7 void loop()
viet/diem-cong-
8 {
dong/giai-thuong)
9 digitalWrite(13, HIGH); (http://arduino.vn/bai-
10 delayMicroseconds(100); viet/diem-cong-
11 digitalWrite(13, LOW); dong/giai-thuong)
12 delayMicroseconds(900);
BÌNH LUẬN GẦN ĐÂY
13 }
mã số thuế (https://masocongty.vn)
Mục
Mục lục
lục
arduino.vn/tutorial/1416-avr-xuat-xung-voi-tan-so-va-do-rong-theo-y-muon 2/21
4/10/2021 AVR-Xuất xung với tần số và độ rộng theo ý muốn | Cộng đồng Arduino Việt Nam
Tham khảo Nào cùng làm! Đăng bài Tải về Cuộc thi Về chúng tôi Bài tập
(http://k1.arduino.vn/img/2017/01/06/0/3493_12315469-1483692797-0-test-1.png)
Tần số thấp.
Ảnh hưởng tới tốc độ sử lý 1 Tần số cố định là 976 hz (490
Nhược điểm
luồng. hz).
Phụ thuộc delay.
Cấp một xung nhịp P_clock vào bộ đếm Counter, Xung P_clock được lấy ra từ bộ chia tần số hệ thống F_clock. Mỗi
một xung P_clock sẽ làm bộ đếm Counter tăng thêm một giá trị, khi giá trị đạt max (tràn số) thì counter lại được đặt
về 0 (Fast PWM) hoặc lại đếm lùi về 0 (Phase correct), quá trình này sẽ được lặp đi lặp lại .
Tiếp đến, bộ so sánh sẽ kiểm tra giá trị của bộ đếm Counter với một giá trị đặt trước Value, giá trị lấy ra từ bộ so sánh
cũng chính là dạng xung PWM có tần số P_clock, độ rộng xung là tỷ số của Value với Counter.
(http://k3.arduino.vn/img/2017/01/06/0/3453_81215469-1483692791-0-so-do-tao-xung.png)
AVR là mình gọi tắt của con Atmega - cái con vi điều khiển của con arduino đó các bạn
Mục
Mục lục
lục
arduino.vn/tutorial/1416-avr-xuat-xung-voi-tan-so-va-do-rong-theo-y-muon 3/21
4/10/2021 AVR-Xuất xung với tần số và độ rộng theo ý muốn | Cộng đồng Arduino Việt Nam
Tham khảo Nào cùng làm! Đăng bài Tải về Cuộc thi Về chúng tôi Bài tập
(http://k3.arduino.vn/img/2017/01/06/0/3452_81215469-1483692774-0-atmega328---pwm.jpg)
(http://k1.arduino.vn/img/2017/01/06/0/3492_12315469-1483692781-0-avr-pwm-03.jpg)
Mục
Mục lục
lục
arduino.vn/tutorial/1416-avr-xuat-xung-voi-tan-so-va-do-rong-theo-y-muon 4/21
4/10/2021 AVR-Xuất xung với tần số và độ rộng theo ý muốn | Cộng đồng Arduino Việt Nam
Tham khảo Nào cùng làm! Đăng bài Tải về Cuộc thi Về chúng tôi Bài tập
(http://k2.arduino.vn/img/2017/01/06/0/3454_88215469-1483692786-0-avr-pwm-06.jpg)
Tần số xung phụ thuộc vào xung nhịp P_clock (sau bộ chia tần) và dạng đếm counter.
Như đã biết, mỗi P_clock thì counter tăng lên 1, nếu bộ đếm có cỡ là 8 bit thì cần 256 xung để đếm từ BOTTOM lên
TOP (đếm răng cưa). Nếu chọn kiểu tam giác, khi Counter đạt TOP nó sẽ tiếp tục đếm lùi, khi đó nó cần 256*2 xung
P_clock để đi hết một chu kỳ đếm.
Hoặc
Ví dụ
Chọn kiểu Fast Pwm, tần số thạch anh F_clock=16mhz, sử dụng bộ đếm timer 0 (8 bit = 1 byte) tương đương
TOP_value=255+1. Giảm tầm số Counter xuống còn P_clock = 16mhz/64=250kHz. (Prescller=64).
F_pwm=250khz/256=976.562 Hz.
Cũng như trên, nhưng chọn kiểu Phase Cerrect Pwm, tần số xung ra F_pwm=488.28 Hz.
3 1: TIMER 0 (8 BIT)
3 2
7 bit 6 bit 5 bit 4 bit 1 bit 0 bit
bit bit
5 4
7 bit 6 bit 3 bit 2 bit 1 bit 0 bit
bit bit
Timer/ counter 0 hỗ trợ 2 đầu ra là OC0A và OC0B tương ứng với (PD 5- pin ~5) (PD6 –pin ~6).
0 0 OC0A disabled
Mục
Mục lục
lục WGM02 = 0: Normal Port Operation, OC0A Disconnected
0 1
WGM02 = 1: Toggle OC0A on Compare Match
arduino.vn/tutorial/1416-avr-xuat-xung-voi-tan-so-va-do-rong-theo-y-muon 5/21
4/10/2021 AVR-Xuất xung với tần số và độ rộng theo ý muốn | Cộng đồng Arduino Việt Nam
0 0 OC0B disabled
0 1 Reserved
0 1 0 F_Clock / 8
0 1 1 F_Clock / 64
1 0 0 F_Clock / 256
1 0 1 F_Clock / 1024
CS bits
0 0 0 0 Normal
2 0 1 0 OCRA CTC
4 1 0 0 - Reserved
6 1 1 0 - Reserved
Mục
Mục lục
lục
arduino.vn/tutorial/1416-avr-xuat-xung-voi-tan-so-va-do-rong-theo-y-muon 6/21
4/10/2021 AVR-Xuất xung với tần số và độ rộng theo ý muốn | Cộng đồng Arduino Việt Nam
void setup(){
Tham khảo Nào cùng làm! Đăng bài Tải về
void setup(){
Cuộc thi Về chúng tôi Bài tập
//B1:
//B1: TCCR0A=0;TCCR0B=0;
TCCR0A=0;TCCR0B=0; // reset lại 2 thanh ghi
// reset lại 2 thanh ghi //B2:
//B2: DDRD |= (1 << PD5);
DDRD |= (1 << PD6); // pin 5 là output
// pin 6 là output //B3:
//B3:
TCCR0A |= (1 << WGM01) | (1 << WGM00);
TCCR0A |= (1 << WGM01) | (1 << WGM00); // chọn Fast Mode TCCR0A |= (1 << COM0B1);
// chọn Fast Mode // đầu ra kiểu thường (none-inverting)
TCCR0A |= (1 << COM0A1); TCCR0B |= (1 << CS02)|(1 << CS00);
// đầu ra kiểu thường (none-inverting) //prescaler = 1024, P_clock=16mhz/1024=15,625 khz
TCCR0B |= (1 << CS01); // Tần số xung F_pwm=15,625 khz/256=61,0351 hz
//prescaler = 8, P_clock=16mhz/8=2mhz
// Tần số xung F_pwm=2 mhz/256=7812,5 hz OCR0B = 25;
// Value=25
OCR0A = 128; // Độ rộng xung= 25/256=10%
// Value=128 }
// Độ rộng xung= 128/256=50%
} void loop(){
void loop(){
}
}
(http://k2.arduino.vn/img/2017/01/06/0/3455_88215469- (http://k3.arduino.vn/img/2017/01/06/0/3454_81215469-
1483692802-0-test-2-pin6.png) 1483692808-0-test-3-pin5.png)
Mục
Mục lục
lục
arduino.vn/tutorial/1416-avr-xuat-xung-voi-tan-so-va-do-rong-theo-y-muon 7/21
4/10/2021 AVR-Xuất xung với tần số và độ rộng theo ý muốn | Cộng đồng Arduino Việt Nam
Tham khảo Nào cùng làm! Đăng bài Tải về Cuộc thi Về chúng tôi Bài tập
2 { 2 {
3 3
4 TCCR0B = 0; 4 TCCR0B = 0;
9 } 9 }
11 { 11 {
12 } 12 }
Cảnh báo : Việc thay đổi tần số xung nhịp trên TIMER 0 sẽ gây ảnh hưởng đến
các hàm delay(), delayMicroseconds(), millis(), micros(); , để an toàn hơn bạn hãy giữ
nguyên và dùng hàm analogWrite là đủ rồi
3 2
7 bit 6 bit 5 bit 4 bit 1 bit 0 bit
bit bit
5
7 bit 6 bit 4 bit 3 bit 2 bit 1 bit 0 bit
bit
Kiểu so sánh
COM1A1, COM1A0,
DESCRIPTION
COM1B1 COM1B0
Bộ chia tần
CS12 CS11 CS10 DESCRIPTION
arduino.vn/tutorial/1416-avr-xuat-xung-voi-tan-so-va-do-rong-theo-y-muon 8/21
4/10/2021 AVR-Xuất xung với tần số và độ rộng theo ý muốn | Cộng đồng Arduino Việt Nam
1 0 0 F_Clock / 256
1 0 1 F_Clock / 1024
CS bits
Kiểu counter
MODE WGM13 WGM12 WGM11 WGM10 DESCRIPTION TOP
0 0 0 0 0 Normal 0xFFFF
Ưu điểm của timer 1 so với timer 0 là nó độ phân giải cao hơn, bộ đếm Counter 0 sẽ bị tràn sau 256 xung
P_clock, còn Counter 1 sẽ tràn sau 512 xung Clock (9 bit) hoặc 1024 xung (10 bit), hoặc 65536 xung (16 bit). Điều
này giúp ta xuất xung PWM có rộng xung cực kỳ chính xác.
Ưu điểm nữa của Timer 1 là nó cho phép thay đổi giá trị TOP, ví dụ bạn có thể cài đặt ngưỡng tràn là 500 xung P_clock
( thay vì mặc định là 512 xung). Khi đó độ phân giải mặc định là 16 bit.
Mục
Mục lục
lục
arduino.vn/tutorial/1416-avr-xuat-xung-voi-tan-so-va-do-rong-theo-y-muon 9/21
4/10/2021 AVR-Xuất xung với tần số và độ rộng theo ý muốn | Cộng đồng Arduino Việt Nam
void setup(){
Tham khảo
TCCR1A=0; TCCR1B=0;
Nào cùng làm! Đăngvoid
bàisetup(){
Tải về Cuộc thi Về chúng tôi Bài tập
TCCR1A=0; TCCR1B=0;
// RESET lại 2 thanh ghi // RESET lại 2 thanh ghi
DDRB |= (1 << PB1); DDRB |= (1 << PB2);
// Đầu ra PB1 là OUTPUT ( pin 9) // Đầu ra PB2 là OUTPUT ( pin 10)
TCCR1A |= (1 << WGM11); TCCR1A |= (1 << WGM11);
TCCR1B |= (1 << WGM12)|(1 << WGM13); TCCR1B |= (1 << WGM12)|(1 << WGM13);
// chọn Fast PWM, chế độ chọn TOP_value tự do ICR1 // chọn Fast PWM chế độ chọn TOP_value tự do ICR1
TCCR1A |= (1 << COM1A1); TCCR1A |= (1 << COM1B1);
// So sánh thường( none-inverting) // So sánh thường( none-inverting)
ICR1 = 65535; ICR1 = 30000;
// xung răng cưa tràn sau 65535 P_clock // xung răng cưa tràn sau 30000 P_clock
OCR1A =16838; OCR1B = 15000;
// Value=16838 -> độ rộng 25 % // Value=15000 -> độ rộng 50 %
TCCR1B |= (1 << CS10)|(1 << CS11); TCCR1B |= (1 << CS10);
// F_clock/64=16mhz/64=250 khz // F_clock/1=16mhz
//F_pwm=250khz/65536=3.81469 hz //F_pwm=16mhz/30001=533.315 hz
} }
void loop(){ void loop(){
} }
F_pwm=3.814hz F_Pwm=533.315 hz
(http://k1.arduino.vn/img/2017/01/06/0/3494_12315469- (http://k2.arduino.vn/img/2017/01/06/0/3456_88215469-
1483692815-0-test-4-pin9.png) 1483692821-0-test-5-pin10.png)
Như vậy việc sử dụng TIMER 1 -16 BIT cũng rất dễ dàng.
5 TIMER 2 (8 BIT)
Timer/Counter 2 phụ trách 2 đầu ra OC2A và OC2B, tương ứng pin ~11 (PB3) và ~3 (PD3).
Timer 0 – 8 bit.
Timer 2 thì lại có thể chia tần ở PRESCALER= 32 hoặc 128. Đó là ưu điểm của timer 2.
3 2
7 bit 6 bit 5 bit 4 bit 1 bit 0 bit
bit bit
5 4
7 bit 6 bit 3 bit 2 bit 1 bit 0 bit
bit bit
DESCRIPTION
COM2A1
Tham khảo COM2A0
Nào cùng làm! Đăng bài Tải về Cuộc thi Về chúng tôi Bài tập
0 0 OC2A disabled
0 0 OC2B disabled
0 1 Reserved
Bộ chia tần
0 1 0 F_Clock / 8
0 1 1 F_Clock / 32
1 0 0 F_Clock / 64
1 0 1 F_Clock / 128
1 1 0 F_Clock / 256
1 1 1 F_Clock / 1024
CS bits
arduino.vn/tutorial/1416-avr-xuat-xung-voi-tan-so-va-do-rong-theo-y-muon 11/21
4/10/2021 AVR-Xuất xung với tần số và độ rộng theo ý muốn | Cộng đồng Arduino Việt Nam
0 Tham khảo
0
Nào
0
cùng làm!
0
Đăng bài
0xFF
Tải về Cuộc thi Về chúng tôi
Normal
Bài tập
2 0 1 0 OCRA CTC
4 1 0 0 - Reserved
KHI đó , giá trị TOP_value tất nhiên là bằng 255, vì thanh đếm chỉ có 8 bit.
Mục
Mục lục
lục
arduino.vn/tutorial/1416-avr-xuat-xung-voi-tan-so-va-do-rong-theo-y-muon 12/21
4/10/2021 AVR-Xuất xung với tần số và độ rộng theo ý muốn | Cộng đồng Arduino Việt Nam
Kết quả:
Tham khảo Nào cùng làm! ĐăngKết
bàiquả:Tải về Cuộc thi Về chúng tôi Bài tập
(http://k1.arduino.vn/img/2017/01/06/0/3495_12315469- (http://k3.arduino.vn/img/2017/01/06/0/3455_81215469-
1483692833-0-test-7-pin3.png) 1483692827-0-test-6-pin11.png)
Các bạn hết sức chú ý: Phân biệt DDRB và DDRD khi khai báo chọn PINOUT cho các
chân PORT.
Mình chèn Code dạng text nhằm nhấn mạnh điều này!
6 Ứng dụng
1. Xuất xung 8mhz ra ngoài
Đơn giản là ta sẽ chia cho mẫu số nhỏ nhất là 1.
Kĩ thuật này chỉ áp dụng cho TIMER1 vì nó có thể thay đổi tràn TOP_value.
Mục
Mục lục
lục
arduino.vn/tutorial/1416-avr-xuat-xung-voi-tan-so-va-do-rong-theo-y-muon 13/21
4/10/2021 AVR-Xuất xung với tần số và độ rộng theo ý muốn | Cộng đồng Arduino Việt Nam
1 Tham khảo
void setup()
Nào cùng làm! Đăng bài Tải về Cuộc thi Về chúng tôi Bài tập
2 {
3 TCCR1A = 0;
4 TCCR1B = 0;
8
14 ICR1 = 1;
16 OCR1A = 0;
19 // F_clock=16mhz, P_clock=16/1=16mhz.
20 //F_pwm=16mhz/(ICR1+1)=8mhz
21 }
22
23 void loop()
24 {
25 }
(http://k2.arduino.vn/img/2017/01/06/0/3453_88215469-1483692769-0-8mhz.png)
Điều này là không thể, bởi vì OCR1A (value) nhỏ nhất =0, khi đó nếu ICR1 (TOP_value) cho bằng 0 thì nó sẽ không
đếm được sự kiện.
arduino.vn/tutorial/1416-avr-xuat-xung-voi-tan-so-va-do-rong-theo-y-muon 14/21
4/10/2021 AVR-Xuất xung với tần số và độ rộng theo ý muốn | Cộng đồng Arduino Việt Nam
4. HàmAnalogWrite!
Tham khảo Nào cùng làm! Đăng bài Tải về Cuộc thi Về chúng tôi Bài tập
Tới đây việc tự xây dựng một hàm AnalogWrite sẽ không còn khó nữa. Hiểu lầm lớn nhất của beginner khi sử dụng
AnalogWrite là đã “đánh đồng” cả 3 bộ TIMER là như nhau, khiến ta không khai thác được nhiều ưu điểm của từng TIMER.
http://http://garretlab.web.fc2.com/...
(http://http://garretlab.web.fc2.com/en/arduino/inside/arduino/wiring_analog.c/analogWrite.html)
Đó là vì hai chế độ này gần như tương đồng với nhau, PHASE CERRECT chỉ khác ở chỗ : Chu kì đếm tăng lên gấp 2 , tức là
tần số P_clock của PHASE CERRECT nhỏ hơn 2 lần so với FAST PWM.
TIMER 0:
1 void setup(){
2 ////////////////////////////////////////////////////
3 TCCR0A=0;TCCR0B=0;
5 //B2:
8 // pin 6, 5 là output
9 //B3:
10
14 //prescaler = 8, P_clock=16mhz/8=2mhz
16
17 ///////////////////////////////////////////////////////
22
25
26
27 }
28
29
30 void loop(){
31
32 }
Mục
Mục lục
lục
arduino.vn/tutorial/1416-avr-xuat-xung-voi-tan-so-va-do-rong-theo-y-muon 15/21
4/10/2021 AVR-Xuất xung với tần số và độ rộng theo ý muốn | Cộng đồng Arduino Việt Nam
Tham khảo Nào cùng làm! Đăng bài Tải về Cuộc thi Về chúng tôi Bài tập
(http://k2.arduino.vn/img/2017/01/07/0/3457_88215469-1483753311-0-test-8-pin-5-
6.png)
TIMER 1:
Mục
Mục lục
lục
arduino.vn/tutorial/1416-avr-xuat-xung-voi-tan-so-va-do-rong-theo-y-muon 16/21
4/10/2021 AVR-Xuất xung với tần số và độ rộng theo ý muốn | Cộng đồng Arduino Việt Nam
1 Tham khảo
void setup(){
Nào cùng làm! Đăng bài Tải về Cuộc thi Về chúng tôi Bài tập
2 /////////////////////////////////////////////////
3 TCCR1A=0; TCCR1B=0;
7
11
12 ICR1 = 10000;
15 // F_clock/64=16mhz/64=250 khz
16 //F_pwm=250khz/10001=25hz
17 ///////////////////////////////////////////////////
18
25
26 }
27
28 void loop(){
29
30
31 }
32
Mục
Mục lục
lục
arduino.vn/tutorial/1416-avr-xuat-xung-voi-tan-so-va-do-rong-theo-y-muon 17/21
4/10/2021 AVR-Xuất xung với tần số và độ rộng theo ý muốn | Cộng đồng Arduino Việt Nam
Tham khảo Nào cùng làm! Đăng bài Tải về Cuộc thi Về chúng tôi Bài tập
TIMER 2:
1 void setup(){
2
3 ////////////////////////////////////////////////////////
5 //reset
8
13 // F_pwm=125 khz/256=488.28 hz
14 //////////////////////////////////////////////////
17
20
21 }
22
23 void loop(){
24 }
Mục
Mục lục
lục
arduino.vn/tutorial/1416-avr-xuat-xung-voi-tan-so-va-do-rong-theo-y-muon 18/21
4/10/2021 AVR-Xuất xung với tần số và độ rộng theo ý muốn | Cộng đồng Arduino Việt Nam
Tham khảo Nào cùng làm! Đăng bài Tải về Cuộc thi Về chúng tôi Bài tập
9 Kết
Tất cả các code trên đều được mình kiểm tra & chạy thử, mô phỏng thành công. Yêu cầu bạn thông thạo
các phép toán BIT (http://arduino.vn/reference/BitMath) ( BIT MATH (http://arduino.vn/reference/BitMath) ).
Bài viết có thể chưa đủ với bạn, dưới đây là các trang web được mình sưu tầm về phần PWM+TIMER.
• http://garretlab.web.fc2.com/en/ardu...
(http://garretlab.web.fc2.com/en/arduino/inside/arduino/wiring_analog.c/analogWrite.html)
• http://robotika.yweb.sk/skola/AVR/vi...
(http://robotika.yweb.sk/skola/AVR/visionrobo%20com/PWM%20in%20AVR%20v1.0.pdf)
• http://arduino.stackexchange.com/que...
clock-output)
(http://arduino.stackexchange.com/questions/16698/arduino-constant-
• https://www.arduino.cc/en/Tutorial/S... (https://www.arduino.cc/en/Tutorial/SecretsOfArduinoPWM)
• http://provideyourown.com/2011/analo... (http://provideyourown.com/2011/analogwrite-convert-pwm-to-voltage/)
• http://www.avrfreaks.net/forum/tut-c...
page=all)
(http://www.avrfreaks.net/forum/tut-c-newbies-guide-avr-pwm-incomplete?
• http://www.ermicro.com/blog/?p=1971... (http://www.ermicro.com/blog/?p=1971)
• http://www.avrfreaks.net/forum/duty-... (http://www.avrfreaks.net/forum/duty-cycle-adjustment-fast-pwm-mode)
• https://sites.google.com/site/qeewik...
atmega328)
(https://sites.google.com/site/qeewiki/books/avr-guide/pwm-on-the-
• http://www.effusiontech.com/pwm-in-a... (http://www.effusiontech.com/pwm-in-avr.html)
VIDEO HƯỚNG DẪN (http://www.youtube.com/watch?v=iSGJWvONgF0) dùng Proteus để đo tần số.
Việc đào sâu về phần cứng sẽ giúp ta sử dụng arduino với một hiệu suất cao nhất, điều mà những cải tiến phần mềm sẽ
không thể với tới được.
<Đừng quên đón đọc bài tiếp theo về điều khiển SERVO siêu chuẩn nhé..>
Từ khóa:
Mục
Mục lục
lục(/tags/avr-code)
AVR CODE xung PWM (/tags/xung-pwm) phát xung PWM (/tags/phat-xung-pwm) Rate node
phát tần số 8mhz (/tags/phat-tan-so-8mhz)
Chuyên mục:
arduino.vn/tutorial/1416-avr-xuat-xung-voi-tan-so-va-do-rong-theo-y-muon 19/21
4/10/2021 AVR-Xuất xung với tần số và độ rộng theo ý muốn | Cộng đồng Arduino Việt Nam
Intermediate - Có kiến thức cơ bản (/chuong-trinh-mau/level-intermediate-co-kien-thuc-co-
ban) Tham khảo
Nào cùng làm! (/nao-cung-lam)
Nào cùng làm! Đăng bài Tải về Cuộc thi Về chúng tôi Bài tập
AVR - Điều khiển động cơ SERVO siêu chuẩn với biên độ góc cực nhỏ!
(/tutorial/1423-avr-dieu-khien-dong-co-servo-sieu-chuan-voi-bien-do-
goc-cuc-nho)
Nick Chung (/users/nick-chung) gửi vào Thứ hai, 9 Tháng 1, 2017 - 08:30
Tận dụng ưu thế của TIMER1 trên arduino, việc ứng dụng nó để xuất ra xung điều khiển servo với
độ chính xác cao là rất khả thi. Nó cho phép servo quay với góc cực nhỏ, nhỏ đến cỡ nào ? BẠn
hãy đọc bài này sẽ rõ.
Rate node
Thích 87 người thích nội dung này. Hãy là người đầu tiên trong số bạn bè của bạn.
24 thành viên đã đánh giá bài viết này hữu ích.
Từ khóa:
servo siêu chuẩn (/tags/servo-sieu-chuan)
arduino.vn/tutorial/1416-avr-xuat-xung-voi-tan-so-va-do-rong-theo-y-muon 20/21
4/10/2021 AVR-Xuất xung với tần số và độ rộng theo ý muốn | Cộng đồng Arduino Việt Nam
Trong bài viết trước, chúng ta đã cùng tìm hiểu một vài nguyên tắc của hiệu ứng chuyển động
Tham trong
khảo đồ họa.
NàoBàicùng làm!
viết này Đăng
sẽ nối tiếp nội bài Tải dở
dung còn
Tất nhiên là trên arduino cùng lcd st7565 rồi.
về dang
Cuộc
củathi Về chúng
bài trước, tôiđi tiếp
hãy cùng Bàinào.
tập
Rate node
Từ khóa:
game (/tags/game) st7565 game (/tags/st7565-game) gaming lcd (/tags/gaming-lcd) làm game trên arduino (/tags/lam-game-tren-arduino)
THÀNH VIÊN TRỰC TUYẾN THÀNH VIÊN MỚI VỀ CHÚNG TÔI LIÊN KẾT
• nguyenanhquan
(/users/nguyenanhquan) • Trịnh Thanh Sơn (/users/trinh-
thanh-son)
(http://www.dmca.com/Protection/Status.aspx?ID=78aa6fcb-6c63-4023-b42d-872e89882865)
(http://creativecommons.org/licenses/by-sa/4.0/)
Nội dung trên trang Arduino.vn (http://arduino.vn/) được phân phối theo giấy phép Creative Commons Attribution-ShareAlike 4.0
International License (http://creativecommons.org/licenses/by-sa/4.0/).
Vui lòng ghi rõ nguồn và link về bài gốc nếu bạn tham khảo nội dung từ website (http://masocongty.vn) này.
Mục
Mục lục
lục
arduino.vn/tutorial/1416-avr-xuat-xung-voi-tan-so-va-do-rong-theo-y-muon 21/21