Почему я не могу использовать только цифровые контакты и землю для использования потенциометра?

Во-первых, я новичок. Так что, пожалуйста, извините.

После выполнения первого базового проекта, в котором я подключил положительный светодиод к цифровому входу Arduino и отрицательный к земле платы, я предполагаю, что цифровые контакты в Arduino являются положительными (они 5v?).

Так почему же потенциометр не может быть подключен таким же образом?

Спасибо.

, 👍4

Обсуждение

Энкодер с поворотной ручкой может сделать свое дело. Он очень похож на потенциометр, но может считываться цифровыми выводами., @Paul


6 ответов


6

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

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

Чтобы понять смысл потенциометра, вы должны подключить выход к аналоговым контактам, и он даст вам 10-битное число, чем выше это число, тем ближе выходное напряжение потенциометра к 5 В (или независимо от того, что вы установили аналоговое опорное напряжение, но не беспокойтесь о АРЕФ контакт на данный момент).

Цифровые контакты либо включены, либо выключены, между ними ничего нет, поэтому они не работают для этого приложения

На этой странице есть отличное руководство пользователя потенциометра: https://www.arduino.cc/en/Tutorial/Potentiometer

,

Что значит “сообщает свой логин”?, @James Waldby - jwpat7

@jwpat7 Это была опечатка, я собирался "сообщить свою логику", но я изменил ее на "сообщить свою позицию", чтобы быть более ясным. Я пытаюсь сказать, что цифровой поворотный энкодер сообщит Arduino, как далеко он повернут через цифровой сигнал (пакет единиц и нулей), тогда как потенциометр сообщит Arduino его положение через изменение выходного напряжения., @Joel


3

Я подключил положительный светодиод к цифровому входу arduino, а отрицательный - к земле платы.

Тебе не следовало этого делать. Это повреждает как светодиод, так и Arduino.

Уход и питание светодиодов

Поэтому я предполагаю, что цифровые контакты в arduino положительные (они 5 В?).

Да и да (при условии, что Arduino 5V).

Так почему же горшок не может быть подключен таким же образом?

Банк имеет 3 терминала, так что я не совсем понимаю, что вы под этим подразумеваете. Вы собираетесь подключить их к земле, цифровому контакту и чему еще?


Обычно вы подключаете один конец горшка к земле, другой - к +5 В, а среднюю клемму - к одному из аналоговых входов. Затем, когда вы поворачиваете горшок, напряжение на аналоговом входе изменяется где-то между 0В и 5В.


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

,

1

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

Я подключил позитив светодиода к цифровому входу

Цифровой вывод Arduino как cofigurable как вход или выход, если вы используете его в качестве входа, вам нужно использовать этот вывод для считывания цифрового значения (0 или 1), например кнопки. При настройке вывода PIN вы можете установить высокое (~ 5 В) или низкое (0 В) значение.

,

2

Я предполагаю, что цифровые контакты в Arduino положительные (они 5 В?).

На Arduino 5V, когда вывод GPIO установлен на выход и переключен ВЫСОКО, тогда да, это (почти) 5V. Когда переключатель НИЗКИЙ, он (почти) 0В или GND. Когда он установлен на ВХОД, он не является ни тем, ни другим - он "высокоимпедансен" и воспринимает напряжение на выводе, используя набор порогов.

Когда напряжение, подаваемое на вывод, превышает высокий порог (известный как VIH), вывод воспринимает его как логический МАКСИМУМ, и digitalRead() сообщает об этом как о таковом. Когда подаваемое напряжение ниже низкого порога (известного как VIL), вывод воспринимает его как логический МИНИМУМ, и digitalRead() сообщает об этом как о таковом.

Так почему же потенциометр не может быть подключен таким же образом?

Так что да, вы можете подключить потенциометр к цифровому контакту так же, как и к аналоговому контакту (один контакт к + 5 В, один контакт к земле и средний контакт "стеклоочистителя" к цифровому входу):

Когда вы поворачиваете его, вместо того чтобы считывать значение от 0 до 1023, как на аналоговом выводе, вы получаете либо ВЫСОКИЙ, либо НИЗКИЙ уровень в зависимости от того, как далеко вы повернули ручку и в каком направлении. В области посередине вы прочтете "кто знает?" - то есть, может быть, ВЫСОКО, может быть, НИЗКО, в зависимости от погоды и самого контакта.

Обратите внимание, что подключение потенциометра таким образом к контакту, установленному для вывода, опасно (не для вас, а для Arduino) и может повредить внутреннюю схему вывода GPIO, когда горшок поворачивается полностью в ту или иную сторону, так как это создает мертвое короткое замыкание либо для вас, либо для Arduino. заземление или + 5 В, а сам вывод GPIO, когда он находится в режиме вывода, также подключен внутренне либо к земле, либо к + 5 В.

Некоторые контакты на микроконтроллерах (не уверен насчет Arduino) имеют триггерные входы Шмитта. Они избегают вопроса "кто знает?". область путем переключения входного ВЫСОКОГО или НИЗКОГО уровня в зависимости от того, когда напряжение проходит пороговое значение. Для того чтобы вывод перешел с НИЗКОГО уровня на ВЫСОКИЙ, напряжение должно быть выше высокого порога. Чтобы затем снова переключиться на сообщение о НИЗКОМ уровне, он должен полностью опуститься до низкого порога. Любое напряжение между двумя порогами полностью игнорируется, а предыдущее состояние сохраняется.

,

Да, ATmegas действительно имеют триггеры Шмитта на своих входах, как указано в таблице данных., @Edgar Bonet


1

Это зависит от того, чего вы пытаетесь достичь. Если вы установите контакт в качестве выхода и включите его, то сможете использовать его в качестве источника питания 5в. Это часто делается, когда вы хотите, чтобы программное обеспечение могло включать / выключать какую-то часть вашей системы. Если это то, что вы хотите, вы можете поставить горшок или любой другой компонент вниз по течению до тех пор, пока он не попытается вытянуть слишком много энергии. Подробнее об этом читайте в этом посте

Если вы пытаетесь прочитать "значение" банка, он будет работать как переключатель включения / выключения, потому что это цифровой вывод. Цифра означает 0 или 1. Когда напряжение будет достаточным, оно будет регистрироваться как 1, как только напряжение станет достаточно низким, оно будет регистрироваться как ноль. Если вы хотите считывать полный диапазон значений из банка, вам придется использовать аналоговый вывод.

,

1

Аналоговый на цифровом контакте даст, 0: от мин до половины пути и 1: от половины пути до конечного положения Вы можете использовать его, если это соответствует вашей логике программы.

,

Это неверно. Возможно, вам захочется ознакомиться с диапазонами напряжений для логических уровней. Sparkfun предлагает [базовый учебник] (https://learn.sparkfun.com/tutorials/logic-levels )., @sempaiscuba