Электрификация

Справочник домашнего мастера

Мигающий светодиод на ардуино

Мигание светодиодом на Arduino – первое, что делают на этой платформе начинающие ардуинщики. Проекты, связанные со светодиодами – самые популярные уроки, с которых начинается большинство учебников. В этой статье мы с вами узнаем, как сделать своими руками маячок и мигалку на Ардуино. Для работы вам потребуется плата Arduino Uno, Nano, Pro Mini или Mega, а также установленная на компьютер программа Arduino IDE.

Мигаем встроенным светодиодом

Самый первый проект всегда лучше делать как можно более простым и понятным. Лучше всего сначала просто сообщить миру о том, что программа работает. В других языках программирования это достигается выводом текста на экран фразы «Hello, World» , которая стала по-настоящему культовой. С ее помощью новые программы приветствуют мир уже на протяжении половины столетия.

На плате Ардуино нет встроенного экрана, поэтому мы не можем вывести нашу гениальную надпись. Конечно, можно было бы воспользоваться экраном компьютера, но тогда первый проект получится слишком сложным. Именно поэтому почти все проекты для начинающих основаны на использовании светодиодов. Ими мы будем мигать, учась основам схемотехники и программирования.

Встроенный светодиод в Ардуино Uno, Nano и Mega

Почти на каждой плате Arduino находится несколько встроенных светодиодов, предназначенных для индикации. Один из них подключен к пину 13 и вы можете управлять им программно – включать и выключать. Более подробно об этом написано в нашей статье, посвященной светодиодам.

Мы должны написать и загрузить в ардуино скетч, который будет мигать встроенным в плату ардуино светодиодом – включать его каждую секунду, а потом на секунду выключать.

Вам понадобится: ничего, кроме платы ардуино. Сложность: простой проект.

Что мы узнаем:

  • Как мигает светодиод.
  • Что такое скетч и как написать программу.
  • Как включить и зажечь светодиод.
  • Как выключить светодиод.
  • Как сделать задержку в программе.

Вопросы, на которые вы уже должны знать ответы:

  • Как выбрать плату и где ее купить?
  • Как подсоединить плату к компьютеру?
  • Как установить среду программирования IDE Arduino
  • Как работать в среде программирования IDE Arduino
  • Как загружать программу в плату?

Как мигает светодиод

Алгоритм программы очень прост.

  1. Мы должны подать напряжение на светодиод (на тот пин, к которому подсоединен светодиод, в нашем случае, 13).
  2. Затем ждем некоторое время. Например, секунду.
  3. После чего убираем напряжение.
  4. И опять немного ждем, чтобы глаз мог заметить, что света нет.
  5. Начинаем все с первого пункта

На русском все выглядит очень просто. Осталось только перевести на язык, понятный Ардуино. Мы заменяем каждую строчку нашего алгоритма командой.

  1. Включить – команда digitalWrite
  2. Подождать – команда delay
  3. Выключить – команда digitalWrite
  4. Подождать – команда delay

Для того, чтобы записать все эти команды, а потом перевести их в машинопонятный язык и загрузить в микроконтроллер мы используем программу Arduio IDE. В ней мы пишем наш код (или вставляем готовый из примера), в ней же нажмем несколько кнопок для проверки, трансляции и загрузки программы в Ардуино.

Давайте соберем все, что нужно, вместе в одной инструкции.

Пошаговая инструкция

Выполняем действия по шагам – в результате обязательно получим результат.

  1. Берем плату Arduino UNO. Убеждаемся, что на ней есть встроенный светодиод.
  2. Подключаем плату Arduino к компьютеру через USB-кабель. В результате должны загореться лампочки.
  3. Открываем на компьютере программу Arduino IDE (вы уже должны знать, как это делается или прочитайте статьи на нашем сайте по ссылкам выше).
  4. Проверяем, что ардуино подключился: найдите в меню «Инструменты», подменю «Порт». Оно должно быть активным. Нажмите на этот пункт и посмотрите список портов. Один из них должен быть отмечен галочкой. Если этого не произошло, выберите порт с самым большим номером и отметьте его. Если это не помогло – смотрите раздел с описанием типичных проблем чуть ниже.
      Проверка порта Ардуино
  5. Открываем меню Файл. В нем находим подменю «Примеры», и в нем подменю Basics. Находим в открывшемся списке меню строчку Blink и нажимаем на нее. Должно открыться отдельное окно Arduino с текстом программы (в самом верху будет серый текст). Открываем пример Blink в Ардуино IDE
  6. Найдите в меню кнопку “загрузить скетч” (со стрелочкой) и нажмите ее. Начнется процесс проверки (компиляции) скетча и загрузки в плату.
  7. После того, как скетч загружен и в статусном окне внизу появится надпись «Загрузка завершена», можно проверять результат. Посмотрите на плату – вы должны увидеть мигающий огонек. Значит, мы сделали это!
  8. Проверьте, что программа работает как надо – замерьте паузы между включением и выключением.

Обратите внимание! Если вы отключите контроллер от компьютера и просто подадите на него питание (например, от батареек), то программа все равно будем выполняться! Ваша программа записана в память микроконтроллера и теперь будет в нем до тех пор, пока вы не перезапишите ее другой программой.

Поздравляем! У вас получилось реализовать ваш первый проект на Ардуино. Если все мигает так, как надо. Теперь можем переходить к анализу программы и сбору электронной схемы с отдельным светодиодом. Если же что-то не получилось, давайте разберемся, почему.

Если что-то пошло не так

  • У вас нет платы контролера Ардуино. Это большая проблема, т.к. без платы освоить адуино практически невозможно. Проблему можно решить, купив контроллер в одном из интернет-магазинов. Другим вариантом может стать один из сервисов, имитирующих работу ардуино. Например, Tinkercad.
  • Плата не находится. Эта проблема может возникнуть, если у вас нет USB драйвера для платы. Посмотрите эту статью с описанием того, что можно сделать. В ряде случаев также помогает отключение антивирусов. Если ничего не помогает, попробуйте поменять плату, а затем и компьютер (подключить ардуино к другому компьютеру). Гораздо меньше проблемы возникает при работе с ардуино в среде Windows.
  • Нет программы. Ситуация практически невероятная, ведь примеры всегда идут вместе с программой Arduino IDE. Вы можете скачать программу у нас на сайте – далее в статье вы найдете ссылку
  • Скетч не загружается. Вы могли выбрать не тот контроллер в списке плат. Убедитесь, что выбран Arduino/Genuino Uno или Nano, если вы работаете с платой Uno и Nano соответственно. В некоторых случаях проблема может быть вызвана использованием устаревшего чипа ATMEGA 168. В этом случае выберите тип платы Nano и в пункте меню “процессор” – версию 168.

Программа и скетч мигающего светодиода

Давайте теперь рассмотрим программу, которую мы загрузили из примеров и проанализируем.

Пример программы мигалки Blink

Во-первых, давайте пока уберем большой блок комментарий – они обозначены в Arduino IDE серым цветом. На данном этапе они немного мешают нам, хотя они крайне важны и вы всегда должны писать комментарии к своим программам.

Программа Blink без комментариев

У нас осталась часть кода и сразу обратите внимание на два блока со словами setup и loop. Это две функции, которые вызываются всегда, когда запускается наш скетч. Блоки ограничены фигурными скобками – все, что внутри них, принадлежит блоку. Более подробно о них написано в статье по ссылке.

Если вы обратите внимание на блок loop, то именно в нем и сосредоточены наши команды, управляющие светодиодом:

Функции setup и loop в коде программы Blink

digitalWrite – это название функции, которая отвечает за подачу напряжения на пин. Подробнее о ней можно прочитать в отдельной статье о digitalWrite.

LED_BUILDIN – это название внутреннего светодиода. В большинстве плат за этим названием прячется цифра 13. Для плат Uno, Nano можно смело писать 13 вместо LED_BUILDIN.

HIGH – условное название высокого уровня сигнала. Включает светодиод. Можно заменить цифрой 1.

LOW – условное обозначение низкого уровня сигнала. Выключает светодиод. Можно заменить цифрой 0.

delay – функция, которая останавливает выполнение скетча на определенное время. Крайне нежелательно использовать ее в реальных проектах, но в нашем простом примере она отработает замечательно. В скобках мы указываем цифру – это количество микросекунд, которые нужно ждать. 1000 – это 1 секунда. Подробнее можно прочитать в нашем материале о delay() .

// LED_BUILTIN — встроенная константа, определяющая номер пина. В Arduino Uno и Nano это 13 пин. void setup() { pinMode(LED_BUILTIN, OUTPUT); // Установка пина в режим OUTPUT } // Этот блок команд выполняется постоянно void loop() { digitalWrite(LED_BUILTIN, HIGH); // Включение светодиода delay(1000); // Задержка digitalWrite(LED_BUILTIN, LOW); // Выключение светодиода delay(1000); // Задержка // Когда программа дойдет до этого места, она автоматически продолжится сначала }

Как только программа дойдет до конца, контроллер перейдет в начало блока loop и будет выполнять все команды заново. И так раз за разом, целую вечность (пока есть свет). Наш светодиод мигает без остановки.

Проект “Маячок” с мигающим светодиодом

В этом проекте мы с вами практически повторим предыдущий, но при этом добавим самую настоящую схему. Подключим светодиод и токоограничивающий резистор. Чтобы не повторяться, отправим вас за подробным описанием в статью о правильном подключении светодиода к плате Ардуино.

Вам понадобится:

  • Плата Arduino Uno или Nano
  • Макетная плата для монтажа без пайки
  • Резистор номиналом 220 Ом
  • Светодиод
  • Провода для соединения

Сложность: простой проект.

Что мы узнаем:

  • Как подключить светодиод к ардуино.
  • Повторим процедуру загрузки скетча в микроконтроллер.

Для монтажа элементов мы будем использовать макетную плату. Если вы еще не очень хорошо понимаете, что это такое, то рекомендуем предварительно ознакомиться с отдельной статьей, посвященной макетным платам.

Соедините все элементы согласно следующей схемы для Arduino UNO. Для Arduino Nano светодиод подключается по той же схеме – к пину 13.

Схема подключения мигающего светодиода к Ардуино

Если вы не меняли программу с предыдущего шага, то можно считать, что все сделано. Подключаем плату к компьютеру – светодиод должен немного помигать хаотично, а затем с точно установленным периодом.

Если вы еще не загружали программу, то вам надо повторить ту же последовательность действий, что и для работы со встроенным светодиодом. Загружаем пример, затем программу в контроллер и наблюдаем за результатом.

Попробуйте внести изменения в программу. Сделайте так, чтобы маячок мигал медленней и быстрее (чаще). Добейтесь того, чтобы частота мигания стала такой, что мигание света стало бы незаметным.

Проект “Мигалка”

Давайте попробуем сделать проект посложнее. Добавим два светодиода, которые будут мигать поочередно.

Вам понадобится:

  • Плата Arduino Uno или Nano
  • Макетная плата
  • Два резистора 220 Ом
  • Два светодиода. Если есть возможность, лучше взять синий и красный.
  • Провода для соединения.

Сложность: простой проект.

Что мы узнаем:

  • Как подключить светодиод к ардуино.
  • Как изменить стандартную программу мигалки.
  • Повторим процедуру загрузки скетча в микроконтроллер.

Принцип подключения при этом не меняется. Мы используем два пина платы контроллера для соединения со светодиодами – 13 и 12. Можно использовать следующую схему:

Схема подключения светодиодов проекта Мигалка

Положительные контакты светодиода соединяем с цифровыми пинами, отрицательные – с GND.

Программирование мигалки

В скетч с мигающим светодиодом нам надо будет внести определенные изменения. Алгоритм действий таков:

  • Включаем синий светодиод
  • Ждем какое-то время (1 секунду)
  • Выключаем синий светодиод и одновременно включаем красный
  • Ждем какое-то время (1 секунду)
  • Повторяем еще раз

Попробуйте написать программу самостоятельно, основываясь на опыте, полученном из предыдущего проекта. Если возникнут сложности, можно обратиться к примеру далее по тексту.

// Этот блок команд выполняется один раз void setup() { pinMode(13, OUTPUT); // Эти строчки нужны для того, чтобы оба светодиода светились ярко pinMode(12, OUTPUT); } // Этот блок команд выполняется постоянно void loop() { digitalWrite(13, HIGH); // Включение синего светодиода digitalWrite(12, LOW); // Выключение красного светодиода delay(1000); // Задержка digitalWrite(13, LOW); // Выключение синего светодиода digitalWrite(12, HIGH); // Включение красного светодиода delay(1000); // Задержка }

В этой программе нам опять встречается блок команд loop. В нем мы выполняем включение и выключение пинов с помощью digitalWrite. Никаких сложностей это вызвать не должно.

Давайте поговорим более подробно о блоке setup. Мы видели его и в прошлом примере. Внутри setup обычно располагаются команды инициализации, которые запускаются только один раз, в момент подключения контроллера к питанию.

В примерах с мигалками мы устанавливаем пины в нужный режим – OUTPUT. В этом режиме мы работаем с внешними устройствами, получающими питание с данного пина ардуино. Например, наш светодиод ничего не передает в плату, он использует пин 13 для того, чтобы включиться. Поэтому мы устанавливаем режим OUTPUT – “на выход”. По умолчанию все пины находятся в режиме INPUT, оптимальном для подключения датсиков. Более подробную информацию вы можете найти в описании функции pinMode.

Надеемся, процедура проверки скетча и прошивки контроллера не вызвала каких-то трудностей. Запустите программу и вы увидите, как весело перемигиваются светодиоды на плате. Поздравляем с написанием своих первых проектов на Ардуино!

В этой статье мы с вами узнали о том, как мигать светодиодами – работать с внешними и внутренним светодиодом, встроенным в плату контроллера Arduino. Мы научились загружать программу из встроенных примеров, разобрались с внутренним устройством скетча. Узнали, как включается и выключается светодиод, как создается задержка в выполнении скетча.

Мы также научились собирать электрическую схему со светодиодом на основе макетной платы и Arduino Uno. В схеме обязательно использование токоограничивающих резисторов. Все примеры и схемы подключения актуальны и для более миниатюрного аналога Uno – платы Arduino Nano.

Надеемся, все у вас получилось и вы готовы к новым проектам со светодиодами – светофору и гирлянде!

Это первый урок по созданию проектов. В этом уроке мы покажем, как легко и просто программировать в Arduino IDE. Рассмотрим, как подавать и отключать напряжение на определенных пинах.

Для этого нам потребуется:

  1. плата Arduino Uno (или любая другая плата Arduino);
  2. резистор от 150 Ом до 220 Ом;
  3. макетная плата;
  4. светодиод.

Контакты на макетной плате соединены между собой следующим образом

Принципиальная схема

Не забываем, что короткая нога светодиода — «катод», подключаем строго к земле «Gnd».

Схема на макетной плате

Скетч

Arduino

