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