Реклама ⓘ
Главная » Arduino
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Реклама ⓘ

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

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

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

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

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

  • Когда рычажок находится в центральном положении (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);
  }
}

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

Демо

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

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

Теги:

Опубликована: 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (1) | Я собрал (0) | Подписаться

0
Олег #
одинаковое условие
if(analogValue < 100) actualState = 1;
else if(analogValue < 900) actualState = 3;,
для обеих случаев оно "true" если значение
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическое сопротивление?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Модуль измерения тока на ACS712 (30А)
Модуль измерения тока на ACS712 (30А)
Металлоискатель MD3010II Конструктор - Гитарная педаль Remote Delay 2.5
вверх