Описание
Отправляет на цифровой контакт значение HIGH или LOW.
Если функцией pinMode() контакт был установлен в режим выход (OUTPUT), то для значение HIGH напряжение на нем будет 5В (3.3В для 3.3V плат), и 0В(земля) для LOW.
Если контакт был установлен как вход вход (INPUT), то отправка функцией digitalWrite() значения HIGH приведет к подключению внутреннего подтягивающего резистора номиналом 20 КОм (см. инструкцию по цифровым контактам). Запись значения LOW приведет к отключению этого резистора. Внутренний подтягивающий резистор может обеспечить только тусклое свечение светодиода. Поэтому, если светодиод горит, но очень тускло, наиболее вероятная причина этого - подтягивающий резистор. Для решения данной проблемы необходимо перевести соответствующий контакт в режим выхода с помощью функции pinMode().
ПРИМЕЧАНИЕ: Существуют некоторые сложности при использовании 13 контакта в качестве цифрового входа. Причиной этого является светодиод и резистор, которые припаяны к этому выводу на большинстве плат Arduino. При включении внутреннего подтягивающего резистора 20 КОм, напряжение на этом контакте установится на уровне около 1.7 В, вместо ожидаемых 5 В, поскольку светодиод и последовательно соединенный резистор на плате понижают уровень напряжения. Таким образом, контакт будет всегда находится в состоянии LOW. Поэтому, чтобы использовать вывод 13 в качестве цифрового входа, необходимо использовать внешний резистор на землю.
Синтаксис
digitalWrite(pin, value);
Параметры
pin - номер контакта.
value - значение HIGH или LOW.
Возвращаемые значения
нет
Пример
int ledPin = 13; // светодиод подключен к выводу 13
void setup()
{
pinMode(ledPin, OUTPUT); // переключаем цифровой вывод в режим выхода
}
void loop()
{
digitalWrite(ledPin, HIGH); // включаем светодиод
delay(1000); // ждем 1 секунду
digitalWrite(ledPin, LOW); // выключаем светодиод
delay(1000); // ждем 1 секунду
}
Программа устанавливает на 13 контакте высокий уровень HIGH, выдерживает паузу в 1 секунду, после чего устанавливает низкий уровень LOW.
ПРИМЕЧАНИЕ: Контакты, являющиеся аналоговыми входами, могут также использоваться как цифровые контакты под именами A0, A1 и т.д.
Смотрите также:
pinMode()
digitalRead()
Справочник
Материалы взяты с официального сайта проекта Arduino и представлены по лицензии Creative Commons Attribution-ShareAlike 3.0 License.
Источник: http://arduino.cc/en/Reference/DigitalWrite |