Как установить не подключенный контакт на землю или низкий уровень

У меня есть цифровой контакт 7, когда он установлен на высокий уровень, а когда установлен на низкий уровень, этого не происходит.

Единственный способ добиться постоянного высокого или низкого уровня — это использовать 2-позиционный 3-контактный переключатель с моим контактом 7 посередине и заземлением с одной стороны и 5 В с другой.

Можно ли использовать простой переключатель "Открыть/Закрыть" и при этом получить ту же функцию?

На данный момент, если я не "подтягиваю" контакт 7 к земле, я открываюсь и закрываюсь случайным образом.

, 👍0

Обсуждение

Вы настроили контакт как вход? Пожалуйста, предоставьте код и схему подключения. Неподключенный контакт, установленный как вход, улавливает случайный шум, поэтому быстро меняет состояние., @chrisl

Да, контакт установлен на вход, можно ли переделать схему, чтобы она не улавливала шум, когда она разомкнута?, @Sharpie15

output+dwrite(low) не заземляет его?, @dandavis


1 ответ


Лучший ответ:

1

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

Либо добавьте (внешний) подтягивающий резистор. Или переверните все и используйте внутренний подтягивающий резистор внутри ATMega328p. Затем подключите другую сторону переключателя к GND. Всякий раз, когда переключатель нажат, ваш digitalWrite дает вам НИЗКИЙ уровень.

Чтобы использовать внутреннее подтягивание, используйте pinMode(7, INPUT_PULLUP);

,

Это сработало отлично, спасибо за совет, это было очень полезно., @Sharpie15