Как подключить 12в диод к ардуино
Перейти к содержимому

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

  • автор:

Arduino.ru

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

В общем не понимаю как реализовать питание диодной ленты и ардуино от одного адаптера. Диодная лента питается от 12 вольт, а ардуино уно от 5.

Может кто что посоветует?

  • Войдите на сайт для отправки комментариев

Чт, 20/04/2017 — 11:11
Зарегистрирован: 09.04.2017

Нашел вот такую штуку, dc-dc , привильно ли я понимаю, что питание к ардуино ведем через dc-dc, а диодную ленту напрямую от 12 вольт?

  • Войдите на сайт для отправки комментариев

Чт, 20/04/2017 — 11:19

ulis аватар

Зарегистрирован: 09.03.2011

Если лента должна включаться по движению, то ардуина вовсе не нужна:

Ну и хочу спросить не в тему, почему народ все покупает на али, в то время, когда на ебэй все дешевле.

  • Войдите на сайт для отправки комментариев

Чт, 20/04/2017 — 11:21

ulis аватар

Зарегистрирован: 09.03.2011

  • Войдите на сайт для отправки комментариев

Чт, 20/04/2017 — 11:45
Зарегистрирован: 10.01.2015

Ну так а нафик тогда вообще париться с микроконтроллерами. Любое устройство можно в неком приближении найти в готовом виде. Про ссылки выше: конкретно на эти коробочки я бы даже смотреть не стал. Стаба в них нет, модуль датчика (самый распространенный) и так может настраиваться на нужную задержку, прикрутить к нему релюху — проблемы нет. Так нафига эта коробочка? Только ради самой коробочки?

Cools2 пишет:

Нашел вот такую штуку, dc-dc , привильно ли я понимаю, что питание к ардуино ведем через dc-dc, а диодную ленту напрямую от 12 вольт?

  • Войдите на сайт для отправки комментариев

Чт, 20/04/2017 — 11:49

ЕвгенийП аватар

Зарегистрирован: 25.05.2015
ulis пишет:

Ну и хочу спросить не в тему, почему народ все покупает на али, в то время, когда на ебэй все дешевле.

Потому что у нас импортозамещение, которое. судя по отчётам минпрома, заключается в замене американских поставщиков на китайских.

  • Войдите на сайт для отправки комментариев

Чт, 20/04/2017 — 12:31
Зарегистрирован: 09.04.2017

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

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

Спасибо за совет, буду смотреть в сторону ebay тоже.

  • Войдите на сайт для отправки комментариев

Чт, 20/04/2017 — 16:38

ulis аватар

Зарегистрирован: 09.03.2011
okta пишет:

Ну так а нафик тогда вообще париться с микроконтроллерами. Любое устройство можно в неком приближении найти в готовом виде. Про ссылки выше: конкретно на эти коробочки я бы даже смотреть не стал. Стаба в них нет, модуль датчика (самый распространенный) и так может настраиваться на нужную задержку, прикрутить к нему релюху — проблемы нет. Так нафига эта коробочка? Только ради самой коробочки?

Так и не парьтесь . но мне эти коробочки нравятся

  • Войдите на сайт для отправки комментариев

Чт, 20/04/2017 — 16:51

ulis аватар

Зарегистрирован: 09.03.2011
Cools2 пишет:

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

Так всегда, сначала скажут «А», а потом уточняют и говорят противоположное «Б» .

Я вам бесплатно даю идею по подсветке лестницы: нужно, чтобы она подсвечивалась не по датчику, установленного где-то около, а подсветка следовала за движением человека — спускается, в полный «накал» горит ступень, на которой стоит и плавно загораются две следующие и наоборот, когда поднимается вверх. В этом варианте на каждую ступень нужен датчик, можно применить типа вот такого: http://www.ebay.com/itm/5PCS-RPR220-Reflective-Opto-Sensor-Photoelectric-Switch-Sensor-/401278586789?hash=item5d6e114fa5

Вот в таком варианте дуня будет в самый раз

  • Войдите на сайт для отправки комментариев

Правильное подключение светодиода. Схемы подключения.

Правильное подключение светодиода. Схемы подключения.

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

Если у Вас появилась задача подключения светодиода, то постараюсь Вам в этом помочь в этой статье. При подключении светодиодов необходимо правильно подключать светодиод, соблюдать полярность. Что бы узнать, где у светодиода плюс (+) , а где минус (-) достаточно посмотреть на светодиод одна из ножек светодиода длиннее, чем вторая, соответственно самая длинная ножка будет плюс (+), а короткая минус (-). Начнем с подключения одинарных обычных светодиодов с рабочим напряжением 2-3В с рабочим током 10-20мА, как правило, напряжение светодиодов 2 вольта и что бы подключить светодиод, скажем к 12 вольтам постоянного напряжения (схема подключения светодиода к 12 вольтам представлена на рисунке 1), нам необходимо подобрать резистор.

Рисунок 1 — Схема подключения светодиода

