Что такое ШИМ и как она используется в Arduino
Содержание
- 1 Общие сведенияо широтно-импульсной модуляции
- 2 Схема для демонстрации широтно-импульсной модуляции в Arduino
- 3 Пример скетча с ШИМ
- 4 Управление яркостью светодиода с помощью PWM и Arduino
Давайте разберёмся, что скрывается за аббревиатурой ШИМ, как это работает, для чего нужно и как мы можем использовать её в работе с Arduino.
-
или иная совместимая плата;
- светодиод (вот из такого набора, например);
- резистор номиналом 190…240 Ом (вот отличный набор резисторов самых распространённых номиналов); ;
- персональный компьютер со средой разработки Arduino IDE.
Инструкция по использованию ШИМ в Arduino
1 Общие сведенияо широтно-импульсной модуляции
Цифровые выводы Arduino могут выдавать только два значения: логический 0 (LOW, низкий уровень) и логическую 1 (HIGH, высокий). На то они и цифровые. Но есть у Ардуино особые выводы, которые обозначаются PWM. Их иногда обозначают волнистой чертой "
" или обводят кружочками или ещё как-то выделяют среди прочих. PWM расшифровывается как Pulse-width modulation или широтно-импульсная модуляция, ШИМ.
Обозначение выходов с ШИМ на Arduino Leonardo
Широтно-импульсно модулированный сигнал это импульсный сигнал постоянной частоты, но переменной скважности (соотношение длительности импульса и периода его следования). Из-за того, что большинство физических процессов в природе имеют инерцию, то резкие перепады напряжения от 1 к 0 будут сглаживаться, принимая некоторое среднее значение. С помощью задания скважности можно менять среднее напряжение на выходе ШИМ .
Если скважность равняется 100%, то всё время на цифровом выходе Arduino будет напряжение логическая "1" или 5 вольт. Если задать скважность 50%, то половину времени на выходе будет логическая "1", а половину логический "0", и среднее напряжение будет равняться 2,5 вольтам. Ну и так далее.
Принцип работы широтно-импульсной модуляции (ШИМ)
В программе скважность задаётся не в процентах, а числом от 0 до 255. Например, команда analogWrite(10, 64) скажет микроконтроллеру подать на цифровой PWM выход №10 сигнал со скважностью 25%.
Выводы Arduino с функцией широтно-импульсной модуляции работают на частоте около 500 Гц. Значит, период следования импульсов около 2 миллисекунд, что и отмеряют зелёные вертикальные штрихи на рисунке. Получается, что мы можем сымитировать аналоговый сигнал на цифровом выходе! Интересно, правда?!
2 Схема для демонстрации широтно-импульсной модуляции в Arduino
Давайте рассмотрим самый базовый пример управление яркостью светодиода с помощью ШИМ . Соберём классическую схему.
Схема для демонстрации ШИМ в Arduino
3 Пример скетча с ШИМ
Откроем из примеров скетч "Fade": Файл Образцы 01.Basics Fade.
Открываем скетч для Arduino с использованием ШИМ
Немного изменим его и загрузим в память Arduino.
4 Управление яркостью светодиода с помощью PWM и Arduino
Включаем питание. Светодиод плавно наращивает яркость, а затем плавно уменьшает. Мы сымитировали аналоговый сигнал на цифровом выходе с помощью широтно-импульсной модуляции.
Управление яркостью светодиода пример широтно-импульсной модуляции, используемой в Arduino
Посмотрите приложенные видео, где на экране осциллографа DSO138 наглядно показано изменение яркости светодиода, и как при этом меняется сигнал с Arduino.
Источник: