Контроль положения контактов 3-х позиционного переключателя с помощью Ардуино

В данной статье я покажу, как определять положение 3-х позиционного переключателя с помощью одного аналогового входа Ардуино.

3-х позиционный переключатель (иногда называемый ON-OFF-ON (ВКЛ-ВЫКЛ-ВКЛ) или SPTT) имеет 3 вывода: общий (в центре) и два боковых вывода. Когда рычажок переключателя находится вверху или внизу, общий вывод соединяется с одним из выходных контактов; когда рычажок находится в центральном положении, то общий вывод не подсоединен (висит в воздухе).

Благодаря лишь двум резисторам вы можете считывать положение рычажка с использованием аналогового входа AN0 PIN:

Для понимания работы схемы давайте проследим, что происходит в различных 3-х положениях рычажка переключателя:

  • Когда рычажок находится в центральном положении (2), аналоговый вход AN0 PIN подсоединен к напряжению 5В через резистор R1 (подтягивающий резистор): считываемое значение составляет около 1023
  • Когда рычажок находится в верхнем положении (3), аналоговый вход AN0 PIN подсоединен к делителю напряжения (резисторы R1 и R2). Если эти два резистора имеют одинаковое сопротивление, тогда напряжение на входе AN0 PIN составляет 2.5В и считываемое значение составляет 512
  • Когда рычажок находится в нижнем положении (1), аналоговый вход AN0 PIN подсоединен к земле; считываемое значение составляет 0.

Скетч проекта очень простой:

#define BUTTON_PIN A0
int previousState;

void setup() {

Serial.begin(9600);
previousState = 0;
}

void loop() {

int analogValue = analogRead(BUTTON_PIN);

int actualState;
if(analogValue < 100) actualState = 1;
else if(analogValue < 900) actualState = 3;
else actualState = 2;

if(previousState != actualState) {

previousState = actualState;
Serial.print(«Button state: «);
Serial.println(actualState);
}
}

Я добавил порог чувствительности для считываемых значений.

Демо

Собранная схема также очень простая, ее можно собрать на макетной плате:

Оригинал статьи

Добавить комментарий

Ваш адрес email не будет опубликован.