Если условие для переключателя не работает должным образом
Я пытаюсь написать простую программу для управления одним светодиодом с помощью двух переключателей.
Если какой-либо из переключателей нажат, я хочу включить светодиод.
Однако мой светодиод всегда горит, даже если ни один из переключателей не нажат. Почему это могло случиться?
Спасибо!
https://www.tinkercad.com/things/7SRoEXkHRqh-one-led-two-switches -
@codePhod, 👍2
Обсуждение2 ответа
Трудно сказать, какие контакты переключателя что делают. Поскольку ваши входы настроены как ВХОДНЫЕ (вместо INPUT_PULLUP), у вас должен быть резистор (скажем, 10k Ω), связывающий эти контакты с землей. Затем другой конец переключателя должен подключиться к + 5V. Не подключайте коммутаторы как к +5 В, так и к земле.
Используйте мультиметр на непрерывности, чтобы убедиться, что контакты используемого переключателя нормально разомкнуты и закрываются при нажатии переключателя. С 4 контактами легко запутаться в том, какой контакт переключателя что делает.
Легко перепутать контакты этих однополюсных кнопок - я до сих пор это делаю. Для такого рода кнопок требуется всего два штифта. Два дополнительных элемента предназначены для механической устойчивости платы ПК.
Положите пуговицу на одну из ее сторон:
Если два верхних штифта выходят из верхнего края, эти штифты переключаются - либо разомкнуты, либо закорочены кнопкой. То же самое для двух нижних булавок.
Если вместо этого два верхних штифта выходят из противоположных краев, то эти два буквально представляют собой один кусок провода, проходящий через рамку кнопки, и поэтому всегда замыкаются друг на друга. Эти два штифта вместе открыты относительно двух нижних штифтов, когда кнопка отпущена, или закорочены относительно двух нижних штифтов, когда кнопка нажата.
Обновление:
Я, вероятно, не запомню вашу информацию в следующий раз, когда мне понадобится использовать один из этих переключателей, так что мне все равно придется просто проверить его ... :(
Спасибо, @Duncan C. Я, наверное, сделал это сложнее, чем нужно! Как насчет:
Каждая пара штифтов представляет собой плоскую металлическую полоску, согнутую так, чтобы пройти через корпус переключателя, и каждый ее конец направлен вниз на печатную плату; примерно в форме буквы "С". Если посмотреть на один из штифтов, то можно увидеть только один другой штифт, который может быть его другим концом, потому что вы можете согнуть плоскую полоску только к одной из его граней, а не к краю.
Это полезная информация о том, как выяснить, какие контакты переключаются, а какие подключены. Я просто использую мультиметр, чтобы выяснить это. Я, вероятно, не запомню вашу информацию в следующий раз, когда мне понадобится использовать один из этих переключателей, так что мне все равно придется просто проверить его ... :(, @Duncan C
- Arduino Uno: avrdude: stk500_recv(): программатор не отвечает
- В чем разница между delay() и delaymicroseconds()
- Программирование Arduino на Паскале?
- Как реализовать Arduino NANO в качестве адаптера RS-232 к USB (или нужен Arduino Mega?) Для связи с 3D принтером
- Выход 3,3 В при установке вывода на высокий уровень
- Может ли Arduino UNO постоянно хранить код?
- Использование библиотеки Arduino fix_fft или arduinoFFT для фильтрации определенного звука?
- Как сгенерировать файлы .a и .so для добавления в проект arduino
входные контакты напрямую подключены к 5 В, так как кнопка имеет непосредственно подключенные контакты по бокам (настоящая кнопка находится между правой и левой). переместите два красных провода вверху, которые идут к входным контактам, на правую сторону переключателей (выше того места, где подключены резисторы). Если это сработает, я напишу ответ, @chrisl
Теперь, когда вы изменили схему, она, кажется, работает. Это правильно?, @chrisl