Демонстрация использования INPUT_PULLUP с pinMode()

Этот пример демонстрирует использование INPUT_PULLUP с pinMode(). Он отслеживает состояние переключателя, устанавливая соединение между вашим Arduino и вашим компьютером через USB.

Когда вход HIGH, встроенный светодиод, подключенный к пину 13, включится; когда LOW, светодиод выключится.

Необходимое оборудование:

  • Плата Arduino
  • Моментальный переключатель, кнопка или тумблер
  • Макетная плата
  • Провод для подключения

Подключение

Схема: Подключите два провода к плате Arduino. Черный провод подключает землю к одной ножке кнопки. Второй провод идет от цифрового пина 2 к другой ножке кнопки.

Кнопки или переключатели соединяют две точки в цепи, когда вы нажимаете их. Когда кнопка открыта (не нажата), между двумя ножками кнопки нет соединения. Поскольку внутренний подтягивающий резистор на пине 2 активен и подключен к 5V, мы читаем HIGH, когда кнопка открыта. Когда кнопка закрыта, Arduino читает LOW, потому что замыкается соединение с землей.

Код
В программе ниже, самое первое, что вы делаете в функции setup, - начинаете соединение, со скоростью 9600 бод данных в секунду, между вашим Arduino и вашим компьютером с помощью строки
Serial.begin(9600);

Затем инициализируйте цифровой пин 2 как вход с включенным внутренним подтягивающим резистором
pinMode(2,INPUT_PULLUP);

Следующая строка делает пин 13, со встроенным светодиодом, выходом
pinMode(13, OUTPUT);

Теперь, когда ваша настройка завершена, перейдите в основной цикл вашего кода. Когда ваша кнопка не нажата, внутренний подтягивающий резистор подключается к 5 вольтам. Это заставляет Arduino считывать “1” или HIGH. Когда кнопка нажата, пин Arduino подтягивается к земле, что заставляет Arduino считывать “0” или LOW.

Первое, что вам нужно сделать в основном цикле вашей программы, - это установить переменную для хранения информации, поступающей от вашего переключателя. Поскольку информация, поступающая от переключателя, будет либо “1”, либо “0”, вы можете использовать тип данных int. Назовите эту переменную sensorValue и установите ее равной тому, что считывается на цифровом пине 2. Вы можете выполнить все это с помощью одной строки кода
int sensorValue = digitalRead(2);

После того как Arduino прочитал вход, заставьте его распечатать эту информацию обратно на компьютер в виде десятичного (DEC) значения. Вы можете сделать это с помощью команды Serial.println() в нашей последней строке кода
Serial.println(sensorValue, DEC);

Теперь, когда вы откроете Serial Monitor в Arduino IDE (щелкнув значок справа от верхней зеленой полосы или нажав Ctrl+Shift+M), вы увидите поток “0”, если ваш переключатель закрыт, или “1”, если ваш переключатель открыт.

Светодиод на пине 13 будет светиться, когда переключатель HIGH, и выключаться, когда LOW.

void setup() {
  // устанавливаем соединение:
  Serial.begin(9600);
  // инициализируем цифровой пин 2 как вход с включенным внутренним подтягивающим резистором:
  pinMode(2, INPUT_PULLUP);
  // делаем пин 13, со встроенным светодиодом, выходом:
  pinMode(13, OUTPUT);
}

void loop() {
  // устанавливаем переменную для хранения информации, поступающей от вашего переключателя:
  int sensorValue = digitalRead(2);
  // выводим эту информацию обратно на компьютер в виде десятичного значения:
  Serial.println(sensorValue, DEC);
  // светодиод на пине 13 будет светиться, когда переключатель HIGH, и выключаться, когда LOW:
  digitalWrite(13, sensorValue);
}
1 лайк