- Широтно-импульсная модуляция (ШИМ)
- Программирование ATtiny13 с использованием Arduino
- Необходимые компоненты
- Принципиальная схема и работа
Сервомотор работает по принципу широтно-импульсной модуляции (ШИМ), а его угол поворота контролируется длительностью импульса, подаваемого на его управляющий штифт. В этом уроке мы будем управлять серводвигателем с помощью микроконтроллера ATtiny13, используя технику PWM. Итак, прежде чем идти дальше, мы сначала узнаем о ШИМ, серводвигателе и о том, как программировать ATtiny13 с помощью платы Arduino.
Широтно-импульсная модуляция (ШИМ)
Широтно-импульсная модуляция (ШИМ) определяется как метод генерации аналогового сигнала с использованием цифрового источника. Сигнал ШИМ состоит из двух основных компонентов - рабочего цикла и частоты. Эти компоненты определяют его поведение. Рабочий цикл описывает количество времени, в течение которого сигнал находится в высоком состоянии. Он обозначается как процент от общего времени, необходимого для выполнения одного цикла.
Рабочий цикл = время включения / (время включения + время выключения)
Частота определяет, как быстро ШИМ завершает цикл и как быстро сигнал переключается между высоким и низким состояниями. Частота 100 Гц означает 100 циклов в секунду. При быстром включении и выключении цифрового сигнала с определенным рабочим циклом выход будет выглядеть как аналоговый сигнал постоянного напряжения. Одним из важных преимуществ ШИМ является то, что потери мощности очень минимальны.
Все серводвигатели работают напрямую от источника питания +5 В, но мы должны быть осторожны с величиной тока, потребляемого двигателем. Если мы используем более двух серводвигателей, необходимо разработать надлежащий серво щиток.
Перед подключением сервопривода к Attiny13 вы можете проверить свой сервопривод с помощью этой схемы тестера серводвигателя. Здесь у нас есть интерфейс серводвигателя со многими микроконтроллерами:
- Подключение серводвигателя к ARM7-LPC2148
- Подключение серводвигателя к MSP430G2
- Управление несколькими сервомоторами с помощью Arduino
- Взаимодействие серводвигателя с микроконтроллером PIC с использованием MPLAB и XC8
- Управление сервомотором с Raspberry Pi
- Управление серводвигателем с помощью Arduino Due
- Взаимодействие серводвигателя с микроконтроллером AVR Atmega16
Программирование ATtiny13 с использованием Arduino
Attiny13 можно запрограммировать с помощью Arduino Uno или любой другой платы Arduino. Подключите Attiny13 к Arduino Uno, как показано на рисунке ниже.
- Arduino 5V - ATtiny13 контакт 8
- Arduino GND - ATtiny13 контакт 4
- Вывод 13 Arduino - вывод 7 ATtiny13
- Вывод 12 Arduino - вывод 6 ATtiny13
- Вывод 11 Arduino - вывод 5 ATtiny13
- Контакт 10 Arduino - контакт 1 ATtiny13
Arduino настроен как программатор для программирования ATtiny13. Это делается путем загрузки скетча ArduinoISP в Arduino. Этот скетч Arduino доступен внутри примеров в Arduino IDE. Откройте IDE Arduino и перейдите в Файлы> Примеры> ArduinoISP .
Теперь появится программа для ArduinoISP. Загрузите программу в Arduino Uno.
Arduino Uno теперь готов к программированию Attiny13. Но мы должны настроить Attiny, установив его файлы ядра. Для этого перейдите в Файл >> Настройки в Arduino IDE.
После этого появится новое окно. И в « Дополнительные URL-адреса менеджера доски » добавьте приведенную ниже ссылку и нажмите «ОК».
«Https://raw.githubusercontent.com/sleemanj/optiboot/master/dists/package_gogo_diy_attiny_index.json»
Теперь в вашей Arduino IDE перейдите в Инструменты >> Доска >> Менеджер плат.
Затем появится другое окно, где в поле поиска введите «Attiny», затем вы получите «DIY ATtiny», затем нажмите кнопку «Установить» (я уже установил его, поэтому кнопка установки серого цвета)
Чтобы начать программировать ATtiny 13, мы должны записать на него загрузчик. Для этого перейдите в Инструменты> Доска> ATtiny13.
Теперь перейдите в Инструменты> Версия процессора и проверьте, выбрана ли правильная версия ATtiny. Выберите ATtiny13 или ATtiny13a в зависимости от вашего чипа.
Затем нажмите кнопку «Записать загрузчик» в нижней части меню «Инструменты».
После записи загрузчика ATtiny готов к программированию. Теперь вы можете загрузить свою программу.
Необходимые компоненты
- Микроконтроллер ATtiny13
- Серводвигатель
- Потенциометр
- + 5В аккумулятор
- IDE Arduino
- Соединительные провода
Принципиальная схема и работа
Принципиальная схема управления серводвигателем с помощью потенциометра ATtiny13 приведена ниже.
Ниже приведены подключения
- Подключите управляющий штифт серводвигателя к контакту 5 ATtiny13.
- Подключите массу серводвигателя к контакту 4 ATtiny13.
- Подключите VCC серводвигателя к контакту 8 ATtiny13.
- Подключите средний вывод потенциометра к выводу 7 ATtiny13.
- Подключите первый и третий контакты потенциометра к VCC и GND.
- Подключите положительный полюс батареи + 5V к контакту 8 ATtiny13.
- Подключите минус батареи + 5V к контакту 4 ATtiny13.
Потенциометр подключен к контакту 7 (PB2) ATtiny13, а провод управления серводвигателем подключен к контакту 5 (PB0).
Здесь значение потенциометра считывается и преобразуется в значение от 0 до 180. Затем это значение угла преобразуется в микросекунды, и на управляющий вывод серводвигателя подается импульс с рассчитанной микросекундной задержкой. Теперь серводвигатель будет вращаться в соответствии со значением потенциометра, как показано на видео, приведенном ниже.