Подключение нескольких кнопок к одной аналоговой ножке

Цель этой статьи – показать как подключить несколько кнопок (для пользовательского ввода), использую только один аналоговый вход. Это позволит оставить остальные цифровые I/O пины для других задач, например, для подключения LCD дисплея и т.д.

Для этого прежде всего нужно знать как использовать функцию analogRead ().

В этой статье мы покажем как считывать отдельные нажатия кнопок.

Напомним, контакт любого (с ножки А0 по А5) аналогового входа подключен к аналого-цифровому преобразователю (АЦП) в микроконтроллере Arduino. Он имеет разрядность десять бит, и может возвращать численное значение от 0 до 1023, которое связано с аналоговым напряжением от 0 до 5 вольт.

Если вы заранее знаете, что нужно будет измерять напряжение заведомо меньшей величины, то можно изменить опорное напряжение (с которым сравнивается, эталонное) с помощью функции analogReference.

void setup() {
  Serial.begin(9600); // настраиваем обмен данными с COM-портом
  pinMode(A0,INPUT_PULLUP); // включаем подтягивающий резистор
}

void loop() {
  Serial.println(analogRead(0)); // считываем показания с 0 аналоговой ножки
  delay(100);                    // небольшая задержка
}

аналоговая картинка

Результат в виде графика

2016-03-24 14-03-11 Скриншот экрана

У нас использовались резисторы на 3,3 кОм (лучше раза в 2-3 больше) и ступенька вышла не очень заметная, но программно\визуально однозначно различимая.

 

Закладка Постоянная ссылка.

Комментарии запрещены.