- Điều chế độ rộng xung (PWM)
- Lập trình ATtiny13 bằng Arduino
- Thành phần bắt buộc
- Sơ đồ mạch và làm việc
Động cơ servo hoạt động dựa trên cơ chế chính của Điều chế độ rộng xung (PWM) và góc quay của nó được điều khiển bởi khoảng thời gian của xung áp dụng cho chân điều khiển của nó. Ở đây trong hướng dẫn này, chúng ta sẽ điều khiển động cơ servo với vi điều khiển ATtiny13 bằng kỹ thuật PWM. Vì vậy, trước khi đi sâu hơn nữa, trước tiên chúng ta sẽ tìm hiểu về PWM, Servo Motor và cách lập trình ATtiny13 với Arduino Board.
Điều chế độ rộng xung (PWM)
Điều chế độ rộng xung (PWM) được định nghĩa là một phương pháp tạo tín hiệu tương tự sử dụng nguồn kỹ thuật số. Một tín hiệu PWM bao gồm hai thành phần chính - chu kỳ nhiệm vụ và tần số. Các thành phần này xác định hành vi của nó. Chu kỳ nhiệm vụ mô tả khoảng thời gian tín hiệu ở trạng thái cao. Nó được biểu thị dưới dạng phần trăm tổng thời gian cần thiết để hoàn thành một chu kỳ.
Chu kỳ làm việc = Thời gian BẬT / (Thời gian BẬT + Thời gian TẮT)
Tần số xác định tốc độ PWM hoàn thành một chu kỳ và tốc độ tín hiệu chuyển đổi giữa các trạng thái cao và thấp. Tần số 100Hz có nghĩa là 100 chu kỳ mỗi giây. Bằng cách BẬT và TẮT tín hiệu kỹ thuật số với tốc độ nhanh và với một chu kỳ nhiệm vụ nhất định, đầu ra sẽ xuất hiện giống như tín hiệu tương tự điện áp không đổi. Một trong những lợi ích mạnh mẽ của PWM là tổn thất điện năng rất nhỏ.
Tất cả các động cơ servo đều hoạt động trực tiếp với nguồn cung cấp + 5V, nhưng chúng ta phải cẩn thận về lượng dòng điện mà động cơ sẽ tiêu thụ. Nếu chúng ta đang sử dụng nhiều hơn hai động cơ servo, cần thiết kế một tấm chắn servo thích hợp.
Trước khi kết nối Servo với Attiny13, bạn có thể kiểm tra servo của mình với sự trợ giúp của Mạch kiểm tra động cơ Servo này. Ở đây chúng tôi có động cơ servo giao tiếp với nhiều bộ vi điều khiển:
- Giao tiếp động cơ Servo với ARM7-LPC2148
- Giao tiếp động cơ Servo với MSP430G2
- Điều khiển nhiều động cơ Servo với Arduino
- Giao diện động cơ Servo với Vi điều khiển PIC sử dụng MPLAB và XC8
- Điều khiển động cơ Servo với Raspberry Pi
- Điều khiển động cơ Servo với Arduino Do
- Giao tiếp động cơ Servo với vi điều khiển AVR Atmega16
Lập trình ATtiny13 bằng Arduino
Attiny13 có thể được lập trình bằng Arduino Uno hoặc bất kỳ bảng Arduino nào khác. Kết nối Attiny13 với Arduino Uno như trong hình bên dưới.
- Arduino 5V - ATtiny13 chân 8
- Arduino GND - ATtiny13 pin 4
- Chân 13 của Arduino - Chân 7 của ATtiny13
- Chân 12 của Arduino - Chân 6 của ATtiny13
- Chân 11 của Arduino - Chân 5 của ATtiny13
- Chân 10 của Arduino - Chân 1 của ATtiny13
Arduino được đặt làm lập trình viên để lập trình ATtiny13. Điều này được thực hiện bằng cách tải bản phác thảo ArduinoISP lên Arduino. Bản phác thảo Arduino này có sẵn bên trong các ví dụ trong Arduino IDE. Mở Arduino IDE và đi tới Tệp> Ví dụ> ArduinoISP .
Bây giờ chương trình cho ArduinoISP sẽ bật lên. Tải chương trình lên Arduino Uno.
Arduino Uno hiện đã sẵn sàng để lập trình Attiny13. Nhưng chúng tôi phải thiết lập Attiny bằng cách cài đặt các tệp cốt lõi của nó. Để thực hiện việc này, hãy vào Tệp >> Tùy chọn trong Arduino IDE
Sau đó, một cửa sổ mới sẽ bật lên. Và trong “ URL của người quản lý Hội đồng quản trị bổ sung ”, hãy thêm liên kết bên dưới và nhấp vào “OK”.
“Https://raw.githubusercontent.com/sleemanj/optiboot/master/dists/package_gogo_diy_attiny_index.json”
Bây giờ trong IDE Arduino của bạn, hãy chuyển đến Công cụ >> Bảng >> Trình quản lý bảng
Sau đó, một cửa sổ khác sẽ bật lên, trong hộp tìm kiếm gõ 'Attiny', sau đó bạn sẽ nhận được "DIY ATtiny", sau đó nhấp vào nút "cài đặt" (Tôi đã cài đặt nó, đó là lý do tại sao nút cài đặt có màu xám)
Để bắt đầu lập trình ATtiny 13, chúng ta phải ghi Bootloader vào nó. Để làm điều đó, hãy đi tới Công cụ> Bảng> ATtiny13.
Bây giờ đi tới Công cụ> Phiên bản bộ xử lý và kiểm tra xem phiên bản ATtiny có được chọn đúng hay không. Chọn ATtiny13 hoặc ATtiny13a tùy thuộc vào chip của bạn.
Sau đó nhấp vào nút Burn bootloader ở cuối trình đơn Công cụ.
Sau khi ghi bộ nạp khởi động, ATtiny đã sẵn sàng được lập trình. Bây giờ bạn có thể tải lên chương trình của mình.
Thành phần bắt buộc
- Bộ vi điều khiển ATtiny13
- Động cơ servo
- Chiết áp
- + 5V pin
- Arduino IDE
- Kết nối dây
Sơ đồ mạch và làm việc
Sơ đồ mạch điều khiển động cơ servo sử dụng nồi với ATtiny13 được đưa ra dưới đây.
Dưới đây là các kết nối
- Kết nối chân điều khiển động cơ servo với chân 5 của ATtiny13
- Nối đất của động cơ servo với chân 4 của ATtiny13
- Kết nối VCC của động cơ servo với chân 8 của ATtiny13
- Kết nối chân giữa của chiết áp với chân 7 của ATtiny13
- Kết nối chân đầu tiên và chân thứ ba của chiết áp với VCC và GND.
- Kết nối cực dương của pin + 5V với chân 8 của ATtiny13
- Kết nối cực âm của pin + 5V với chân 4 của ATtiny13
Một chiết áp được kết nối với chân 7 (PB2) của ATtiny13 và dây điều khiển của động cơ servo được kết nối với chân 5 (PB0).
Tại đây giá trị chiết áp được đọc và nó được chuyển đổi thành giá trị từ 0 đến 180. Sau đó giá trị góc này được chuyển đổi thành micro giây và một xung được cấp cho chân điều khiển của động cơ servo với độ trễ micro giây được tính toán. Bây giờ động cơ servo sẽ quay theo giá trị của chiết áp như được minh họa trong video dưới đây.