Мониторинг состояния коммутатора (цифровое чтение последовательного порта) - основы Arduino

Попробуйте наш инструмент устранения неполадок





В этих основах Arduino обсуждается метод реализации кода, с помощью которого можно считывать или контролировать состояние ВКЛ или ВЫКЛ внешней кнопки внутри Arduino.

Цифровое чтение последовательного порта

Здесь мы узнаем на примере, как отслеживать состояние переключателя, выполняя последовательную связь через ваш Arduino и ваш компьютер через USB.



Помимо платы Arduino, вам потребуются следующие основные элементы:

Аппаратное обеспечение

Переключатель мгновенного действия, кнопка или переключатель включения.



Резистор 10 кОм, 1/4 ватта

макет
соединительные или перемычки.

Схема работы

Операция может быть выполнена с помощью следующих шагов:

Возьмите 3 куска перемычек и подключите их к плате Arduino. Два провода, красный и черный, идут к двум длинным вертикальным рядам на боковой стороне макета, которые становятся шнурами питания платы для переноса кабеля. на плату требуется 5 В постоянного тока.

Третий провод используется для подключения цифрового вывода 2 к одному из выводов переключателя включения.

Этот вывод кнопки также подключается к понижающему резистору 10 кОм к отрицательной шине питания или к земле. Другой свободный вывод переключателя соединен с плюсом источника питания 5 В.

После выполнения вышеуказанных подключений переключатель переключает или выполняет двойное действие в цепи при нажатии.

Обычно, когда переключатель находится в отключенном положении, два его вывода остаются изолированными, так что вывод, который связан с землей через понижающий резистор, отображает НИЗКИЙ уровень или логический 0.

В нажатом состоянии переключатель выполняет кратковременное замыкание двух своих выводов таким образом, что на его выводы подается напряжение +5 вольт, передавая на них высокий уровень или логическую единицу.

Изоляция распиновки цифровых входов / выходов от всего остального может привести к сбою светодиода и прерывистому миганию. Это связано с тем, что вход не отображается ни на что или находится в `` зависшем '' положении - это означает, что он не предназначен для какой-либо определенной логики, ни высокого, ни низкого (+ 5 В или 0 В), это причина, по которой мы используем понижающий резистор с переключателем.

Схема

Понимание Кодекса

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

На следующем шаге мы запускаем цифровой контакт 2, контакт, который будет отвечать за выход с нажимным переключателем в качестве входа: pinMode (2, INPUT) Это завершает нашу `` настройку '', теперь мы переходим к основному циклу нашего кода .

Здесь при нажатии кнопки через нашу цепь может пройти 5 вольт, в то время как входной контакт соединяется с землей через резистор 10 кОм, когда он не нажат.

Вышеупомянутое - это то, что мы называем цифровым входом, что относится к состоянию, при котором переключатель может находиться только в определенном состоянии либо во включенном состоянии (принимается Arduino как '1' или LOGIC HIGH), либо в выключенном состоянии (визуализировано Arduino как «0» или LOGIC LOW), без каких-либо других неопределенных состояний между ними.

Основное действие, которое нам нужно выполнить в основном цикле программы, - это применить переменную для хранения информации, которая была отправлена ​​с помощью кнопки.

Как обсуждалось выше, когда сигналы имеют форму «1» или «0», здесь мы используем тип данных int. Мы можем назвать эту переменную sensorValue и исправить ее, чтобы она соответствовала всему, что читается на цифровом контакте 2. Все это становится достижимым с помощью одной строки кода:

int sensorValue = digitalRead (2) Как только Arduino прочитает ввод, распечатайте его обратно на компьютер в виде десятичного значения.

Это можно реализовать с помощью команды Serial.println () в заключительной строке кода: Serial.println (sensorValue)

После этого всякий раз, когда Serial Monitor запускается в домене Arduino, мы будем свидетелями цепочки «0», когда кнопка находится в открытом положении, и цепочки «1» в случае, если кнопка удерживается в закрытом состоянии.

/*
DigitalReadSerial
Reads a digital input on pin 2, prints the result to the serial monitor
This example code is in the public domain.
*/
// digital pin 2 has a pushbutton attached to it. Give it a name:
int pushButton = 2

// the setup routine runs once when you press reset:
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600)
// make the pushbutton's pin an input:
pinMode(pushButton, INPUT)
}
// the loop routine runs over and over again forever:
void loop() {
// read the input pin:
int buttonState = digitalRead(pushButton)
// print out the state of the button:
Serial.println(buttonState)
delay(1) // delay in between reads for stability
}




Предыдущая статья: Индивидуальный контроллер расхода воды со схемой таймера Далее: Преобразование аналогового сигнала в цифровое (аналоговое считывание последовательного порта) - основы Arduino