Чтобы подобрать резистор для светодиода, будем пользоваться следующим способом: нам известно, что напряжение светодиода 2В, соответственно при подключении светодиода к 12 вольтам (например, светодиод будем использовать в автомобиле) нам надо ограничить 10В, в принципе в случаях светодиодов правильней говорить ограничить ток светодиода, но мы при выборе резистора будем пользоваться простым проверенным многими годами способом без всяких математических формул. На каждый вольт необходим резистор сопротивлением 100 Ом, т.е. если светодиод с рабочим напряжением 2В, и мы подключаем к 12 вольтам, нам нужен резистор 100Ом х 10В=1000 Ом или 1кОм обычно на схемах обозначается 1К, мощность резистора зависит от тока светодиода, но если мы используем обычный не мощный светодиод, как правило, его ток 10-20мА и в этом случае достаточно резистора на 0,25Вт самого маленького резистора по размеру.

Резистор с большей мощностью нам понадобится в 2х случаях: 1) если ток светодиода будет больше и 2) если напряжение будет выше, чем 24В и соответственно в случаях подключения светодиода к напряжению 36-48В и выше нам понадобится резистор с большей мощностью 0,5 – 2Вт, а в случае подключения светодиода к сети 220В лучше использовать резистор на 2Вт, но при подключении светодиода к сети переменного тока нам потребуется еще ряд элементов, но об этом чуть позже.

Подключение светодиодов на различное напряжение схема

А если нам надо будет подключить светодиод к напряжению 24В, то резистор нужен будет 100Ом х 22В = 2,2кОм. Т.е. при помощи данного способа можно рассчитать резистор для подключения 2-3 вольтового светодиода и с током 5-20мА на любое напряжение постоянного тока. Для удобства приведу ряд номиналов резисторов (рисунок 2) для разных напряжений постоянного тока:
5В – R1 = 300 Ом; 9В – R1 = 750 Ом; 12В – R1 = 1 кОм; 15В – R1 = 1,3кОм; 18В – R1 = 1,6 кОм; 24В – R1 =2,2 кОм; 28В – 2,6 кОм

Рисунок 2 — Подключение светодиодов к различному напряжению

Если требуется светодиод подключить к батарейке, скажем на 3В, то можно поставить резистор последовательно на 100 Ом, а если батарейка пальчиковая на 1,5В, то можно подключить и без резистора.
При расчете мы можем выбрать только резисторы из стандартных номиналов, поэтому нет ничего страшного, если сопротивление резистора, будет чуть больше или меньше расчетного.

Если вы используете очень яркий светодиод, а светодиод используется, к примеру, для индикации в каких-либо устройствах, то можно сопротивление резистора увеличить, и тем самым яркость светодиода уменьшится, и светодиод не будет ослеплять. Но лучше всего в таких случаях если не требуется большая яркость светодиода, то при покупке в магазине или заказе в Китае можно выбрать матовый светодиод нужного цвета и током, как правило, 6-20мА, угол обзора у данных светодиодов, как правило, составляет 60 градусов, они отлично подходят для индикации, не ослепляют и от них не устают глаза, даже если долго на них смотреть. Прозрачные белые светодиоды для данных целей, как правило, не подходят.

В случае подключения светодиода к микроконтроллеру или плате ARDUINO, как правило, рабочее напряжение составляет 5В, соответственно резистор можно взять 300-470 Ом можно и еще с большим сопротивлением. Главное учитывать, что ток не может превышать предельного тока вывода микроконтроллера, как правило, не более 10мА, поэтому сопротивление резистора 300-470 Ом для подключения светодиода является золотой серединой. Схема подключения светодиода к микроконтроллеру или плате ARDUINO представлена на рисунке 3. Стоит обратить Ваше внимание, что светодиод может быть подключен как анодом, так и катодом к микроконтроллеру и от этого будет зависеть программный способ управления светодиодом.

Рисунок 3 — Подключение светодиода к плате ARDUINO

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

Схема последовательного соединения светодиодов

К примеру, нам необходимо последовательно подключить четыре светодиода к напряжению постоянного тока 12В, соответственно рабочее напряжение светодиодов 2В при последовательном соединении будет 2В х 4шт. = 8В. Тогда мы можем выбрать резистор из стандартного ряда на 470-510 Ом. При последовательном соединении светодиодов ток, протекающий через все светодиоды, будет одинаковым.

Рисунок 5 — Последовательное соединение светодиодов
Одним из недостатков последовательного соединения светодиодов является тот факт, что в случае выхода одного из светодиодов из строя, все светодиоды перестанут светится. Ниже приведена схема с последовательным соединением двух, трех и четырех светодиодов.

Схема параллельного соединения светодиодов

4.Параллельное подключение светодиодов
При параллельном подключении светодиодов резистор выбираем так же, как в случае одиночного светодиода. На каждый светодиод должен быть свой резистор при этом, если резисторы по сопротивлению будут отличаться или светодиоды будут различных марок, то будет очень заметно неравномерность свечения одного светодиода от другова. Ток при параллельном соединении будет складываться в зависимости от количества светодиодов.

Рисунок 6 — Параллельное соединение светодиодов

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

Схема подключения светодиода к сети 220В

6. Подключение светодиода к переменному напряжению 220В.
(Внимание. Опасное напряжение все работы по подключению к сети 220В необходимо производить только при выключенном, снятом напряжении и при этом необходимо убедится, что напряжение отсутствует. Будьте внимательны. Ко всем элементам схемы не должно быть прямого доступа).
При подключении светодиода к переменному напряжению 220В нам понадобится не только резистор, но и диод для выпрямления напряжения, так как светодиод работает от постоянного тока. Без диода на переменное напряжение лучше не включать. Схема подключения светодиода к сети 220В представлена на рисунке 7. Благодаря тому что мы используем два резистора вместо одного, мы можем использовать резисторы мощностью 1Вт. Так же лучше всего установить конденсатор особено если будет заметно мерцание светодиода. Конденсатор может быть керамический или пленочный главное нельзя использовать электролитический конденсатор.

