Функции
Цифровой ввод/вывод
Рассмотрим функции цифрового ввода/вывода:
pinMode();
digitalWrite();
digitalRead().
Функция pinMode
Устанавливает режим работы заданного входа/выхода (pin) как входа или как выхода.
Синтаксис:
pinMode(pin, mode);
Параметры:
❒ pin — номер входа/выхода (pin), который вы хотите установить;
❒ mode — режим. Одно из двух значений: INPUT или OUTPUT устанавливает на вход или выход соответственно.
Пример:
int ledPin = 13; // Светодиод, подключенный к входу/выходу 13 void setup()
{
pinMode(ledPin, OUTPUT); // устанавливает режим работы - выход
}
Функция digitalWrite()
Подает HIGH или LOW значение на цифровой вход/выход (pin).
Если вход/выход (pin) был установлен в режим выход (OUTPUT) функцией pinMode(), то для значения HIGH напряжение на соответствующем входе/выходе (pin) будет 5 В (3,3 В для плат 3,3 В) и 0 В (земля) для LOW.
Если вход/выход (pin) был установлен в режим вход (INPUT), то функция digitalWrite со значением HIGH будет активировать внутренний нагрузочный резистор 20 K. Подача LOW в свою очередь отключает этот резистор. Нагрузочного резистора достаточно, чтобы светодиод, подключенный к входу, светил тускло. Если вдруг светодиод работает, но очень тускло, возможно необходимо установить режим выход (OUTPUT) функцией pinMode().
Синтаксис: digitalWrite(pin, value); Параметры:
❒ pin — номер входа/выхода (pin);
❒ value — значение HIGH или LOW.
Пример.
int ledPin = 13; // Светодиод, подключенный к входу/выходу 13 void setup()
{
pinMode(ledPin, OUTPUT); // устанавливает режим работы – выход
}
void loop()
{
digitalWrite(ledPin, HIGH);
// включает светодиод
delay(1000);
// ждет секунду
digitalWrite(ledPin, LOW);
// выключает светодиод delay(1000);
// ждет секунду
}
Функция digitalRead()
Функция считывает значение с заданного входа: HIGH или LOW.
Синтаксис:
digitalRead(pin);
Параметр: pin — номер входа/выхода (pin), который вы хотите считать.
Пример
int ledPin = 13; // Светодиод, подключенный к входу/выходу 13
int inPin = 7; // кнопка на входе 7
int val = 0; // переменная для хранения значения void setup()
{
pinMode(ledPin, OUTPUT); // устанавливает режим работы - выход для 13
pinMode(inPin, INPUT); // устанавливает режим работы - вход для 7
}
void loop()
{
val = digitalRead(inPin); // считываем значение с входа
digitalWrite(ledPin, val); // устанавливаем значение на светодиоде
// равным значению входа кнопки
}
ЗАМЕЧАНИЕ
Если вход не подключен, то digitalRead может возвращать значения HIGH или LOW случайным образом. Аналоговые входы (analog pins) могут быть использованы как цифровые входы/выходы (digital pins). Обращение к ним идет по номерам от 14 (для аналогового входа 0) до 19 (для аналогового входа 5).