Использование аналогового входа для чтения кнопки
Я работаю над проектом, в котором использую множество контактов Arduino; У меня закончилось большинство контактов, и мне нужно прочитать значение кнопки.
Можно ли прочитать значение переключателя в аналоговых пинах на плате??
Если да, то как это реализовать?
@JacobCaldwell, 👍2
1 ответ
Можно ли прочитать значение переключателя в аналоге в пинах на доске??
Как говорят другие ответы, вы можете использовать digitalRead на большинстве аналоговых контактов. Но чтобы ответить на вопрос: да, вы можете читать аналоговый вход, что полезно для таких контактов, как A6/A7, которые нельзя использовать в качестве цифровых контактов.
Вы должны соединить контакт с подтягивающим резистором — для контактов Arduino A0-A5 (в зависимости от платы, я имею в виду Nano) это можно сделать внутренне, используя:
pinMode(5, INPUT_PULLUP); // Включаем внутренний подтягивающий резистор на контакте 5
Если вы работаете с контактами A6/A7, вы не можете получить доступ к внутреннему подтягивающему резистору, поэтому вам необходимо добавить свой собственный, чтобы предотвратить плавающий вход. Резистор номиналом 10 КБ должен ставиться между входным контактом и VCC.
Наконец, пример чтения входных данных:
const int buttonPin = A7; // номер контакта кнопки
const int ledPin = 13; // номер контакта светодиода
void loop() {
// читаем состояние значения кнопки:
buttonState = analogRead(buttonPin);
Serial.println(buttonState);
// проверяем, нажата ли кнопка. Если это так, то состояние кнопки ВЫСОКОЕ:
if (buttonState > 512) {
// включаем светодиод:
digitalWrite(ledPin, HIGH);
} else {
// выключаем светодиод:
digitalWrite(ledPin, LOW);
}
}
- Преобразование строки в массив символов
- Как работать с аналоговыми контактами в цикле?
- Можно ли использовать цифровые контакты в качестве выхода ШИМ?
- Bluetooth-модуль HC-05 не принимает AT-команды
- Двоичный в десятичный с использованием побитовых операторов
- Объединение кода для нескольких датчиков в одной программе
- Неверные показания аналогового термистора
- Использование модуля JYETech 2.4 Inch LCD Display Screen Module с Arduino?