Menu
- Home
- VI XỬ LÝ
- PIC16F
- PIC16F84A
- PIC16F628A
- PIC16F887
- PIC16F877A
- PIC16F877A XC8
- PIC16F877A CCS
- PIC18F
- PIC18F452
- PIC18F4431
- PIC18F4550
- PIC18F4550 XC8
- PIC18F4550 CCS
- ARDUINO
- AVR
- 8051
- ĐIỆN - ĐIỆN TỬ
- ĐIỆN TỬ CƠ BẢN
- IC THÔNG DỤNG
- LINH KIỆN
- CẢM BIẾN
- CẢM BIẾN QUANG
- CB TIỆM CẬN
- CẢM BIẾN TỪ
- THIẾT KẾ MẠCH
- DOWNLOAD
- PHẦN MỀM
- MPLAB XC8
- PIC C
- Arduino IDE
- Keil C
- Protues
- CCLEANER
- TÀI LIỆU
Lập trình PIC ARDUINO BÀI 5 : ĐIỀU KHIỂN TỐC ĐỘ ĐỘNG CƠ BẰNG PWM BÀI 5 : ĐIỀU KHIỂN TỐC ĐỘ ĐỘNG CƠ BẰNG PWM
12:40:00 AM ARDUINO 1. Sơ đồ mạch. |
Hình 1. |
2. Code chương trình.int potPin = 0;int transistorPin = 9;int potValue = 0;void setup() {pinMode(transistorPin, OUTPUT);}void loop() {potValue = analogRead(potPin) / 4;analogWrite(transistorPin, potValue);} 3. Giải thích chương trình. Như trong sơ đồ mạch ta thấy biến trở được nối với chân A0, transistor được nối vớichân số 9 thông qua điện trở 1k. Như vậy ta khai báo 2 biến chứa vị trí chân cho biến trở và transistor.int potPin = 0;int transistorPin = 9;Biến integer potValue chứa giá trị đọc được từ chân A0.int potValue = 0Một câu hỏi đặt ra ở đây là nếu chúng ta không kết nối transistor điều khiển động cơvào chân số 9 mà thay vào đó là chân số 1 hoặc 2 để điều khiển tốc độ động cơ thì có được không ?.Câu trả lời là Không. Vậy tại sao Không ?Tôi sẽ trả lời câu hỏi này sau. Nhưng trước hết tôi nói về PWM. PWM (pulse widthmodulation) là phương pháp điều chế dựa trên sự thay đổi độ rộng của chuổi xung dẫn đến sự thay đổi điện áp ra. Để tạo ra được PWM trên Arduino thì chúng ta sử dụng lệnh analogWrite(Pin, Value); Trong đó:Pin: là vị trí chân, đối với Arduino Uno thì chỉ có các chân 3, 5, 6, 9, 10 & 11 mớicó chức năng tạo PWM. Vậy chúng ta có thể trả lời được câu hỏi bên trên, các chân digital còn lại của có thể đọc hoặc xuất 2 giá trị là 0 và 1 mà thôi. Value: Giá trị nằm trong khoảng 0 đến 255. Để hiểu rõ hơn về PWM tôi sẽ minh hoạ qua ví dụ sau.Nếu tôi sử dụng lệnh analogWrite(transistorPin, 127); thì dạng xung ở chân 9 (transistorPin = 9) sẽ như hình dưới và giá trị trung bình ngõ ra sẽ là 2,5V (50% ). |
Hình 2. PWM 50% |
Nếu Value = 64 (hay 25%) thì dạng xung như sau: |
Hình 3. PWM 25% |
Value = 229 (hay 90%) thì dạng xung sẽ là : |
Hình 3. PWM 90% |
Từ ví dụ trên ta thấy sự thay đổi độ rộng của chuổi xung dẫn đến sự thay đổi điện ápra. Ta cũng thấy rằng điện áp trên motor cũng thay đổi tuyến tính theo sự thay đổi điện áp ngõ ra trên chân 9. Tức là nếu điện áp trung bình trên chân 9 là 2,5 volt (50% ) thì điện áp trên hai đầu motor là 6 volt ( nguồn motor là 12 volt ). Quay lại chương trình ta cần quan tâm tới một câu lệnh đó là:potValue = analogRead(potPin) / 4; Chúng ta cần phải chia giá trị đọc được cho 4 vì giá trị analog sẽ nằm trong khoảng0 (0 volt ) đến 1023 (5 volt ), nhưng giá trị cần xuất ra ngoài chân 9 lại nằm trong khoảng 0 đến 255 đó chính là lý do tại sao có chia 4 ở đây. Và câu lệnh cuối cùng là tạo PWM trên chân 9 để điều khiển tốc đố động cơ.analogWrite(transistorPin, potValue);Nếu như đã điều kiển được tốc độ động cơ bằng PWM rồi thì việc điều khiển độ sángcủa Led hay đèn đối với các bạn bay giờ là chuyện quá đơn giản. Các bạn chỉ cần nối chân số 9 với một Led có điện trở hạn dòng là 220 ohm và code chương trình hoàn toàn giống như điều khiển động cơ. Lưu ý là khi mô phỏng các bạn sẽ không thấy được led thay đổi độ sáng mà chỉ thấy nhấp nháy nguyên nhân là do phần mềm proteus không đáp ứng kịp sự thay đổi của các xung PWM. Nhưng khi làm thực tế các bạn sẽ thấy được sự thay đổi độ sáng của Led rõ rệt. Share this
Author : Unknown
Related Posts
EmoticonEmoticon
Subscribe to: Post Comments (Atom)
LIKE FANPAGE
Follow us
GOOGLE +
THÀNH VIÊN
PROJECT
- PIC16F877A CCS 51
- PIC16F877A XC8 40
- PIC16F887 30
- PIC18F4431 9
- PIC18F452 7
- PIC18F4550 XC8 7
- ARDUINO 6
- IC THÔNG DỤNG 6
- PIC16F628A 6
- PIC16F84A 6
- PIC18F4550 CCS 5
- ĐIỆN TỬ CĂN BẢN 5
- LINH KIỆN 4
- Protues 4
- VI XỬ LÝ 4
- MPLAB XC8 2
- PIC C 2
- TÀI LIỆU PLC 2
- 8051 1
- AUTOCARD 1
- Arduino IDE 1
- CẢM BIẾN QUANG 1
- CẢM BIẾN TIỆM CẬN ĐIỆN DUNG 1
- CẢM BIẾN TIỆN CẬN ĐIỆN CẢM 1
- CẢM BIẾN TỪ 1
- Keil C 1
- Thiết kế mạch 1
XEM NHIỀU
- HƯỚNG DẪN ĐỌC GIÁ TRỊ ĐIỆN TRỞ 1 Giới thiệu. a) Hình dáng và ký hiệu : Trong thiết bị điện tử điện trở là một linh kiện quan trọng , chúng được làm từ hợp chất cacbon v...
- BÀI 11 : TIMER 1 PIC16F877A CCS Chào các bạn trong bài đăng trước mình đã hướng dẫn các bạn về timer0 và trong bài đăng này mình sẽ tiếp tục hướng dẫn các ban về timer1 c...
- BÀI 30 : PWM VÀ L298 PIC16F877A CCS 1 .IC L298. IC L298 là một IC tích hợp nguyên khối gồm 2 mạch cầu H bên trong. Với điện áp làm tăng công suất đầu ra từ 5V – 47V , dòng l...
- BÀI 4 : GIAO TIẾP VỚI NÚT NHẤN PIC16F877A CCS (P2) Chào các bạn trong bài 3 mình đã giới thiệu với các bạn về cách giao tiếp với nút nhấn rồi bạn nào chưa xem thì xem lại tại đây để hiểu ...
- TÌM HIỂU VỀ CẢM BIẾN TIỆM CẬN ĐIỆN DUNG 1. Cảm biến tiệm cận điện dung Omron E2K-X8ME1-2M - Cấu trúc của cảm biến tiệm cận điện dung. Hình 1. Cấu tạo cảm biến tiệm cận điện du...
THỐNG KÊ