2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Мигающий светодиод (Arduino)

Урок 1 — Мигаем встроенным на плату Arduino светодиодом

На плату Arduino UNO (Nano, Mega, micro и пр.) установлен светодиод который соединен с 13 pin платы. На плате он обозначается буквой L.

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

Для урока нам понадобиться:

Функция setup() вызывается, когда стартует скетч. Используется для инициализации переменных, определения режимов работы выводов, запуска используемых библиотек и т.д. Функция setup запускает только один раз, после каждой подачи питания или сброса платы Arduino.

pinMode(13, OUTPUT); Инициализируем цифровой вход/выход в режиме выхода. Этого можно не делать так как цифровые выходы Ардуины по умолчанию настроенные на режим выход.

После вызова функции setup(), которая инициализирует и устанавливает первоначальные значения, функция loop() делает точь-в-точь то, что означает её название, и крутится в цикле, позволяя вашей программе совершать вычисления и реагировать на них. Использовать её нужно для активного управления платой Arduino.

DigitalWrite() — Так как у нас пин настроен как выход (pinMode(13, OUTPUT);), то для значение HIGH напряжение на соответствующем вход/выходе (pin) будет 5В (3.3В для 3.3V плат), и 0В(земля) для LOW.

Т.е. digitalWrite(13, HIGH); — На пин 13 подается 5 вольт.

digitalWrite(13, LOW); — На пин 13 подается 0В.

delay() — Останавливает выполнение программы на заданное в параметре количество миллисекунд (1000 миллисекунд в 1 секунде).

Следующий урок: Мигаем светодиодом подключенным к 2 pin Arduino

<span id=»selection-marker-1″ class=»redactor-selection-marker» data-verified=»redactor»></span>

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

Понравилась статья? Поделитесь ею с друзьями:

Arduino — мигание светодиодом

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

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

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

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 секунда.

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

void setup () <
pinMode (9, OUTPUT); // устанавливаем вывод 9 в режим передачи
>
void loop() <
digitalWrite (9, HIGH); // подаём сигнал на порт 9 +5В
delay(1000); // ждем секунду
digitalWrite (9, LOW); // отключаем порт 9
delay(1000); // ждем секунду
>

Читать еще:  Изготавливаем светодиодную лампочку в домашних условиях

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

Подключение к ардуино желательно делать через резистор. В 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 =0;i—)
<
analogWrite(6, i);
delay(20);
>

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

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

Урок 12. Мигаем светодиодом Ардуино

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

pinMode(pinNumber, mode)

pinMode() (см. в справочнике) используется в setup() скетча, чтобы инициализировать каждый вывод, который мы используем в качестве входа или выхода.

Мы не можем считывать или отправлять на контакт что-либо до того, как будет определена функция pinMode().

Функция pinMode() принимает два аргумента — номер пина (как мы уже проходили в уроках ранее — каждый из выводов Arduino помечен номером) и тот режим, в котором нам нужен этот вывод — это INPUT или OUTPUT. В случае мигания светодиода мы отправляем данные из Arduino, чтобы контролировать состояние светодиода, поэтому мы используем OUTPUT в качестве второго аргумента.

digitalWrite(pinNumber, state)

digitalWrite() — это команда, которая позволяет нам устанавливать напряжение на выводе либо на 5 В, либо на землю (помните, что «земля» является синонимом 0 Вольт). Ранее мы подключали светодиод к источнику питания 5 В и увидели, что он включается.

Если вместо этого мы подключаем светодиод к одному из цифровых выводов Arduino, мы можем включить светодиод, установив вывод на 5 В, и выключить его, установив вывод на земле.

digitalWrite() также принимает два аргумента — номер контакта и состояние контакта (HIGH для 5 В и LOW для заземления).

delay(timeInMs)

delay() приостанавливает программу на заданный промежуток времени. Например, delay(2000) приостановит программу на 2000 миллисекунд (2000 миллисекунд = 2 секунды), delay(100) приостановит программу на 100 миллисекунд (1/10 секунды) и так далее.

Перед написанием финальной программы мы делаем соединения используя макетную плату.

Пишем код мигающего светодиода, который мы запустим на нашем Arduino.

Строки, начинающиеся с // являются комментариями — наши платы Arduino их игнорирует. Хорошие программисты очень часто оставляют комментарии в программе.

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

В этом коде ledPin является переменной. Переменные используются для хранения информации в программах, в этом скетче используем переменную ledPin для хранения числа 7. Позже в программе когда Arduino дойдет до строки с переменной ledPin, плата оценит переменную в соответствии с её текущим сохраненным значением. Итак, строка:

Читать еще:  Светодиодная подстветка пола

вычисляется Arduino как:

Фактически, мы могли бы заменить все виды использования pinMode числом 7, и программа работала бы точно так же, но использование переменной помогает нам легче читать и понимать код.

int в первой строке — это обозначение типа данных. В языке Arduino, который создан на основе C++, вы всегда должны инициализировать переменные, объявив их тип. Существует много разных типов, но пока на данном этапе нам нет необходимости их изучать. Сейчас все, что вам нужно знать — это то, что переменные типа int являются положительными или отрицательными целыми числами и вы будете часто это использовать.

Как и ожидалось, светодиод включается на одну секунду, затем выключается на одну секунду. Попробуйте изменять delay(), чтобы увидеть, как это влияет на время мигания светодиода.

Еще одна вещь, на которую стоит обратить внимание — ошибка, которую часто совершают многие. Ошибка заключается в том, что многие пропускают последний delay() в цикле loop(). Попробуйте воспроизвести эту ошибку — вы обнаружите, что светодиод остается включенным, не мигая. Это может сбить вас с толку, потому что у нас все еще есть команда digitalWrite(ledPin, LOW) в программе.

Здесь происходит отключение светодиода, но Arduino сразу же попадает в конец цикла loop() и снова начинает выполнение первой строки цикла (включение светодиода). Это происходит так быстро, что человеческий глаз не видит, как светодиод выключается на этот короткий момент, пока wbrk перезапускается.

Мигание встроенным на плату Arduino светодиодом

На этом уроке Вы научитесь программировать свою плату Arduino на примере мигания встроенным светодиодом.

Необходимые элементы

Для данного примера Вам понадобится плата Arduino (в данном случае – Arduino Uno R3, но Вы сможете проработать данный пример, имея в наличии и другую плату) и кабель USB (типа A (4х12 мм) – B (7х8 мм) – более подробно можно почитать на Вики).

Что такое ” L” светодиод

На Arduino Uno присутствуют ряды коннекторов типа мама по бокам платы, которые используются для подключения периферийных электронных устройств или “шилдов”.

Кроме того, на плате присутствует встроенный светодиод (англ. – LED), которым Вы можете управлять с помощью скетчей. Этот встроенный светодиод условно назовем “L” светодиод, как это принято на многих англоязычных ресурсах.

Расположение данного светодиода на плате отмечено на фото снизу.

Загрузка примера “Blink” (мигание) в Arduino IDE

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

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

Пришло время проверить Ваше подключение и запрограммировать плату.

В оболочке Arduino IDE существует большая коллекция скетчей, которые уже готовы к использованию. Среди них находится и пример, который заставляет мигать “L” светодиод.

Откройте пример “Blink”, который находится в пункте меню File – Examples – 01.Basics

После открытия, расширьте окно оболочки Arduino IDE, чтобы Вы могли весь скетч в одно окне.

Скетчи из примеров, включенные в Arduino IDE предусматривают режим “только чтение” (“read only”). То есть, загрузить их на плату Вы сможете, но после изменения кода, Вы не сможете их сохранить в том же файле.

Мы будем изменять скетч, так что в первую очередь Вам необходимо сохранить собственную копию, которую Вы сможете изменять.

Из меню “File” выберите опцию “Сохранить как” (“Save As..”) и сохраните скетч под подходящим Вам названием, например, “MyBlink”.

Вы сохранили копию скетча “Blink” в Вашей библиотеке. Теперь открыть этот файл Вы можете в любой момент, перейдя по вкладке File – Scetchbook.

Загрузка примера “Blink” (мигание) на плату

Подключите свою плату Arduino к компьютеру с помощью USB и проверьте тип платы (“Board type”) и серийный порт (“Serial Port”), по которому она подключена.

Читать еще:  Отражатель-радиатор конической формы для сверхяркого светодиода

Текущие настройки отображаются внизу окна оболочки Arduino IDE

Кликните на кнопку “Загрузить” (“Upload”)

Во время загрузки в нижней части окна IDE появятся ползунок загрузки и сообщения. Вначале появляется фраза “Компилирование” (“Compiling scetch..”), что означает процесс конвертирования Вашего скетча в формат, подходящий для загрузки на плату Arduino.

Дальше статус сменится на “Загрузка” (“Uploading”). В этот момент светодиоды на плате начнут мигать, так как начнется перенос скетча в микропроцессор.

В конце статус сменится на ”Загрузка завершена” (“Done uploading”). В сообщении, которое появится в текстовой строке отобразится информация о том, что загруженный скетч занимает 1,084 байта из 32,256 доступных.

Иногда при компиляции у Вас может возникнуть подобная ошибка:

Причин может быть несколько: Вы не подключили плату к компьютеру; Вы не установили необходимые драйвера; Вы выбрали некорректный серийный порт.

Если же загрузка прошла корректно, плата Arduino перезагрузится и “L” светодиод начнет мигать.

Пояснения к скетчу “Blink”

Ниже представлен код скетча “Blink”.

Turns on an LED on for one second, then off for one second, repeatedly.

This example code is in the public domain.

// Pin 13 has an LED connected on most Arduino boards.

// the setup routine runs once when you press reset:

// initialize the digital pin as an output.

// the loop routine runs over and over again forever:

digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)

delay(1000); // wait for a second

digitalWrite(led, LOW); // turn the LED off by making the voltage LOW

delay(1000); // wait for a second

Первое, на что стоит обратить внимание: в данном скетче множество “комментариев”. Обратите внимание, что комментарии не являются инструкцией по работе программы. Это исключительно пояснения отдельных функций и задач, которые выполняются на определенном этапе кода. Это не обязательная часть кода. Все между символами /* и */ в верхней части скетча – это комментарии, в которых описаны задачи программы. Так же есть комментарии, которые ограничиваются одной строкой. Они начинаются с символов // и заканчиваются по умолчанию в конце строки. Первая важная, по сути, часть данного кода это строка:

В комментариях над строкой указано, что мы присваиваем имя пину, к которому подключен светодиод. На большинстве плат Arduino это будет 13 пин. Дальше используется функция “Setup”. Опять-таки, в комментариях указано, что функция срабатывает после нажатия кнопки “reset”. Также эта функция срабатывает, когда плата перезагрузится по каким-либо другим причинам. Например, подача питания или после загрузки скетча.

// the setup routine runs once when you press reset:

// initialize the digital pin as an output.

Каждый скетч Arduino обязан включать в себя функцию “setup” и часть, в которую вы можете добавлять собственные инструкции, заключенные между < >. В нашем примере в функции присутствует только одна команда, в которой указано, что пин, который мы используем, настраивается на “вывод” (“Output”). Также обязательным для любого скетча является функция цикла “Loop”. В отличие от функции “Setup ”, которая отрабатывает один раз после перезагрузки, функция “Loop” после окончания работы команд, вновь запустится.

// the loop routine runs over and over again forever:

digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)

delay(1000); // wait for a second

digitalWrite(led, LOW); // turn the LED off by making the voltage LOW

delay(1000); // wait for a second

В теле функции “Loop” светодиод включается (HIGH), данное значение задерживается на 1000 миллисекунд (1 секунда), светодиод отключается (LOW) и остается выключенным на 1 секунду, после чего цикл повторится.

Изменение частоты мигания светодиода

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

Как уже было указано, период задержки указывается в миллисекундах. То есть, для того, чтобы заставить светодиод мигать в два раза чаще, необходимо изменить значение с 1000 на 500. В результате, пауза между включением/выключением светодиода составит половину секунды и светодиод будет мигать быстрее.

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

Ссылка на основную публикацию
Статьи c упоминанием слов:
Adblock
detector