Рисунок 7 — Схема подключения светодиода к сети 220В.

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

Немного математики :
Расчет сопротивления ограничивающего резистора при 5В и токе светодиода 20мА:
R = U / Imax = 5 / 0.020 = 250 Ом — соответственно сопротивление резистора при 5В должно быть не меньше 250 Ом

Arduino для начинающих. Урок 1. Мигающий светодиод

Share Button

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

Краткие сведения: Arduino (ардуино) — популярная аппаратная вычислительная платформа, основными компонентами которой являются плата ввода-вывода и среда разработки. Arduino может использоваться как для создания автономных интерактивных объектов, роботов, так и подключаться к программному обеспечению, выполняемому на компьютере. Платы имеют аналоговые и цифровые порты, к которым можно подключить практически любое простое устройство: кнопка, датчик, мотор, экран. Подробнее об Arduino вы можете прочитать в одном из наших постов.

Arduino часто входит в учебные программы по робототехнике и изучается в кружках робототехники. Но плата популярна и в создании «настоящих» роботов. Именно Arduino может стать «мозгом» вашего робота.

Итак, видео-инструкция сборки мигающего светодиода на Arduino. Очень просто. Всего 2 минуты!

Для подключения мигающего светодиода на Arduino и управления им вам понадобится:

  • плата Arduino
  • breadboard
  • 2 провода «папа-папа»
  • светодиод
  • резистор.

Также вам потребуется программа Arduino IDE, которую можно скачать с сайта Arduino.

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

Breadboard представляет из себя сетку из гнезд, которые обычно соединяются так:

схема действия breadboard

Для удобства приводим схему подключения светодиода на Arduino:

Cхема подключения светодиода

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

Для работы этой модели подойдет следующая программа (программу вы можете просто скопировать в Arduino IDE):

int led = 8;
void setup()
pinMode(led, OUTPUT);
>
void loop()
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
delay(1000);
>

И тоже самое с построчными комментариями (на первых порах вы можете использовать готовые программы, не вникая в синтаксис и алгоритм):
int led = 8; //объявление переменной целого типа, содержащей номер порта к которому мы подключили второй провод
void setup() //обязательная процедура setup, запускаемая в начале программы; объявление процедур начинается словом void
pinMode(led, OUTPUT); //объявление используемого порта, led — номер порта, второй аргумент — тип использования порта — на вход (INPUT) или на выход (OUTPUT)
>
void loop() //обязательная процедура loop, запускаемая циклично после процедуры setup
digitalWrite(led, HIGH); //эта команда используется для включения или выключения напряжения на цифровом порте; led — номер порта, второй аргумент — включение (HIGH) или выключение (LOW)
delay(1000); //эта команда используется для ожидания между действиями, аргумент — время ожидания в миллисекундах
digitalWrite(led, LOW);
delay(1000);
>

На этом первый урок закончен!

Смотрите также:

Посты по урокам:

  1. Первый урок: Светодиод.
  2. Второй урок: Кнопка.
  3. Третий урок: Потенциометр.
  4. Четвертый урок: Сервопривод.
  5. Пятый урок: Трехцветный светодиод.
  6. Шестой урок: Пьезоэлемент.
  7. Седьмой урок: Фоторезистор.
  8. Восьмой урок: Датчик движения (PIR) на Arduino. Автоматическая отправка E-mail.
  9. Девятый урок: Подключение датчика температуры и влажности DHT.

Все посты сайта «Занимательная робототехника» по тегу Arduino.

Наш YouTube канал, где публикуются видео-уроки.

Не знаете, где купить Arduino? Все используемые в уроке комплектующие входят в большинство готовых комплектов Arduino, их также можно приобрести по отдельности. Подробная инструкция по выбору здесь. Низкие цены, спецпредложения и бесплатная доставка на сайтах AliExpress и DealExtreme. Если нет времени ждать посылку из Китая — рекомендуем интернет-магазины Амперка и DESSY. Низкие цены и быструю доставку предлагает интернет-магазин ROBstore. Смотри также список магазинов.

Автор: Александр Гагарин.

Share Button

Читайте также

42 комментария к статье “Arduino для начинающих. Урок 1. Мигающий светодиод”

маша
02.04.2014

Хотелось бы, чтоб подробнее была объяснена физика происходящего. А то как обезьянки мы собрали схему, но в физике ничего не понимаю.

HallCat Crew
06.04.2014
Маша, а ты изучаешь ардуино?))) Если что давай вместе учить)))
Виктор
31.03.2015

