Рис. 7.7. Схема соединений для подключения внешнего светодиода.
В схеме подключения светодиодов к цифровым выходам мы используем ограничительный резистор номиналом 220 Ом. Рассмотрим, как подобрать ограничительный резистор и как будет влиять номинал резистора на яркость светодиода.
Вспоминаем закон Ома:
U = I×R,
где U – напряжение в вольтах; I – ток в амперах; R – сопротивление в омах.
В электрической схеме каждый компонент имеет некоторое сопротивление, что снижает напряжение. Светодиоды имеют предопределенное падение напряжения на них и предназначены для работы в определенном значении тока. Чем больше ток через светодиод, тем ярче светодиод светится, до предельного значения. Для наиболее распространенных светодиодов максимальный ток составляет 20 мА. Обычное значение падения напряжения для светодиода – около 2 В. Напряжение питания 5 В должно упасть на светодиоде и резисторе, поскольку доля светодиода 2 В оставшиеся 3 В должны упасть на резисторе. Зная максимальное значение прямого тока через светодиод (20 мА), можете найти номинал резистора.
R = U/I = 3/0,02 = 150 ОмТаким образом, со значением резистора 150 Ом ток 20 мА протекает через резистор и светодиод. По мере увеличения значения сопротивления ток будет уменьшаться. 220 Ом немного более чем 150 Ом, но все же позволяет светиться светодиоду достаточно ярко, и резистор такого номинала очень распространен. В качестве внешнего светодиода мы будем использовать светодиод, расположенный на плате Easy Module shield. На плате Easy Module shield светодиоды подключены к цифровым выводам D12 и D13(см. урок 4). Ограничительные резисторы в схему уже включены.
Устанавливаем Easy Module shield на плату Arduino, в блоке управления цифровым пином меняем номер пина и запускаем скрипт. Мигает внешний светодиод (установленный на Easy Module shield) на выбранном в программе пине.
Для сохранения скрипта выберем в меню
Файл пункт
Экспортировать проект и выберем соответствующее место для загрузки. Для загрузки скрипта (например, из приложенной папки с лабораторными работами) выберем в меню
Файл пункт
Импорт и выберем соответствующий XML файл. Скачать данный скрипт можно на сайте Arduino-kit по ссылке
https://amegakit.ru/libraries/lib_Lab_Om-Robot.zip.
Создание скетча в программе Arduino IDE.Программа, написанная в среде Arduino, носит название скетч. Скетч пишется в текстовом редакторе, который имеет цветовую подсветку создаваемого программного кода. Во время сохранения и экспорта проекта в области сообщений появляются пояснения и информация об ошибках. Окно вывода текста показывает сообщения Arduino, включающие полные отчеты об ошибках и другую информацию. Кнопки панели инструментов позволяют проверить и записать программу, создать, открыть и сохранить скетч, открыть мониторинг последовательной шины.
В программе обязательно должны быть две записи, void setup() и void loop()– это так называемые функции, первая выполняется единоразово, при подаче питания на Arduino, а вторая выполняется циклически до тех пор, пока присутствует питание микроконтроллера. В функцию setup() записываются различные настройки микроконтроллера для дальнейшей работы – например, это может быть конфигурация портов ввода/вывода, либо инициализация подключенного вами дисплея или датчика. Главное, что нужно запомнить, с этой функции начинается работа микроконтроллера и все, что в ней написано, выполняется только один раз. Функция loop() выполняется сразу же после функции setup(), и после этого микроконтроллер постоянно работает в ней.
Запускаем программу Arduino IDE и создаем новый скетч (
Файл --
Новый эскиз).
Цифровые сигналы Arduino имеют только два отдельных значения: высокий (HIGH, 1) и низкий (LOW, 0) уровни. Мы можем использовать цифровые сигналы в ситуациях, где вход или выход будет принимать одно из этих двух значений. Поскольку цифровые выводы Arduino могут использоваться в качестве и входа, и выхода, сначала необходимо их настроить. Для настройки цифровых выводов в Arduino используется встроенная функция pinMode(), которая имеет следующий синтаксис:
pinMode(pin, mode)
где
- pin – номер вывода Arduino;
- mode – устанавливаемый режим для вывода pin:
- INPUT – pin в режиме входа;
- OUTPUT – pin в режиме выхода;
- INPUT_PULLUP – в этом режиме к выводу подключается внутренний подтягивающий резистор 20 кОм, чтобы привести уровень на выводе к значению HIGH, если к нему ничего не подключено.
В данном случае мы будем использовать вывод Arduino в режиме выходе (OUTPUT), для включения и выключения светодиода.
Светодиод должен одновременно мигать с определенной частотой. В процедуре setup() настроим режим работы контакта (пина), к которому подключен светодиод, как OUTPUT (выход)
void setup() {pinMode(12,OUTPUT);}В процедуре loop() сначала зажигаем светодиод (подаем на вывод 12 сигнал HIGH), ждем некоторое время (время "горения"), затем "тушим" светодиод (подаем на вывод 12 сигнал LOW) и опять ждем некоторое время и т.д. по кругу. Для выполнения операции подождать "некоторое время" мы будем использовать встроенную Arduino функцию delay(). Эта функция просто останавливает выполнение программы на заданное в параметре количество миллисекунд (1000 миллисекунд в 1 секунде). Например:
delay(1000); // останавливает выполнение программы на 1000 мсек И весь код программы в листинге 1.1. Скачать данный скетч 07_01.ino можно по ссылке
https://amegakit.ru/libraries/lib_Lab_Om-Robot.zip.
Листинг 1.1void setup() {// настроить вывод 12 Arduino как OUTPUTpinMode(12,OUTPUT);}void loop() {// включить светодиод digitalWrite(12, HIGH); // пауза 1000 мсек (1 сек)delay(1000); // выключить светодиод digitalWrite(12, LOW); // пауза 1000 мсек (1 сек)delay(1000); }Загрузим данный скетч на плату Arduino. Вы должны наблюдать включение/выключение красного светодиода на плате Easy Module shield с частотой 1 секунда.