Я смотрел на мой Arduino Uno , и я заметил , что символ с помощью цифровых штырей 11
, 10
, 9
, 6
, 5
, и 3
. Что это значит? Это влияет на то, как это работает? Могу ли я не использовать эти контакты в определенных ситуациях?
Я смотрел на мой Arduino Uno , и я заметил , что символ с помощью цифровых штырей 11
, 10
, 9
, 6
, 5
, и 3
. Что это значит? Это влияет на то, как это работает? Могу ли я не использовать эти контакты в определенных ситуациях?
Ответы:
Расслабьтесь. Не беспокойся Эти пины называются PWM
и такие же, как и другие, за исключением того, что у них есть «дополнительный бонус».
Некоторые использования с сайта Arduino :
- Затемнение светодиода
- Имитирует аналоговый выход. Цифровой выход по-прежнему переключается с 0 В на 5 В. Тем не менее, фильтр нижних частот (конденсатор и резистор) для имитации аналоговых напряжений.
- Генерация аудио сигналов.
- Обеспечение контроля скорости двигателя.
- Генерация модулированного сигнала, например, для управления инфракрасным светодиодом для пульта дистанционного управления.
Как это работает:
Контакты PWM управляются встроенными таймерами, которые автоматически переключают контакты с частотой около 490 Гц. «Широтно-импульсная модуляция» (ШИМ) - это то, как долго штырь остается включенным или выключенным в течение одного цикла этой частоты. Это может уменьшить яркость светодиода, создав иллюзию, что он на половине яркости, как и раньше, где он действительно очень быстро мигает.
Когда рабочий цикл составляет 25%, он используется в четвертый раз. Если вы используете светодиод, он будет выглядеть примерно на 1/4 ярким [дать или взять]. (Примечание: так как некоторые люди отметили, что это не по- настоящему пропорциональная , но давайте оставим это так для простоты EX:. 25% не всегда 1 / четвёртую яркость.)
(Если вы действительно разбираетесь в электричестве, вы можете добавить конденсатор, чтобы сделать его также аналоговым выходом.)
Как использовать эти выводы для вывода:
Во-первых, вам нужно определить вывод как выходной. Затем вы используете,
analogWrite(ledPin, 128);
чтобы запустить его. Это ledPin
вывод ШИМ, который вы хотите запустить ШИМ и 128
должен быть заменен числом между 0
и 255
; 0
: 0% duty cycle
(Поворачивает штифт полностью выключено) и 255
: 100% duty cycle
. (полностью поворачивает штифт)
Источник: http://www.arduino-tutorials.com/arduino-pwm/
Почему я не могу просто быстро включить и выключить свет в моем коде ?:
Технически, однако, вы можете столкнуться с некоторыми проблемами:
Это не будет иметь большого значения, если единственная цель Arduino - генерировать сигналы ШИМ. Однако, если вы поместите какие-либо задержки более 50 мс в основной цикл, это испортит синхронизацию. При программном подходе вы хотели бы исключить любые функции «задержки», так как Arduino работает только в одном потоке (он может делать только одну вещь за один раз). Если вы знаете, что делаете, это не будет иметь большого значения для затухания света, но если у вас есть дополнительный вывод с ШИМ, вы просто теряете время с программным подходом.
Как уже отмечали другие:
Вам все еще нужен резистор для ваших цепей, чтобы ограничить ток и напряжение. Вы не можете пропустить это.
Распространенное заблуждение относительно выводов ШИМ заключается в том, что при использовании ШИМ нет необходимости использовать токоограничивающие резисторы (например, со светодиодами).
Это неправда. Контакты PWM следует рассматривать как цифровые контакты, которые включаются и выключаются автоматически. Это означает, что они получают то же ВЫСОКОЕ напряжение, что и любой другой контакт.
При использовании светодиодов с ШИМ, вы все равно должны использовать токоограничивающие резисторы. При использовании двигателей с ШИМ, вы должны (почти всегда) использовать транзистор.