Маш обычно индикаторные диоды потребляют ток в пределах 20мА это 0,02А или 20/1000А. на входе 5в. Красный диод потребляет 1.9-2.6 в белый, зеленый,синий 3-3.6в. Таким образом по Закону Ома сила тока=напряжение деленное на сопративление. То есть 5в-3в=3в напряжение которое нужно погасить. 3в делим на 0.02А получаем 150Ом нужный номинал. 0,02*3=0,06вт или 0,02А*0,02А*150Ом это рассеиваемая мощность на резисторе. Теперь подбираем резистор ближайший идет 220ом 1/4вт. Вот домашнее задание теперь вам разобраться сколько от милиампер будет через него идти и будет ли гореть он можно проверить имперчески. Резистор нужен просто чтобы не перегреть диод. Да и еще длинную ножку катод нужно подключать к + а короткую к минусу свкетодиод работает как обычны1 диод пропускает ток только в одном направлении от + к — только он еще и горит. Да и еще при параллельном соединнии тоесть если несколько подключить по двум линимям складываеться сопротивление и ток оптребляемый при постоянном напряжении. А при последовательно складываеться напряжене то есть три красных последовательно не знаю загоряться ли но если загоряться то резистор им не нужен скорее всего. Или красный с синим последовательно как раз 5вольт. У нас USB порт всегда 5в выдает стабильно наверное еслиь бы от аккумулятора питался тогда да. Ну мигает диод потому что подпраграма периодически включает выключает пин.

HallCat Crew
06.04.2014
Все это уже 100500 раз разбиралось….наплодили сайтов по дуино и копируют друг у друга
jeff
07.04.2014

Маша. Диод горит потому что ток идёт)). Ардуино, ардуино зови меня так)). ардуино лучше изучать со мной))

маша
12.02.2019

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

Алексей
10.06.2014
Светодиод ардуино. это легко. а как подключить к ардуино 100 ватную лампу накаливания, например?
Сергей
14.07.2014
мощными приборами ардуиной управлять — релюшка потребуется
Михаил
12.07.2020
Нужно подключить к ардуинке реле, управляющее лампочкой, запитанной от розетки
Алексей
10.06.2014
В указанных китайских магазинах купить ардуино дешево, но ждать месяц
Элизар
08.02.2019
Дождался же))))
Victor
27.11.2014

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

Aleks
22.12.2014
А в схеме можно использовать любой резистор?Или нет?А какие можно?
Занимательная робототехника
10.02.2015

Рекомендуется использовать резистор на 220 Ом. Цветовая маркировка такого резистора — красный-красный-коричневый-коричневый или красный-красный-черный-черный-коричневый.

Ольга
06.03.2015

Автор, вы молодец. Проект хороший.Если я правильно поняла, то цель проекта — научить как можно большее количество людей работать с Arduino.
Но Маша права, не хватает схемы и объяснения, почему мы делаем то или иное действие.
Если вы заявляете уровень » с нуля», то будьте готовы, что многие «нули» совсем не в курсе, для чего нужен резистор, и что такое анод и катод у диода (в видео это обозначено как + и -).
Очень надеюсь, что вы прочтете этот большой коммент и прислушаетесь к совету.
Желаю удачи вашему проекту!

Виктор
31.03.2015

то есть, можн,о что-то типо этог,о я просто не знаю язык. Тут чтото си подобное
pinmode(8,output) //скорее всего вывод(output) это константа значение ее не знаю то есть если аутрут равно 2 то можно писать 2 вместо output хотя первое читабельнее.
Настроили 8мую иголку на вывод
Дальше мне не понятно почему программа с названием луп циклиться? Программа по идее должна линейно выполняться. Если она не завершаеться возможно есть какой-нибудь оператор завершения а просто тупо повторяеться многократно тогда каждый раз будет выполняться инциализация переменной.
Есть ли какаято возможность записать эту программу в память ардуино чтобы она была там автономно без подключения к компу?
Может все подпрограммы с именем loop цикляться?
Я так понимаю если low и high это константы причем логические как ложь и истина то и их значение скорее всего шест. x00 и шест xFF то тогда логически high исключает low самом деле 00 xor ff=ff XD Тогда это очень компактнобудет
int switchstate=low
pinmode(8,0utput) //Иницализация
метка loop:
swithstate=switchstate xor switchstate;
delay(1000);
goto loop;
Ну как бы в языке наверное нет goto я просто написал у меня нет ардуино и языка си я не знаю. В примере просто показанно как переменные описывать хотя в данном случае 8 это константа.
void переводиться как пустой наверное я понял в языке си нет понятия function только routine подпрограмма я так понял функция без параметров есть подпрограмма. Все операторы заканчиваються «;» То есть void потом Имя подпрограммы в скобках формальные параметры потом точка с запятой, а между фигрурными скобками ее код.
Ага еще интереснее было бы если исполизовать логические операторы типо if then или циклы типо while wend или repeat until скажем моргнуть 10раз. Могу предположить если аргумент delay короткое целое 16 бит то 2^16=65536 то и значение предельное в диапозоне 60мс хотя может быть и длинное целое быть 4байта.
Да в принципе если они использовали подпрограмму как таковую и переменную тогда могли бы написать и программе шапку типо того
пустой Подпрограмматребуетпеременнуютипацеое(целое Требуемаяпеременная); И синтаксис заодно void «(«[» » [«,»]>*»)» Ну как бы синтаксис я не знаю чтобы его описать просто предположил что переменые запятой разделяються.

Nikola
30.06.2015

tolkom vsjo ne pro4ital srazu no zaintresovalsa s mesta loop! nu eto tipo objasnjaetssa kak petlja — prostimi slovami. ne toljko v programmirovanii ispolzuetssa loop. tobish cikl po krugu… kakto tak. esli ne budet loop to eta programma zakon4itssa posle pdnoj vspiwki svetodioda.
ja poproboval sdelal 4 korotkix miganija s pauzoj v konce. eslib ne loop to 4x morgnulab i vsjo bolwe ne migalob. vot eto vabwwe ne ponjal… есть если аутрут равно 2 то можно писать 2 вместо output. po4emu eto output ravno 2? gde ti vzjal takoe ja ne vjexal. xotj ja v programmirovanii lamer no output eto po ljubomu ВЫХод. OUT on i v afrike vixod, no po4emu put ja ne v kurse 😛 😀 Есть ли какаято возможность записать эту программу в память ардуино чтобы она была там автономно без подключения к компу?
da kstati ona zapisivaetssa s pomowju USB kabelja i polnostju avtonomna rabotaet prosto pitanie vrubaesh i ona rabotaet. ja toljko cto pervij raz vklju4il etu platu potomucto sevodnja toljko polu4il ejo po po4te. s programmirovaniem tow ranshe ne stalkivalsa vabwwe… toljko oxrannie signalizacii no tam vabwwe nr to 😀 i blizko netu.

Занимательная робототехника
30.06.2015

Про автономность — именно так. Вы загружаете программу в микроконтроллер. После загрузки, можно отсоединить arduino от компьютера.
Про цикл loop верно. Любая программа для arduino ,будет в виде цикла. Опрос входящих сигналов на пины ардуино (сбор показаний датчиков), формирование управляющих воздействий, например, включить светодиод или повернуть серво и т.п. — все это всегда будет внутри цикла (loop).
Ваша программа в любом случае должна быть циклична. Наверняка, если вы хотите сделать 4 мигания и остановку, то это должно происходить в зависимости от какого то входящего сигнала по условию (срабатывание датчика, нажатие кнопки и т.п.). Это условие будет внутри цикла. Как, например, в уроке про кнопку http://edurobots.ru/arduino-knopka/

jktu
22.01.2017
твои комменты невозможно читать, мама, заберите у него клавиатуру
Nikola
30.06.2015

vot sdelal takuju migalku int led = 7; void setup()
pinMode(led, OUTPUT);
>
void loop()
digitalWrite(led, HIGH);
delay(20);
digitalWrite(led, LOW);
delay(50);
digitalWrite(led, HIGH);
delay(20);
digitalWrite(led, LOW);
delay(50);
digitalWrite(led, HIGH);
delay(20);
digitalWrite(led, LOW);
delay(50);
digitalWrite(led, HIGH);
delay(20);
digitalWrite(led, LOW);
delay(500); >
skazhi kak sdelatj ctob na vixode 8 vtoroj svetodiod migal to4no takuju programmu posle delay(500) i v konce u nevo opjatj delay 500.
kuda ja dolzen vpisatj vixod nomer 8? i kak eto budet pravilno sdelatj? kakto malo infi dlja na4inajuwwix.

Занимательная робототехника
30.06.2015

В примере к 8 пину светодиод подключен (led=8).
Чтобы использовать второй светодиод, подключенный к ардуино, внутри цикла должны быть еще дополнительно те же самые команды,
digitalWrite(led, HIGH); delay(1000); digitalWrite(led, LOW); delay(1000); только номер пина поменять на другой (вместо led)

ark4life
27.03.2016

Интересно, почему не удаётся сделать последовательное засвечивание светодиодов? Должно быть так: первый загорелся,через 750 мсек — второй, 750 мсек погорели и одновременно потухли, потом заново. Вместо этого получается ,что при загорании втором , первый гасится,словно его коротит. Подключение схоже на данное предоставленое в уроке,только использованы другие цифровые выходы(11,12). Переход у светодиодов за землю общий,через резистор. Не понимаю где я ошибся: програмно ,в физике или же одновременно не могут работать 2 цифровых выхода?
Скетч:
int led = 12;
int lad = 11;
void setup() pinMode(led,OUTPUT);
pinMode(lad,OUTPUT);
> void loop() digitalWrite(lad,HIGH);
delay(750);
digitalWrite(led,HIGH);
delay(750);
digitalWrite(lad,LOW);
digitalWrite(led,LOW);
delay(1000);
>

anton
11.06.2016

Команда «delay» полностью останавливает цикл. Для того, что бы диоды моргали попеременно, нужно исключить эту команду и использовать уже условия. Самый примитивный способ — счетчик.
int led1 = 12;
int led2 = 11;
int count = 0; void setup() pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
> void loop() < count = count + 1; if count = 1 then
digitalWrite(led1,HIGH);
endif; if count = 750 then
digitalWrite(led2,HIGH);
endif; if count = 1500 then
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
count = 0; //сбрасываем счетчик, и со следующего прохода все начнется сначала
endif;
> Вот только на счет синтаксиса языка не уверен. Так же нужно узнать количество тактов в секунду (750 мсек — это не 750 тактов).

Владимир
16.04.2016

переделал твоё))) теперь моргают попеременно! int led = 12;
int lad = 11;
void setup() pinMode(led,OUTPUT);
pinMode(lad,OUTPUT);
>
void loop() digitalWrite(lad,HIGH);
delay(1000); digitalWrite(lad,LOW);
delay(1000);
digitalWrite(led,HIGH);
delay(1000);
digitalWrite(led,LOW); delay(1000);
>

Владимир
16.04.2016

int led = 12;
int lad = 11;
void setup() pinMode(led,OUTPUT);
pinMode(lad,OUTPUT);
>
void loop() digitalWrite(lad,HIGH);
delay(1000); digitalWrite(lad,LOW);
delay(1000);
digitalWrite(led,HIGH);
delay(1000);
digitalWrite(led,LOW); delay(1000);
>

Роман
17.03.2017

Нифига твой пример не работает. Ошибка при проверке. Синтаксис должен быть другим. А каким не знаю пока…

nemezida.su
26.10.2016
Блин, как это круто. Можно год изучать и придумывать что-то)
Андрей
26.11.2016

#include «Ultrasonic.h»
Ultrasonic ultrasonic (8,9);
void setup() Serial.begin(9600); > void loop() float dist_cm=ultrasonic.Ranging(CM);
Serial.println(dist_cm);
delay(1000);
> int Trig = 8;
int Echo = 9;
int ledPin = A0; Подключение Ультрозвукового датчика

Passer
01.02.2017

Кто нибудь знает русскоязычные книги про ардуино. Не расчитанные на обезьян как эта статья. И не суровая спецификация. А именно книга. Которая будет обьяснять все работу всех элементов по отдельности и вместе как обычно это бывает в книгах.

Занимательная робототехника
01.02.2017

Как вариант, купить книгу от Джереми Блюма «Изучаем Arduino» (Exploring Arduino (Jeremy Blum)) Перевод и издание: БХВ-Петербург
Статья в виде инструкции для начинающих (без опыта), а не для обезьян. Формат подачи информации «для чайников» имеет право на существование.

саша
25.02.2017

подскажите, пожалуста, как написать код, чтоб светодиод загорался при нажатии кнопки и через 5 секунд гас и больше не загорался, пока опять не будет нажата кнопка.

Ербол
10.05.2017

Напишите программу, которая подсвечивает светодиоды 0.5c с четными номерами, следующие 0.5 с нечетными номерами. Помогите пожалуйста.

Сергей
07.06.2017

Можно мигать встроенным светодиодом и стартовый урок посвятить только программированию со встроенным светодиодом. К 13 порту подключен встроенный светодиод для этого. Кроме того 13 порт уже имеет распаянный на плате токоограничивающий резистор, поэтому и внешним светодиодом мигать на 13 порту безопаснее — плата целее у новичка будет

Тимур
14.12.2017

Для начинающих есть спец прога для ардуино, вней программируется без использования си, как фбд
тоже блочная, где-то читал что есть и лестничная структура программирования .
Ольга права, если Вы пытаетесь объяснить с нуля тогда нужно сначала азы рассказать.

Иван
28.02.2018

добрый день! Помогите. Не могу сделать так, чтобы светодиоды после мигания оставались гореть. digitalWrite(Up_LedPin, HIGH);
digitalWrite(Down_LedPin, HIGH);
digitalWrite(Right_LedPin, HIGH);
delay(10);
digitalWrite(Up_LedPin, LOW);
digitalWrite(Down_LedPin, LOW);
digitalWrite(Right_LedPin, LOW);
delay(200);
digitalWrite(Up_LedPin, HIGH);
digitalWrite(Down_LedPin, HIGH);
digitalWrite(Right_LedPin, HIGH);
delay(200);
digitalWrite(Up_LedPin, HIGH);
digitalWrite(Down_LedPin, HIGH);
digitalWrite(Right_LedPin, HIGH);

Вячеслав
09.03.2018

Объясните пожалуйста, где я ошибся. По моим расчетам, два светодиода должны попеременно включаться и выключаться соответственно, однако они включаются и выключаются одновременно. Как исправить?
int world = 8;
int sli = 7; void setup() < pinMode(world, OUTPUT);
pinMode(sli, OUTPUT);
> void loop() digitalWrite(sli, LOW); delay(1000); digitalWrite(world, HIGH); delay(1000); digitalWrite(sli, HIGH); delay(1000); digitalWrite(world, LOW); delay(1000); >

Вячеслав
09.03.2018

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

Влад
09.01.2019

Добрый день! Начал изучать ардуино. Помогите, пожалуйста, разобраться как работает программа. Например, программа состоит из десяти команд. Каждая команда выполняется за один такт.
Каким образом будут выполняться команды:
1. В первом такте выполнится только первая команда. Во втором такте выполнится только вторая команда … В десятом такте выполнится только десятая команда. В одиннадцатом такте повторно выполнится первая команда и т.д. То есть если в программе будет двадцать команд, то первая команда повторно выполнится на двадцать первом такте?
2. В первом такте выполнятся все десять команд. Во втором такте выполнятся все десять команд и т.д. То есть независимо от того сколько команд в программе они все будут выполняться каждый такт?

Aleks
11.01.2019

По сценарию описанному Вами в 1-м варианте. Хотя несколько условно. Некоторые команды выполняются за несколько тактов процессора.

Jkru
05.05.2019

Подписаны провода, когда это нафиг не надо и не подписано сопротивление, когда это вообще необходимо. В статье тоже инфы нет какое ставить. Диод куда ставить тоже нанонятно, длинная нога в землю? В резистор? Как вы так написали то?

Михаил
30.12.2022

Я тоже могу дать свой урок, как реализовать мигание светодиодом на плате Arduino. Вот простой пример кода, который позволяет реализовать мигание светодиодом на плате Arduino: // Определяем номер пина, на котором находится светодиод
int ledPin = 13; void setup() // Инициализируем пин светодиода как выход
pinMode(ledPin, OUTPUT);
> void loop() // Включаем светодиод
digitalWrite(ledPin, HIGH);
// Ждем 1 секунду
delay(1000);
// Выключаем светодиод
digitalWrite(ledPin, LOW);
// Ждем 1 секунду
delay(1000);
> В этом коде мы определяем пин, на котором находится светодиод, инициализируем этот пин как выход, затем в цикле loop включаем светодиод с помощью команды digitalWrite, ждем 1 секунду, выключаем светодиод и снова ждем 1 секунду. В результате светодиод будет мигать с частотой 1 Гц.

Занимательная робототехника
22.02.2023

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

Светодиоды и ленты

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

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

Светодиод – это устройство, которое питается током, а не напряжением. Как это понимать? Яркость светодиода зависит от тока, который через него проходит. Казалось бы, достаточно знания закона Ома из первого урока в разделе, но это не так!

  • Светодиод в цепи нельзя заменить “резистором”, потому что он ведёт себя иначе, нелинейно.
  • Светодиод полярен, то есть при неправильном подключении он светиться не будет.
  • Светодиод имеет характеристику максимального тока, на котором может работать. Для обычных 3 и 5 мм светодиодов это обычно 20 мА.
  • Светодиод имеет характеристику падение напряжения (Forward Voltage), величина этого падения зависит от излучаемого цвета. Цвет излучается кристаллом, состав которого и определяет цвет. У красных светодиодов падение составляет ~2.5 вольта, у синих, зелёных и белых ~3.5 вольта. Более точную информацию можно узнать из документации на конкретный светодиод. Если документации нет – можно пользоваться вот этой табличкой, тут даны минимальные значения:

blank Если питать светодиод напряжением ниже его напряжения падения, то яркость будет не максимальная, и здесь никаких драйверов не нужно. То есть красный светодиод можно без проблем питать от пальчиковой батарейки. В то же время кристалл может деградировать и напряжение уменьшится, что приведёт к росту тока. Но это редкий случай. Как только мы превышаем напряжение падения – нужно стабилизировать питание, а именно – ток. В простейшем случае для обычного светодиода ставят резистор, номинал которого нужно рассчитать по формуле: R = (Vcc — Vdo) / I , где Vcc это напряжение питания, Vdo – напряжение падения (зависит от светодиода), I – ток светодиода, а R – искомое сопротивление резистора. Посчитаем резистор для обычного 5 мм светодиода красного цвета при питании от 5 Вольт на максимальной яркости (2.5 В, 20 мА): (5-2.5)/0.02=125 Ом. Для синего и зелёного цветов получится 75 Ом. Яркость светодиода нелинейно зависит от тока, поэтому “на глаз” при 10 мА яркость будет такая же, как на 20 мА, и величину сопротивления можно увеличить. А вот уменьшать нельзя, как и подключать вообще без резистора. В большинстве уроков и проектов в целом для обычных светодиодов всех цветов ставят резистор номиналом 220 Ом. С резистором в 1 кОм светодиод тоже будет светиться, но уже заметно тусклее. Таким образом при помощи резистора можно аппаратно задать яркость светодиода. Как определить плюс (анод) и минус (катод) светодиода? Плюсовая нога длиннее, со стороны минусовой ноги бортик чуть срезан, а сам электрод внутри светодиода – крупнее: blank

Мигаем

blank

Мигать светодиодом с Ардуино очень просто: подключаем катод к GND, а анод – к пину GPIO. Очень многие уверены в том, что “аналоговые” пины являются именно аналоговыми, но это не так: это обычные цифровые пины с возможностью оцифровки аналогового сигнала. На плате Nano пины A0-A5 являются цифровыми и аналоговыми одновременно, а вот A6 и A7 – именно аналоговыми, то есть могут только читать аналоговый сигнал. Так что подключимся к A1, настраиваем пин как выход и мигаем!

void setup() < pinMode(A1, OUTPUT); >void loop()

Как избавиться от delay() в любом коде я рассказывал вот в этом уроке.

Мигаем плавно

Как насчёт плавного управления яркостью? Вспомним урок про ШИМ сигнал и подключим светодиод к одному из ШИМ пинов (на Nano это D3, D5, D6, D9, D10, D11). Сделаем пин как выход и сможем управлять яркостью при помощи ШИМ сигнала! Читай урок про ШИМ сигнал. Простой пример с несколькими уровнями яркости:

void setup() < pinMode(3, OUTPUT); >void loop()

blank

Подключим потенциометр на A0 и попробуем регулировать яркость с его помощью:

void setup() < pinMode(3, OUTPUT); >void loop() < // analogRead(0) / 4 == 0. 255 analogWrite(3, analogRead(0) / 4); delay(100); >

Как вы можете видеть, все очень просто. Сделаем ещё одну интересную вещь: попробуем плавно включать и выключать светодиод, для чего нам понадобится цикл из урока про циклы.

void setup() < pinMode(3, OUTPUT); >void loop() < for (int i = 0; i < 255; i++) < analogWrite(3, i); delay(20); >for (int i = 255; i > 0; i--) < analogWrite(3, i); delay(20); >>

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

void setup() < pinMode(3, OUTPUT); >uint32_t tmr; int val = 0; bool dir = true; void loop() < if (millis() - tmr >= 20) < tmr = millis(); if (dir) val++; // увеличиваем яркость else val--; // уменьшаем if (val >= 255 || val >

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

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

blank

