Как подключить кнопку Big Dome Button к Arduino
Я новичок в arduino, и для проекта я хочу использовать большую куполообразную кнопку, которая при нажатии будет считать, сколько раз было нажато. Она использует 12 вольт. Эта кнопка https://www.sparkfun.com/products/9181
@Veselin, 👍0
Обсуждение1 ответ
Лучший ответ:
Как уже говорили другие, 12 В питают внутренний светодиод коммутатора.
ИЗМЕНИТЬ:
Коммутаторам не требуется питание. Если вы пропустите полное питание переключателя, он все равно будет работать, но не загорится.
Конец редактирования:
Если вы хотите, чтобы переключатель загорелся, подключите вход V к 12 В, или, если вы подключите его к 5 В, он будет тусклым, но, возможно, все еще светится. (У вас наверняка есть контакт 5 В на плате Arduino. Использование этого означает, что вам не нужен отдельный источник питания 5 В.)
Теперь подключите один провод переключателя к цифровому входу, а другой к земле.
Затем установите контакт переключателя в режим INPUT_PULLUP
. Теперь ваш переключатель будет отображаться как ВЫСОКИЙ, пока он не будет нажат, затем он будет отображаться как НИЗКИЙ.
создайте переменную в верхней части кода с именем buttonState:
byte buttonState = HIGH;
Также определите беззнаковую длинную переменную nextReadMillis:
unsigned long nextReadMillis = 0;
и переменная pressCount:
unsigned int pressCount = 0;
И определите debounceTime:
#define debounceTime 50
В своем цикле сделайте что-то вроде этого:
void loop() {
//Получить новый millis(значение)
unsigned long newMillis = millis();
// смотрим на новое значение кнопки, только если прошло достаточно времени.
if (newMillis >= nextReadMillis) {
byte newButtonState = digitalRead(buttonPin);
// Делать что-то, только если состояние кнопки изменилось
if (buttonState != newButtonState) {
buttonState = newButtonState;
nextReadMillis = newMillis + debounceTime;
//Если кнопка сейчас находится в нажатом (LOW) состоянии, увеличиваем счетчик
if (buttonState == LOW) {
pressCount++;
}
}
}
}
Это псевдокод. Вероятно, в нем есть синтаксические ошибки. Это не предназначено для копирования/вставки. Используйте его в качестве руководства для вашего проекта.
Код, использующий millis()
, является версией "программного подавления дребезга." Электрические переключатели склонны к «дрожанию». или "отскок" между их включенным и выключенным состояниями очень быстро при первом нажатии/отпускании. Проверяя изменения состояния только после небольшой задержки, вы игнорируете дрожание показаний.
Обратите внимание: если вы хотите, чтобы светодиод загорался только при нажатии кнопки, вы можете управлять им с помощью другого цифрового контакта. Вы бы назначили другой вывод для управления выходом светодиода, установили этот вывод в режим OUTPUT и переключили вывод в зависимости от состояния кнопки внутри тела оператора if (buttonState != newButtonState)
if.
Если ваш светодиод потребляет ≤20 мА при напряжении 5 В, вы можете подключить его напрямую к выходному контакту. Если он потребляет больше, вам понадобится транзистор, чтобы управлять им, чтобы вы не потребляли слишком много тока с выходного контакта и не сожгли его. Однако подключение драйвера транзистора выходит за рамки этой статьи.
- Определение того, была ли нажата и отпущена кнопка
- Хорошая кнопка debouncing/Библиотека StateChange
- Остановить мигание светодиодов
- Интеграция 2 кнопок для включения и выключения светодиода.
- Код Arduino для управления 4 светодиодами с 4 кнопок
- Нужен ли подтягивающий/понижающий резистор для цепи светодиода кнопки?
- Как прервать функцию цикла и перезапустить ее?
- Как перезапустить счетчик в программе с помощью кнопки в настройке LDR Tripwire
коммутатору не нужно напряжение. 12 В для светодиодного индикатора. Вы можете подключить микропереключатель, как и любую кнопку, @Juraj
Я просмотрел их демонстрационное видео https://www.sparkfun.com/news/874 (@3:05) и не нашел ничего о 12-вольтовом светодиодном драйвере. Если у вас уже есть эта кнопка, просто открутите ее и посмотрите на светодиод. Подсчет и отображение очков не имеют ничего общего с аппаратной частью кнопок., @DataFiddler
Дополнительная информация от sparkfun: > «Они используют светодиод на 12 В для освещения, но мы обнаружили, что он отлично работает и при напряжении 5 В, хотя и немного тусклее». Читаю: откручивай, ищи резистор или замени светодиод на настоящий и свой резистор. За пластиковый мусор берут 12$, за "электронику" - бесплатно., @DataFiddler