Цифровой выход – команда digitalWrite
Команда digitalWrite(номер пина, уровень) позволяет подать на определенный пин Arduino (пока будем использовать цифровые пины – от 0 до 13) высокий уровень напряжения (HIGH, +5 В, логическая единица) или низкий уровень напряжения (LOW, 0 В, логический ноль). Примеры:
digitalWrite(5, HIGH); – напряжение на пине 5 станет равным +5 В
digitalWrite(12, LOW); – напряжение на пине 12 станет равным 0 В
Примечание: перед использованием на пине команды DigitalWrite обязательно нужно настроить этот пин в блоке setup как выходной, используя команду pinMode(номер пина, OUTPUT);
Для изучения данной команды запустим среду Arduino IDE и откроем пример, который использовали на прошлом занятии Файл / Примеры / Basic / Blink. Для облегчения понимания комментарии (слова после //, которые Arduino не воспринимает, а предназначены только для программистов) в программе ниже переведены на русский язык и выделены курсивом, а команды, которые контроллер воспринимает – выделены жирным.
// создадим переменную led, хранящую номер данного пина – 13 int led = 13; // то, что находится в блоке setup, выполняется один раз после запуска контроллера void setup() { pinMode(led, OUTPUT); // прописываем цифровой пин с номером 13 как выходной } // выполнение блока loop повторяется снова и снова в процессе работы контроллера void loop() { digitalWrite(led, HIGH); // включаем светодиод (подаем на пин 13 высокий уровень +5 В delay(1000); // ждем одну секунду (1000 миллисекунд) digitalWrite(led, LOW); // выключаем светодиод (подаем на пин 13 низкий уровень 0 В delay(1000); // ждем одну секунду (1000 миллисекунд) } // после окончания блока loop контроллер начинает выполнять его с первой строчки |
Практическое занятие 1: откройте программу Файл / Примеры / Basic / Blink
|
|
Загрузите данную программу в контроллер (кнопка Загрузить Ü вверху слева) и убедитесь, что светодиод L, расположенный на плате, мигает с периодом 1 с
Практическое занятие 2: изменим период мигания светодиода. В программе периоды заданы командой delay (задержка, ожидание), при выполнении которой контроллер ждет время в миллисекундах, заданное в скобках (1000 миллисекунд = 1 секунда).
Удалите один ноль в обоих строках delay(1000);, чтобы они обе имели вид delay(100);
Загрузите полученную программу в контроллер (Ü) и убедитесь, что светодиод L на плате стал мигать намного быстрее – с периодом 100 миллисекунд = 0,1 секунда
Дополнительное практическое занятие: попробуйте задать различные значения периодов задержки delay и загрузить программу с ними
Подключение внешнего светодиода с использованием токоограничивающего резистора
Для ограничения тока через светодиод необходим резистор
Примечание 1: порядок подключения светодиода и резистора в схеме неважен, можно подключить и так: +5 В, резистор 300 Ом, светодиод, 0 В
Примечание 2: +5 В в схеме подается с одного из цифровых пинов (D0…D13), а 0 В – подключен к пину земли Gnd