Пояснения к коду

  • Объявляется функция setup типа void данная функция выполняется один раз, при запуске Arduino. Она служит для обозначения портов как вход или выход, подключения библиотек, настройки датчиков и модулей, открытия последовательного порта. В общем в этой функции мы настраиваем Arduino, датчики и модули к подключению.
  • // — двойной слеш означают однострочный комментарий. Все что находиться на после них на этой строке компилятор читать не будет. Комментарии используются для пояснения часть кода. Многострочный комментарий выглядит так /* — начало комментария, */- закрывающий слэш говорит о конце комментария.
  • Функция loop выполняется бесконечное число раз. Благодаря этому циклу светодиод будет постоянно включаться и выключаться, что создаст эффект мигания.
  • Функции setup и loop должны присутствовать в любой программе (скетче), даже если вам не нужно ничего выполнять в них — пусть они будут пустые, просто не пишите ничего между фигурными скобками. Например:

Arduino

1 2 3 4 void setup () { }
  • Запомните, что когда пишем код важна каждая мелочь, у каждой открытой скобки должна быть своя закрывающая скобка, пусть даже в них нет ничего (), {}, .
  • Обращаем внимание на (;) точка с запятой обозначают завершение команды, если ее забыть компилятор выдаст ошибку. Компилятор это как переводчик, только он переводит код написанный человеком на машинный язык, то есть в виде 1 и 0.
  • Функция digitalWrite(pin, value) данная команды подает сигналы на пины.
    1. pin — номер цифрового порта, на который мы подаем напряжение.
    2. value — указываем значение сигнала которое мы хотим отправить на пик. Это может быть: «HIGH», «1», «TRUE» — этими командами подаем высокий сигнал. Командами «LOW», «0», «FALSE» подаем низкий сигнал.
  • Обращайте внимание и на написание константы: HIGH, LOW, INPUT, OUTPUT, все они пишутся с заглавными буквами, в противном случаи, компилятор выдаст ошибку. В Arduino IDE есть подсветка которая говорит о правильности написания.

На сегодняшний день аппаратная платформа управления периферическими приспособлениями на основе Ардуино приобрела чрезвычайно обширное распространение. Благодаря исключительной простоте управления и достаточно широким функциональным возможностям, подобные устройства активно применяются в самых разнообразных проектах, от управления моторчиками до систем «умный дом».

Ардуино что это?

Непосредственно сам модуль Ардуино представляет собой микропроцессор семейства Atmel AVR ATmega с набором портов способных принимать и транслировать информацию. Управление устройством совершается специальной программой-скетчем написанной на модифицированном С/С++. Язык программирования весьма лёгкий даже для абсолютных «чайников».

Программы пишутся в специальной оболочке:

Verify/Compile – проверяем валидность кода;

Upload to I/O Board – загружаем программу в Ардуино.

Загрузка исполняемого скетча

Если вы загружаете данные впервые, потребуется настроить параметры загрузки: Tools > Board и Tools > Serial Port. Порт подключения можно уточнить в диспетчере устройств (Панель управления > Диспетчер устройств> Порты (COM, LPT). В настройках требуется указать тип платы Ардуино в выпадающем списке. После чего записывает в память устройства загрузчик (Bootloader).

Управление светодиодами

Управление светодиодами на ардуино позволяет реализовать самые разнообразные схемы: включение/отключение по нажатию кнопки, мигание, плавное включение/отключение.

Для работы со светодиодом нам потребуется простейшая программа для управления портами. Для ее написания используем лишь несколько базовых команд:

pinMode (порт, режим) – команда устанавливает режим работы вывода (порта) на плате. Порт – номер вывода, режим – OUTPUT (режим передачи) и INPUT (режим приёма информации).

digitalWrite (порт, значение) – команда объявления состояния порта. Порт – номер вывода, режим – HIGH (включён), LOW (выключен).

Delay (интервал) – задержка между выполнением команд. Интервал – количество миллисекунд.

Сам скетч представляет собой две функциональные части. Объявление переменных находится в модуле void setup () {…}, исполняемый код — void loop () {…}.

Наглядно все можно увидеть на видео:

Мигаем светодиодом арудино

Код скетча для мигания светодиода (скетч для ардуино мигание светодиодом находится во встроенном скетче “blink”).

Мигаем с частотой 1 секунда.

Скетч мигание светодиодом на ардуино:

Как подключить светодиод к ардуино

Подключение к ардуино желательно делать через резистор. В arduino подключение возможно и через встроенный резистор, но это требует специальный синтаксис команд и лучше его не использовать. Ограничительный резистор между выходом порта и светодиодом берем на 150 — 200 Ом.

Плавное включение светодиода

Для плавного включения используем новую команду ШИМ-модуляции сигнала.

ШИМ-модуляция – управление мощностью сигнала с помощью частотной модуляции.

Что бы понять принцип работы шим-модуляции, представьте резиновую трубку через которую в стакан течет вода. Если мы будем каждую секунду зажимать и отпускать трубку, за равный промежуток количество набранной воды уменьшиться в два раза. Если зажимать на одну секунду один раз в четыре секунды – ограничим объем жидкости на четверть.

В Ардуино модуляция сигнала происходит с частотой около 500 импульсов в секунду.

Команда analogWrite (порт, частота модуляции) подает на заданный порт модулированный сигнал. При частоте 255 выдается 100% мощности, при частоте 127 соответственно 50%. Изменяя частоту модуляции мы можем менять яркость. Для модулированного сигнала используют аналоговые входы-выходы.

void setup() // процедура setup
{
pinMode (6, OUTPUT); // включаем аналоговый порт 6 на вывод
}
void loop()
{

Цикл увеличения частоты модуляции с 0 до 255

For (int i=0; i<=255;i++)
{
analogWrite(6, i);
delay(20); // задержка 20 миллисекунд. Светодиод «разгорится» за 5 сек.
}

Цикл уменьшения частоты модуляции с 255 до 0

for(int i=255;i>=0;i—)
{
analogWrite(6, i);
delay(20);
}

В этом примере светодиод плавно разгорается за 5 сек. потом постепенно гаснет в течении 5 сек.

Для подключения большого количества светодиодов либо мощного светодиода требуются коммутаторы: транзисторный ключ, опотрон, микросхема коммутатор. Они позволяют подавать питание от внешнего источника достаточной мощности.

Оцените, пожалуйста, статью. Мы старались:)

Arduino.ru

В этом примере показано как с помощью контроллера Arduino заставить мигать светодиод.

Необходимые компоненты

  • контроллер Arduino
  • светодиод
  • резистор 220 Ом

Подключение

Мы подключаем резистор сопротивлением 220 Ом к выходу номер 13 (pin 13), к резистору в свою очередь подключаем анод (обычно длинная ножка) светодиода. Катод подсоединяем к земле (Grd). Затем подключаем контроллер через USB кабель к компьютеру и загружаем приведенный ниже код на котроллер Arduino.

Большинство плат Arduino имеют встроенный SMT (Surface-mount techology)светодиод, подключенный к выходу 13. Если вы запустите код на таких платах без подключения внешниего светодиода, то вы должны увидеть мигание встроенного светодиода на плате.

Схема

Код

В коде мы первой строк задаем режим выхода для вход/выхода (pin) 13:

pinMode(13, OUTPUT);

В основном цикле (loop) программы зажигаем светодиод:

digitalWrite(13, HIGH);

На выходе 13 появляется напряжение 5 В. Светодиод зажигается. Затем мы выключаем светодиод:

digitalWrite(13, LOW);

Изменив напряжение на выходе на 0 вольт, мы выключили светодиод. Для того чтобы человеческий глаз успевал замечать переключение светодиода введем задержку с помощью функции delay().

/* Зажигаем светодиод на одну секунду, затем выключаем его на одну секунду в цикле. */ void setup() { // Инициализируем цифровой вход/выход в режиме выхода. // Выход 13 на большинстве плат Arduino подключен к светодиоду на плате. pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); // зажигаем светодиод delay(1000); // ждем секунду digitalWrite(13, LOW); // выключаем светодиод delay(1000); // ждем секунду }

admin

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Наверх