Цифровые контакты ввода-вывода


Download 145.61 Kb.
Sana20.04.2020
Hajmi145.61 Kb.
TuriЛабораторная работа

Лабораторная работа 2

Тема: Цифровые контакты ввода-вывода

Цель работы: Изучение цифровые контакты ввода-вывода

Цифровые линии ввода/вывода Arduino

Цифровые входы и выходы на Arduino – это то, что позволяет подключать датчики, исполнительные механизмы и другие микросхемы и модули к Arduino. Изучение того, как их использовать, позволит вам задействовать Arduino для выполнения некоторых действительно полезных вещей, таких как считывание входов переключателя, активации индикаторов и управления релейными выходами.



Цифровые сигналы

В отличие от аналоговых сигналов, которые могут принимать любое значение в определенном диапазоне, цифровые сигналы имеют лишь два разных значения: высокое логическое состояние HIGH (1) или низкое логическое состояние LOW (0). Эти цифровые сигналы применяются в ситуациях, когда вход или выход будет иметь одно из этих двух значений. Например, одним из способов использования цифрового сигнала является включение или выключение светодиода.



Функции работы с цифровыми портами Arduino

Функции Arduino, связанные с цифровыми линиями, которые мы будем использовать в данном материале, следующие: pinMode(), digitalRead(), digitalWrite().

Функция pinMode (pin_number, mode): Поскольку цифровые линии Arduino могут использоваться для ввода или вывода, вы должны сначала сконфигурировать контакты, которые вы собираетесь использовать для цифрового ввода-вывода. Здесь pin_number это номер контакта, который вы хотите настроить. Режим mode должен принимать одно из трех значений: INPUT, OUTPUT, INPUT_PULLUP. Когда для режима установлено значение INPUT_PULLUP, подтягивающий резистор 20 КОм внутренне подключен к выходу, чтобы заставить вход быть в состоянии HIGH, если ничего не подключено к линии.

Функция digitalWrite(pin_number,value): Эта функция записывает цифровое значение в регистр линии. Аргумент pin_number определяет номер этой линии, а value это выходное значение, то есть HIGH или LOW.

Функция digitalRead(pin_number): Эта функция считывает цифровое значение с линии под номером pin_number. Она возвращает одно из двух значений: HIGH или LOW.

Эксперимент 1: мигаем светодиодом с помощью цифровых линий Arduino

В этом эксперименте мы будем включать и выключать светодиод с помощью цифрового выхода Arduino с использованием задержки. Схема подключения светодиода к Arduino показана ниже.





Как показано на рисунке, светодиод подключается к цифровому выводу 8 платы Arduino Uno через резистор 220 Ом. Резистор ограничивает ток, протекающий через светодиод. В приведенной ниже программе сначала вывод 8 настраивается на выход OUTPUT, а затем устанавливает в состояние HIGH в течение 1000 мс, а затем в LOW в течение еще 1000 мс.

Как показано на рисунке, светодиод подключается к цифровому выводу 8 платы Arduino Uno через резистор 220 Ом. Резистор ограничивает ток, протекающий через светодиод. В приведенной ниже программе сначала вывод 8 настраивается на выход OUTPUT, а затем устанавливает в состояние HIGH в течение 1000 мс, а затем в LOW в течение еще 1000 мс.
Эксперимент 2: управляем светодиодом нажатием кнопки

Этот эксперимент не только демонстрирует, как использовать цифровой выход, но и цифровой вход. При нажатии кнопки, подключенной к цифровому входу, включается или выключается светодиод. В программе используются функции digitalWrite() и digitalRead(). Схема подключения представлена ниже.


Как видно из рисунка выше, мы теперь используем два цифровых ввода-вывода Arduino. Светодиод подключается к контакту 8, который сконфигурирован как OUTPUT. К контакту 9 подключена кнопка, которая настроена как INPUT. Когда кто-то нажимает этот кнопочный выключатель, контакт 9 устанавливается в HIGH, и программа затем устанавливает вывод 8 в HIGH и включает светодиод. Отпускание кнопки сбрасывает вывод 9 в LOW. Затем программа устанавливает вывод 8 в LOW, что отключает светодиод. Код (скетч) представлен ниже.




const int led = 8;

const int button = 9;

void setup()

{

pinMode(led,OUTPUT);

pinMode(button,INPUT);

}

void loop()

{

int reads = digitalRead(button);

digitalWrite(led,reads);

}
Download 145.61 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2020
ma'muriyatiga murojaat qiling