Чтение цифрового входа и вывод результатов на монитор

Этот пример показывает как следить за состоянием кнопки используя последовательный интерфейс связи между Arduino и ПК.

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

- плата Arduino
- кнопка
- резистор 10 кОм
- макетная плата (Breadboard)
- провода для соединений

Электрическая цепь:



плата arduino

Соедините три провода с Arduino. Первые два (красный и черный) присоедините к двум длинным вертикальным рядам на краю макетной платы для получения доступа к 5 вольтам питания и земли. Третий вывод идет от цифрового вывода 2 к одному из выводов кнопки. Этот же вывод кнопки подсоединен через стягивающий резистор (10кОм) к земле. Второй вывод кнопки подсоединен к 5 вольтам питания.
При нажатии кнопки соединяются две точки цепи. Когда кнопка не нажата нет никакой связи между двумя ее выводами, так что вывод подключен к земле через стягивающий резистор и находится в состоянии LOW. При нажатии на кнопку устанавливается соединение между двумя выводами, подключается 5 вольт и вывод 2 переходит в состояние HIGH, или 1.
Если не использовать резистор и оставить вывод 2 неподключенным, то напряжение на нем будет изменяться хаотично. Это приведет к случайному формированию на выводе 2 напряжения высокого или низкого уровня. Поэтому необходим стягивающий резистор.

Схема:

схема

Код:

Первым делом нужно в функции настройки включить последовательную передачу данных между ПК и Arduino со скоростью 9600 бит в секунду следующей строкой:
Serial.begin(9600);

Далее инициализируем вывод 2. Он должен читать состояние кнопки, тобто быть настроенным как вход:
pinMode(2,INPUT);

Теперь, когда установки завершены, переходим к основному циклу вашего кода. Когда кнопка нажата, 5 вольт будут свободно проходить через цепь, а когда она не нажата вход будет соединен с землей через резистор 10 кОм. Это цифровой вход, а значит он может быть только во включенном состоянии (читается вашим Arduino как 1 или HIGH) или в выключенном состоянии (читается вашим Arduino как 0 или LOW). Промежуточных состояний не существует.
Первое что нужно сделать в основном цикле это создать переменную для хранения информации поступающей от кнопки. Поскольку сигнал, приходящий от кнопки может иметь только значения «1» или «0», вы можете использовать целочисленный тип данных int. Назовем эту переменную sensorValue и присвоим ей значение, равное значению считанному с входа 2. Вы можете сделать это с помощью следующей строки:
int sensorValue = digitalRead(2);

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

Теперь, когда вы откроете ваш монитор последовательной передачи (Serial Monitor в среде Arduino), вы сможете увидеть последовательность нулей, когда кнопка разомкнута и последовательность единиц, когда кнопка замкнута.

Полный текст программы:

/*

  DigitalReadSerial

 Читает состояние цифрового входа 2, выводит результат на монитор

  */

 

// цифровой вход 2 присоединен к кнопке. Назовем его:

int pushButton = 2;

 

// проведем необходимые установки:

void setup() {

  // инициализируем последовательную передачу данных со скоростью 9600 бит в секунду:

  Serial.begin(9600);

  // назначим вывод 2 входом:

  pinMode(pushButton, INPUT);

}

 

// основной цикл:

void loop() {

  // читаем значение на входе:

  int buttonState = digitalRead(pushButton);

  // выводизначениенамонитор:

  Serial.println(buttonState);

  delay(1);        // задержка для стабильного считывания

}




Собирайте arduino своими руками - полный каталог плат