Узнать статус, подключен ли коммутатор к arduino или нет?

Я сделал небольшую схему, в которой кнопка подключена к Arduino через выдвижной резистор. Таким образом, всякий раз, когда он нажимается, он подключается к 5 В, в противном случае опускается на землю. это работает нормально, но я хотел бы знать, есть ли какой-нибудь способ определить, подключена ли кнопка к цепи или нет? В случае, если кнопка отключается от цепи, как это обнаружить?

, 👍2

Обсуждение

резистор поперек переключателя ... используйте аналоговый вход, @jsotola

нет... это создало бы уровень напряжения, который зависит от состояния переключателя, @jsotola

другим способом было бы снять выдвижной резистор и подключить переключатель между двумя выводами данных, @jsotola

Кнопка, на которую не нажимают, электрически эквивалентна отсутствию кнопки вообще. Ваш Arduino никогда не сможет определить разницу., @Edgar Bonet

Создайте переключатель dpdt, который использует два резистора для выдачи разных значений для двух положений и использует аналоговый вывод. Тем не менее, у вас есть вероятность, что плавающий ввод просто случайно считывает то же самое, что и одно из этих значений, поэтому он не очень надежен., @Delta_G

@Delta_G вы могли бы добавить подтягивание / опускание на вывод Arduino, чтобы он никогда не плавал., @Gerben

Нет, не тот переключатель, который я описал. Если вы нажмете кнопку подтягивания или опускания, вы не сможете отличить не нажатое нажатие от отключенного. Переключатель, который я описываю, будет иметь два разных аналоговых показания для made или not made. Он никогда не будет читать просто высокий или низкий уровень. Если вы нажмете на описанный мной переключатель вверх или вниз, он не сработает. То, что я описал, требует, чтобы вывод плавал, если он отсоединен, чтобы вы могли сказать, что он был отсоединен., @Delta_G


1 ответ


1

Самый простой способ, как сказал @jsotola, - это поместить резистор на клеммы кнопки SPST и считывать напряжение, используя вход АЦП MCU.

Тем не менее, резистор должен быть подключен к кнопке (или внутри корпуса кнопки), чтобы гарантировать, что, когда, например, вандал вырывает кнопку из вашего коммутатора, резистор обязательно будет с ним, чтобы микроконтроллер мог определить разницу между ВЫСОКИМ, НИЗКИЙ и ОТСУТСТВУЕТ, как указал @EdgarBonet. Вам также необходимо учитывать постоянный ток дополнительного резистора для устройств с низким энергопотреблением / аккумуляторами. Вы могли бы увеличить значения резисторов, но это приводит к слабому подтягиванию / опусканию. Если вы увеличите значение только дополнительного резистора, это приведет к смещению выходного напряжения ближе к напряжению на шине, уменьшая допустимую погрешность.

SPST Push-Button AWOL Detector

Рисунок 1 – Кнопочный детектор самоволки SPST.

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

SPDT Push-Button AWOL Detector

Рисунок 2 – Кнопочный детектор самоволки SPDT.

,