Лабораторная работа 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);
}
Do'stlaringiz bilan baham: |