Почему на некоторых выводах рядом с номерами есть знаки `~`?

32

Я смотрел на мой Arduino Uno , и я заметил , что символ с помощью цифровых штырей 11, 10, 9, 6, 5, и 3. Что это значит? Это влияет на то, как это работает? Могу ли я не использовать эти контакты в определенных ситуациях?

Анонимный пингвин
источник
19
Символ тильды означает «приблизительно». Как в «это примерно 11 контакт». Во время процесса mfg контакты могут немного сместиться. В редких случаях контакт 11 будет ровно 11. Обычно он немного больше или чуть меньше 11. Контакты с повышенной склонностью к смещению обозначаются символом ~. :)
6
@AnnonomusPerson Дэвид шутит, что не сразу очевидно, если вы не знакомы с распиновкой и тому подобным.
Шамтам
7
@Shamtam: Или, если вы не знакомы с Дэвидом :)
Крис Лапланте

Ответы:

31

Расслабьтесь. Не беспокойся Эти пины называются 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
  • Проще просто набирать инструкцию вместо множества операторов if

Это не будет иметь большого значения, если единственная цель Arduino - генерировать сигналы ШИМ. Однако, если вы поместите какие-либо задержки более 50 мс в основной цикл, это испортит синхронизацию. При программном подходе вы хотели бы исключить любые функции «задержки», так как Arduino работает только в одном потоке (он может делать только одну вещь за один раз). Если вы знаете, что делаете, это не будет иметь большого значения для затухания света, но если у вас есть дополнительный вывод с ШИМ, вы просто теряете время с программным подходом.


Как уже отмечали другие:

Вам все еще нужен резистор для ваших цепей, чтобы ограничить ток и напряжение. Вы не можете пропустить это.

Анонимный пингвин
источник
1
Я понятия не имею, что вы подразумеваете под «вычислительной мощностью» (или что-то, что подразумевается под этой фразой). ШИМ работает, потому что он запускается таймерами, которые работают независимо от выполняемого кода.
Baldengineer
@ JamesC4S Я имею в виду, что если вы добавите задержку, код замедлится, и он будет «включен» и «выключен». Процессор может делать столько всего в секунду, пока он не перегрелся, поэтому он контролирует, насколько быстро он работает.
Анонимный Пингвин
@AnnonomusPerson Вам нужно быть намного более ясным в ответах, которые вы даете. Я до сих пор не понимаю, как ваше объяснение связано с «вычислительной мощностью». Например, вы можете написать процедуры ШИМ, которые не используют delay (), например, с помощью millis (), что будет иметь минимальное влияние на скорость выполнения для остальной части кода.
Baldengineer
1
@AnnonomusPerson: Я бы сказал, что есть два способа реализации ШИМ в коде: либо один из них может заставить процессор выполнять ШИМ в цикле, который ничего не делает, кроме как может решить, когда выйти, или же может быть прерывание по таймеру. выполнить ШИМ. В первой ситуации процессор не сможет больше ничего делать, пока происходит ШИМ; в последнем будут ограничения на точность и точность синхронизации ШИМ. Аппаратные схемы ШИМ позволяют микросхеме генерировать чистые сигналы ШИМ, которые с точностью до доли микросекунды выполняют другие действия.
суперкат
Обратите внимание, что благодаря тому, как работает зрение, светодиод с 1/4 постоянного тока (или любым другим соотношением) не обязательно будет отображать соответствующую долю полной яркости.
Игнасио Васкес-Абрамс
7

Распространенное заблуждение относительно выводов ШИМ заключается в том, что при использовании ШИМ нет необходимости использовать токоограничивающие резисторы (например, со светодиодами).

Это неправда. Контакты PWM следует рассматривать как цифровые контакты, которые включаются и выключаются автоматически. Это означает, что они получают то же ВЫСОКОЕ напряжение, что и любой другой контакт.

При использовании светодиодов с ШИМ, вы все равно должны использовать токоограничивающие резисторы. При использовании двигателей с ШИМ, вы должны (почти всегда) использовать транзистор.

baldengineer
источник
2
@ AnnonomusPerson Нет, это не правильно. Вам по-прежнему нужны ограничители тока для светодиодов, даже если у вас есть настоящие аналоговые выходы. Светодиоды нуждаются в источниках постоянного тока, а не в источниках постоянного напряжения.
Baldengineer
3
Вы можете получить светодиоды со встроенным резистором, ограничивающим ток. Я был очень разочарован, когда попросил светодиод в Maplin и подходящий резистор, чтобы он работал на 12 В, когда мне сказали, что у них есть, которые работают от 12 В. Хех, просто подождите, пока они не попытаются упаковать нагрузку транзисторов в одну упаковку, чтобы создать логический элемент ИЛИ или что-то еще.
Эндрю Мортон