Ещё один момент: если подключить светодиод наоборот, к VCC, то яркость его будет инвертирована: 255 выключит светодиод, а 0 – включит, потому что ток потечет в другую сторону:

Светодиодные ленты

Светодиодная лента представляет собой цепь соединённых светодиодов. Соединены они не просто так, например обычная 12V лента состоит из сегментов по 3 светодиода в каждом. Сегменты соединены между собой параллельно, то есть на каждый приходят общие 12 Вольт. Внутри сегмента светодиоды соединены последовательно, а ток на них ограничивается общим резистором (могут стоять два для более эффективного теплоотвода): Таким образом достаточно просто подать 12V от источника напряжения на ленту и она будет светиться. За простоту и удобство приходится платить эффективностью. Простая математика: три белых светодиода, каждому нужно по ~3.2V, суммарно это 9.6V. Подключаем ленту к 12V и понимаем, что 2.5V у нас просто уходят в тепло на резисторах. И это в лучшем случае, если резистор подобран так, чтобы светодиод горел на полную яркость.

Подключаем к Arduino

Здесь всё очень просто: смотрите предыдущий урок по управлению нагрузкой постоянного тока. Управлять можно через реле, транзистор или твердотельное реле. Нас больше всего интересует плавное управление яркостью, поэтому продублирую схему с полевым транзистором: blank Конечно же, можно воспользоваться китайским мосфет-модулем! Пин VCC кстати можно не подключать, он никуда не подведён на плате. blank

Управление

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

Питание и мощность

Светодиодная лента потребляет немаленький ток, поэтому нужно убедиться в том, что выбранный блок питания, модуль или аккумулятор справится с задачей. Но сначала обязательно прочитайте урок по закону Ома! Потребляемая мощность светодиодной ленты зависит от нескольких факторов:

  • Яркость. Максимальная мощность будет потребляться на максимальной яркости.
  • Напряжение питания (чаще всего 12V). Также бывают 5, 24 и 220V ленты.
  • Качество, тип и цвет светодиодов: одинаковые на вид светодиоды могут потреблять разный ток и светить с разной яркостью.
  • Длина ленты. Чем длиннее лента, тем больший ток она будет потреблять.
  • Плотность ленты, измеряется в количестве светодиодов на метр. Бывает от 30 до 120 штук, чем плотнее – тем больший ток будет потреблять при той же длине и ярче светить.

Лента всегда имеет характеристику мощности на погонный метр (Ватт/м), указывается именно максимальная мощность ленты при питании от номинального напряжения. Китайские ленты в основном имеют чуть меньшую фактическую мощность (в районе 80%, бывает лучше, бывает хуже). Блок питания нужно подбирать так, чтобы его мощность была больше мощности ленты, т.е. с запасом как минимум на 20%.

  • Пример 1: нужно подключить 4 метра ленты с мощностью 14 Ватт на метр, лента может работать на максимальной яркости. 14*4 == 56W, с запасом 20% это будет 56*1.2 ~ 70W, ближайший блок питания в продаже будет скорее всего на 100W.
  • Пример 2: берём ту же ленту, но точно знаем, что яркость во время работы не будет больше половины. Тогда можно взять блок на 70 / 2 == 35W.

Важные моменты по току и подключению:

  • Подключение: допустим, у нас подключено ленты на 100W. При 12 Вольтах это будет 8 Ампер – весьма немаленький ток! Ленту нужно располагать как можно ближе к блоку питания и подключать толстыми (2.5 кв. мм и толще) проводами. Также при создании освещения есть смысл перейти на 24V ленты, потому что ток в цепи будет меньше и можно взять более тонкие провода: если бы лента из прошлого примера была 24-Вольтовой, ток был бы около 4 Ампер, что уже не так “горячо”.
  • Дублирование питания: лента сама по себе является гибкой печатной платой, то есть ток идёт по тонкому слою меди. При подключении большой длины ленты ток будет теряться на сопротивлении самой ленты, и чем дальше от точки подключения – тем слабее она будет светить. Если требуется максимальная яркость на большой длине, нужно дублировать питание от блока питания дополнительными проводами, или ставить дополнительные блоки питания вдоль ленты. Дублировать питание рекомендуется каждые 2 метра, потому что на такой длине просадка яркости становится заметной уже почти на всех лентах.
  • Охлаждение: светодиоды имеют не 100% КПД, плюс ток в них ограничивается резистором, и как результат – лента неслабо греется. Рекомендуется приклеивать яркую и мощную ленту на теплоотвод (алюминиевый профиль). Так она не будет отклеиваться и вообще проживёт гораздо дольше.

Видео

Полезные страницы

  • Набор GyverKIT – большой стартовый набор Arduino моей разработки, продаётся в России
  • Каталог ссылок на дешёвые Ардуины, датчики, модули и прочие железки с AliExpress у проверенных продавцов
  • Подборка библиотек для Arduino, самых интересных и полезных, официальных и не очень
  • Полная документация по языку Ардуино, все встроенные функции и макросы, все доступные типы данных
  • Сборник полезных алгоритмов для написания скетчей: структура кода, таймеры, фильтры, парсинг данных
  • Видео уроки по программированию Arduino с канала “Заметки Ардуинщика” – одни из самых подробных в рунете
  • Поддержать автора за работу над уроками
  • Обратная связь – сообщить об ошибке в уроке или предложить дополнение по тексту ([email protected])

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

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