Как подключить светодиод к плате Arduino

Обработка битовой матрицы состояния светодиода

Уменьшаем время срабатывания события до 1/8 секунды и в 1 байте кодируем 8 бит состояний, отображаемых последовательно.

C++

// Массив режимов работы светодиода
byte modes[] = {
0B00000000, //Светодиод выключен
0B11111111, //Горит постоянно
0B00001111, //Мигание по 0.5 сек
0B00000001, //Короткая вспышка раз в секунду
0B00000101, //Две короткие вспышки раз в секунду
0B00010101, //Три короткие вспышки раз в секунду
0B01010101 //Частые короткие вспышки (4 раза в секунду)
};

uint32_t ms, ms1 = 0, ms2 = 0;
uint8_t blink_loop = 0;
uint8_t blink_mode = 0;
uint8_t modes_count = 0;

void setup() {
pinMode(13, OUTPUT);
digitalWrite(13, LOW);
modes_count = 1;
blink_mode = modes;
}

void loop() {
ms = millis();
// Событие срабатывающее каждые 125 мс
if( ( ms – ms1 ) > 125|| ms < ms1 ){
ms1 = ms;
// Режим светодиода ищем по битовой маске
if( blink_mode & 1<<(blink_loop&0x07) ) digitalWrite(13, HIGH);
else digitalWrite(13, LOW);
blink_loop++;
}

// Этот код служит для демонстрации переключения режимов
// Один раз в 5 секунд меняем эффект
if( ( ms – ms2 ) > 5000|| ms < ms2 ){
ms2 = ms;
blink_mode = modes;
if( modes_count >= 7 )modes_count = 1;
}
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

// Массив режимов работы светодиода

bytemodes={

0B00000000,//Светодиод выключен

0B11111111,//Горит постоянно

0B00001111,//Мигание по 0.5 сек

0B00000001,//Короткая вспышка раз в секунду

0B00000101,//Две короткие вспышки раз в секунду

0B00010101,//Три короткие вспышки раз в секунду

0B01010101//Частые короткие вспышки (4 раза в секунду)

};

uint32_t ms,ms1=,ms2=;

uint8_t  blink_loop=;

uint8_t  blink_mode=;

uint8_t  modes_count=;

voidsetup(){

pinMode(13,OUTPUT);

digitalWrite(13,LOW);

modes_count=1;

blink_mode=modesmodes_count;

}
 
 

voidloop(){

ms=millis();

// Событие срабатывающее каждые 125 мс  

if((ms-ms1)>125||ms<ms1){

ms1=ms;

// Режим светодиода ищем по битовой маске      

if(blink_mode&1<<(blink_loop&0x07))digitalWrite(13,HIGH);

elsedigitalWrite(13,LOW);

blink_loop++;

}

// Этот код служит для демонстрации переключения режимов    
// Один раз в 5 секунд меняем эффект  

if((ms-ms2)>5000||ms<ms2){

ms2=ms;

blink_mode=modesmodes_count++;

if(modes_count>=7)modes_count=1;

}

}

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

4-й режим. Короткая вспышка 1 раз в секунду

5-й режим. Две короткие вспышки в секунду

6-й режим. Три вспышки.

Ну и постоянная череда коротких вспышек

В принципе, на этом можно было и остановиться, так как для большинства проектов этого бы хватило. Но если этого мало и вам нужно будет разрабатывать программирование автосигнализации )))

Что если 8 бит состояний светодиодов мало?

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

C++

byte bytes[] = {0B00010101,0B00110011,0B10100011,0B00000010};

uint32_t ms, ms1 = 0;
uint8_t blink_loop = 0;

void setup() {
pinMode(13, OUTPUT);
digitalWrite(13, LOW);
}

void loop() {
ms = millis();
// Событие срабатывающее каждые 125 мс
if( ( ms – ms1 ) > 125|| ms < ms1 ){
ms1 = ms;
// Выделяем сдвиг светодиода (3 бита)
uint8_t n_shift = blink_loop&0x07;
// Выделяем номер байта в массиве (2 байта со здвигом 3 )
uint8_t b_count = (blink_loop>>3)&0x3;
if( bytes & 1<< n_shift )digitalWrite(13, HIGH);
else digitalWrite(13, LOW);
blink_loop++;
}
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

bytebytes={0B00010101,0B00110011,0B10100011,0B00000010};

uint32_t ms,ms1=;

uint8_t  blink_loop=;

voidsetup(){

pinMode(13,OUTPUT);

digitalWrite(13,LOW);

}
 
 

voidloop(){

ms=millis();

// Событие срабатывающее каждые 125 мс  

if((ms-ms1)>125||ms<ms1){

ms1=ms;

// Выделяем сдвиг светодиода (3 бита)  

uint8_t n_shift=blink_loop&0x07;

// Выделяем номер байта в массиве (2 байта со здвигом 3 )      

uint8_t b_count=(blink_loop>>3)&0x3;

if(bytesb_count&1<<n_shift)digitalWrite(13,HIGH);

elsedigitalWrite(13,LOW);

blink_loop++;

}

}

Получаем циклический сигнал SOS — три коротких, три длинных и снова три коротких сигнала светодиодом, повторяемый каждые 4 секунды

Для тех, кто считает, что программировать микроконтроллеры в цикле loop() это не по Фен шую Несмотря на то, что millis() использует прерывание по первому таймеру

Кнопка ардуино

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

Тактовые кнопки и кнопки-переключатели

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

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

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

Вариантов различных кнопок великое множество, это действительно один из самых распространенных видов электронных компонентов.

Кнопки ардуино для простых проектов

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

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

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

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

Для подключения нескольких светодиодов к ардуино нужно просто подключить каждый из них к своему цифровому порту по той же схеме. Например, для создания проекта «Мигалка» можно взять два светодиода красного и синего цвета, подключив через сопротивление их положительные (длинные ножки)контакты к 13 и 12 пину соответственно. Короткие ножки подключаются к минусу – земле.

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

Мы уже знаем, что на плате нас дожидаются три разъема с таким обозначением («GND»), можно подключать к любому. Если разъемов питания будет не хватать, у нас есть три варианта.

  • Сформировать нужные уровни питания на свободных пинах. Например, подав в скетче низкий уровень сигнала на пин 5, мы получим на этом разъеме необходимый нам «минус».
  • Использовать макетную плату, на которой есть отличные варианты для раздачи «плюсов и минусов» через общие линии питания (смотрите статью на нашем сайте).
  • Использовать специальные платы расширения Sensor Shield, у которых для каждого пина отдельно выводятся пины с питанием и землей.

Точно так же вы сможете подключить и следующие светодиоды, приступив к проектам светофор или светодиодная лента.

Как подключить светодиод к Arduino Uno / Nano

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

  • Arduino Uno / Arduino Nano / Arduino Mega;
  • макетная плата;
  • несколько светодиодов и резисторов 220 Ом;
  • провода «папа-папа».

Для надёжной сборки устройств создаются печатные платы, на что уходит много времени. Для быстрой сборки электрических схем без пайки используют макетную плату (breadboard). Под слоем пластика на макетной плате находятся медные пластины-рельсы (дорожки), выложенные по простому принципу (смотри фото). Дорожки служат для создания контакта между радиоэлементами и проводами.

Быстрая сборка схем на макетной плате

Одну и ту же схему можно собрать разными способами Длинная ножка светодиодов — анод, она всегда подключается к плюсу

Для чего светодиод включают к Ардуино с резистором? Дело в том, что в светодиоде стоит кристалл который боится больших токов. Резистор призван ограничивать силу тока (Амперы), чтобы светодиод не перегорел. Большой ток губителен для светодиода, меньший ток (благодаря подключению резистора) обеспечивает длительную работу. Чтобы подключить светодиод к Ардуино без резистора, используйте 13 порт.

Кабель с разъемами USB-A и USB-B для подключения принтера

Если у вас не установлена программа Arduino IDE, то скачайте последнюю версию на официальном сайте www.arduino.cc. С помощью USB кабеля производится запись программ, также плата получает питание от компьютера. Если требуется автономная работа электронного устройства, то плату можно запитать от батарейки или блока питания на 7-12 В. При подаче питания на плате загорится светодиод индикации.

Убедитесь, что программа определила ваш тип платы Ардуино

Шаг 1. Зайдите в основном меню «Инструменты -> Плата». Если плата Arduino определилась неправильно, то выберите необходимый тип, например, Arduino Uno.

Шаг 2. Установите порт (кроме COM1) подключения в меню «Инструменты -> Порт», так как при подключении Ардуино к ПК создается виртуальный COM-порт.

Убедитесь, что программа определила порт подключения Ардуино

Скетч для включения светодиода от Ардуино

void setup() {
pinMode(13, OUTPUT); // объявляем пин 13 как выход
}

void loop() {
digitalWrite(13, HIGH); // зажигаем светодиод

delay(1000); // ждем 1 секунду

digitalWrite(13, LOW); // выключаем светодиод

delay(1000); // ждем 1 секунду
}

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

Скопируйте код и вставьте скетч в программу Arduino IDE

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

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

Перед загрузкой программы, потребуется сохранить скетч

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

  1. процедура выполняется при запуске микроконтроллера один раз. Используется для конфигурации портов микроконтроллера и других настроек;
  2. после выполнения запускается процедура , которая выполняется в бесконечном цикле. Это мы используем, чтобы светодиод мигал постоянно;
  3. процедуры и должны присутствовать в любой программе (скетче), даже если вам не нужно ничего выполнять в них — пусть они будут пустые, просто не пишите ничего между фигурными скобками.

Принцип работы транзистора для плавного управления светодиодной лентой

Транзистор работает как водопроводный кран, только для электронов. Чем выше напряжение, подаваемое на базу биполярного транзистора либо сток полевого, тем меньше сопротивление в цепочке эмиттер-коллектор, тем выше ток, проходящий через нагрузку.

Подключив транзистор к аналоговому порту Ардуино, присваиваем ему значение от 0 до 255, изменяем напряжение, подаваемое на коллектор либо сток от 0 до 5В. Через цепочку коллектор-эмиттер будет проходить от 0 до 100% опорного напряжения нагрузки.

Для управления светодиодной лентой arduino необходимо подобрать транзистор подходящей мощности. Рабочий ток для питания метра светодиодов 300-500мА, для этих целей подойдет силовой биполярный транзистор. Для большей длины потребуется полевой транзистор.

Схема подключения LED ленты к ардуино:

RGBW светодиоды

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

Чаще всего, RGBW светодиоды используются в светодиодных лентах RGBW SMD. Для питания таких светодиодных лент созданы специальные RGBW контроллеры, как правило, управляемые пультами дистанционного управления на инфракрасных лучах.

На фотографии представлен мощный четырехцветный светодиодный модуль SBM-160-RGBW-H41-RF100 производства Luminus Devices Ink.


Рис. 6 RGBW светодиодный модуль фирмы Luminus

Раз от раза у нас спрашивают, где купить светодиод RGBW, поэтому, чтобы каждому не отвечать, мы решили написать об этом в статье.

Подключение кнопки в режиме INPUT_PULLUP

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

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

И все. Можно собрать вот такую сложную схему и работать с кнопкой в скетче.

Рулим 220 вольтами с помощью мосфета

Мосфетом не совсем удобно рулить 220 вольтами. Ну всяким извращенцам это нравится Вот пример схемы:

Эта схема диммера для лампочек, с помощью ШИМ можно менять яркость. Подробнее тут https://www.learningelectronics.net/circuits/dimmer-with-mosfet.html

А для нормального управления нагрузкой в 220 вольт вместо мосфетов можно использовать:

  • симисторы типа bt131. Если нужна плавная регулировка света, то нужно делать что-то вроде этого:

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

    Подробнее тут https://www.cyber-place.ru/showthread.php?t=525

  • транзисторы дарлингтона
  • КР1182ПМ1 (не особо надежно, по отзывам дохнут они)

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

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

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

После того как вы выяснили какой вывод за что отвечает главное правильно включать тумблер в вашу цепь рисунок №2.

Рисунок №2 – Правильное включение тумблера с подсветкой в сеть питания (паяльника на пример)

Как видно из рисунка №2 тумблер включён таким образом, что бы разрывать фазовый провод, и так что бы при коммутации цепи (замыкании контакта) загоралась его внутренняя подсветка.

P.S.: Я постарался наглядно показать и описать не хитрые советы. Надеюсь, что хоть что-то вам пригодятся. Но это далеко не всё что возможно выдумать, так что дерзайте, и штудируйте сайт

Простая замена управления RGB светодиодами без ШИМ схема

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


Управление RGB диодами без ШИМ, схема

Ток питания светодиодов рассчитан исходя из десяти элементов на канал и составляет 12 мА, что втрое меньше номинального тока для ярких светодиодов. Это увеличивает срок службы элементов при хорошей яркости свечения. Токоограничительные резисторы выбраны из расчёта того, что количество элементов не менее 10 и они идентичные по типу. В случае применения светодиодов другого типа или количества, следует пересчитать ток и номинал резисторов R4.1 – R4.3. Падение на одном элементе составляет 3 вольта, поэтому для смещения базового напряжения в схему усилителей введены дополнительные резисторы R3.1 – R3.3, которые компенсируют мёртвую зону регулировки потенциометров. Данный метод, схема позаимствован с этого сайта.

Вот, в принципе и вся «хитрая» технология управления RGB светодиодами. Ничего сложного. Но опять же, данные схемы, методы ( и не только ) нужны для «конкретно помешанных» на радиоэлектронике или инженеров. Для простых обывателей достаточно приобрести всевозможные готовые контроллеры для управления RGB. С легкостью это можно сделать на площадке Aliexpress. Дешево и купите тоже самое, что и в местных магазинах, но с завышенными ценами перекупщиков. На этом прощаюсь с Вами и до новых встреч.)

УПРАВЛЯЕМ RGB СВЕТОМ С ARDUINO

RGB светодиод или лента – очень крутая штука, ведь используя даже 8-ми битный ШИМ (0-255) мы можем получить 16.7 миллионов цветов и оттенков! Рассмотрим подключение светодиодов и лент к Arduino.

Светодиоды

Светодиоды можно питать от пинов Arduino, естественно через токоограничивающий резистор на 150-300 Ом (больше – меньше яркость). Для плавного управления яркостью каждого канала подключать нужно к ШИМ пинам (D3, D5, D6, D9, D10, D11 на Arduino Nano/UNO/Pro Mini). Светодиод с общим катодом подключается общей ногой на GND, с общим анодом – на VCC (т.е. на 5V).

Светодиодные ленты через драйвер

RGB светодиодные ленты обычно имеют общий анод, т.е. общий канал 12 Вольт.

Для управления цветом можно использовать так называемый LED amplifier (бывает RGB и RGBW). Купить на Aliexpress

Светодиодные ленты через транзисторы

Вместо драйвера можно использовать полевые транзисторы, схема вот такая:

Какие транзисторы? Вот мой список транзисторов в корпусах to220: IRF3704ZPBF, IRLB8743PBF, IRL2203NPBF, IRLB8748PBF, IRL8113PBF, IRL3803PBF, IRLB3813PBF, IRL3502PBF, IRL2505PBF, IRF3711PBF, IRL3713PBF, IRF3709ZPBF, AUIRL3705N, IRLB3034PBF, IRF3711ZPBF

В корпусах D-PAK: IRLR024NPBF, IRLR024NPBF, IRLR8726PBF, IRFR1205PBF, IRFR4105PBF, IRLR7807ZPBF, IRFR024NPBF, IRLR7821TRPBF, STD60N3LH5, IRLR3103TRPBF, IRLR8113TRPBF, IRLR8256PBF, IRLR2905ZPBF, IRLR2905PBF

Также можно распаять платку

RGB ленты

RGB светодиодные ленты устроены аналогично одноцветным лентам и RGB светодиодам: в 12 Вольтовой ленте светодиоды каждого цвета соединяются по три штуки с токоограничивающим резистором и образуют сегмент ленты, далее эти сегменты подключаются параллельно.     Также лента имеет общий вывод со всех цветов, в большинстве случаев это общий анод. Почему? Помните, в уроке про управление нагрузкой я говорил, что чаще всего используют N-канальные полевые транзисторы, потому что они дешевле, удобнее в применении и имеют более удачные характеристики? Вот именно поэтому! Драйверы для RGB лент также делают на основе N-канальников, поэтому найти в продаже ленту с общим катодом даже вряд-ли получится. В качестве магазина на aliexpress рекомендую BTF Lighting, самые качественные ленты. Итак, как нам подключить RGB светодиодную ленту к Arduino? Точно так же, как обычную! Но тут я добавлю ещё несколько интересных вариантов.

MOSFET

Нам понадобятся три полевых транзистора и резисторы им в обвязку (почему и зачем – читай в уроке про управление нагрузкой). Подключается всё вот по такой схеме:   Если нужно плавное управление яркостью цветов – подключаем к ШИМ пинам, если просто вкл/выкл – можно к обычным. Свой драйвер на плате можно развести примерно вот так (корпуса D-pak):

LED Amplifier

У китайцев есть готовые драйверы для “усиления” сигнала на RGB ленту, по сути те же три транзистора что выше, но всё красивое и готовое. Подключается следующим образом:

Драйвер Н-моста

Ну и экзотический вариант: использовать полномостовой драйвер для моторов. Почему нет? Количество выходов у таких драйверов всегда кратно двум (для подключения одного мотора), так что это отличный вариант для управления также RGBW лентой. Драйверы можно найти на aliexpress по названию.

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

Простое подключение светодиода к выходу микроконтроллера мало что дает. Надо освоить управление светодиодом от Arduino программным способом. Сделать это можно на языке Ардуино, который выполнен на основе С (Си). Этот язык программирования представляет собой адаптацию Си для первоначального обучения. После его освоения переход на С++ будет несложным. Чтобы писать скетчи (так называются программы для Ардуино) и отлаживать их вживую, надо выполнить следующее:

  • установить среду Arduino IDE на персональный компьютер;
  • возможно, придется установить драйвер для микросхемы связи по USB;
  • подключить плату к ПК с помощью шнура USB-microUSB.


Интерфейс среды разработки Arduino IDE – приглашение к написанию программы.

Для отладки простых программ и схем можно использовать компьютерные симуляторы. Имитацию работы плат Ардуино Уно и Нано поддерживает, например, Proteus (начиная с версии 8). Удобство симулятора в том, что невозможно вывести из строя железо при ошибочно собранной схеме.


Симуляция работы Ардуино с подключенным светодиодом в Proteus 8.23.

Скетчи состоят из двух модулей:

  • setup – выполняется один раз при запуске программы, инициализирует переменные и режимы работы железа;
  • loop – выполняется циклически после блока setup до бесконечности.

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

Пример управления рассмотрен для вывода 13 – к нему уже на плате подключен светодиод (через усилитель-повторитель на плате Uno, через резистор у Nano). Для работы с выводом порта его надо настроить в режимах входа или выхода. Это удобно делать в теле setup, но не обязательно – назначение вывода можно менять динамически. То есть, в процессе выполнения программы порт может работать то на ввод, то на вывод данных.

Инициализация пина 13 Ардуино (вывод PB5 порта B микроконтроллера ATmega 328) выглядит следующим образом:

void setup ()

{

pinMode (13, Output);

}

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

void loop ()

{

digitalWrite (13, HIGH);

}

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

Чтобы погасить светодиод, надо установить выход в ноль:

digitalWrite (13, LOW);

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

Теперь можно усложнить программу на Ардуино для управления светодиодом и научиться мигать светоизлучающим элементом:

void setup ()

{

pinMode (13, Output);

}

void loop ()

{

digitalWrite (13, HIGH);

delay(1000);

digitalWrite (13, LOW);

delay(1000);

}

Команда delay(1000) создает задержку в 1000 миллисекунд или в одну секунду

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

Для наглядности рекомендуем серию видеороликов.

Освоив подключения LED к Ардуино и научившись им управлять, можно переходить на новый уровень и писать другие, более сложные программы. Например, можно научиться переключать кнопкой два или более светодиода, изменять частоту мигания посредством внешнего потенциометра, регулировать яркость свечения с помощью ШИМ, изменять цветность RGB-излучателя. Уровень задач ограничивается только фантазией.

Управление, подключение RGB светодиодов

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

Если импульсы будут маленькие, то светодиоды начнут мигать. Для постоянного свечения требуется частота 60-70 Гц ( старые модели ), в новых типах не менее 100 Гц.

Простейшая реализация управления RGB светодиодов требует ШИМ. Главное — правильная реализация программной части. На первый взгляд это сложно. Но только на первый взгляд… В действительности — это не тяжелее, чем подключать обычные диоды.

Эффективность (светоотдача)

Отношение светового потока к потребляемой мощности (Лм/Вт)

Это та величина, которая в первую очередь попадает во внимание специалистов, потому что именно по эффективности определяется применимость светодиодов для систем освещения. Для сравнения:

  • лампочка накаливания: 8-12 лм/Вт;
  • люминесцентные (энергосберегающие) лампы : 30-40 Лм/Вт
  • современные светодиоды: 120-140 Лм/Вт
  • газоразрядные лампы (ДРЛ): 50-60 Лм/Вт

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

Цветовая температура

Цветовая температура используемых светодиодов: 2500 Кельвинов- 9500 Кельвинов.

  • -2500-3000 Кельвинов: теплый белый свет. (warm white или сокращенно WW) Он ближе к лампам накаливания.
  • -4000-5000 Кельвинов: нейтральный белый свет.( white neutral или сокращенно NW)
  • -6500-9500 Кельвинов: холодный белый свет. (cold white или сокращенно CW)

Будет интересно Что такое фотодиод

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

Размеры светодиода

Мощность светодиодов.

  • малой мощности: до 0,5 Вт (20-60 мА);
  • средней мощности:0,5-3Вт (100-700 мА);
  • большой мощности: более 3-х ватт (1000м А и более).

Угол свечения как правило 120-140 градусов, в индикаторных 15-45 градусов.

Деградация (ресурс) светодиодов

Очень важный показатель. Многие производители декларируют около 100 тысяч часов и даже более. Какие факторы оказывают влияние на ресурс светодиодов? В первую очередь это токовая деградация. Если через диод пропустить силу тока большую, чем та, на которую он рассчитан, то наступает быстрая деградация. Как правило: в пределах первых 1000 часов. Этим пользуются недобросовестные производители. Следующий фактор – температурная деградация. Светодиод в процессе работы нагревается. И, если не отводить тепло, то диод быстро потускнеет.

Для отвода тепла применяется много конструкторских решений. В наших светильниках применяется плата с алюминиевой подложкой. Подложка в свою очередь имеет механический контакт с корпусом светильника, что дополнительно отводит тепло. Главное: в точке пайки светодиода соблюдать температурный режим не более 65 градусов Цельсия. В наших светильниках это достигается. Соответственно, находясь в рабочем режиме, ресурс диодов в предлагаемых светильниках составляет декларируемые 40-50 тысяч часов.

Индикаторные светодиоды (ILT)

Сегодня являются лидерами в повсеместном использовании. Появившись в 60-х годах, они быстро завоевали популярность, вытеснив лампы накаливания, используемых в качестве подсветки и индикации. А использование в данных светодиодах кристаллы с повышенной яркостью позволяют использовать их в мощных светоизлучающих устройствах (фонари, стоп-сигналы, индикаторные огни, светофоры, DIP-ленты и т.д.). На сегодняшний день практически ни одна бытовая техника не обходится без индикаторного светодиода. Существуют следующие стандартные типоразмеры индикаторных светодиодов : 3; 5; 4,8; 8 и 10мм. Рабочий ток таких светодиодов как правило 20-40мА, световая отдача может доходить для белого света 3-5Лм со светодиода. Угол излучения у данных светодиодов либо узкий (15-45 градусов), либо широкий (110-140 градусов).

Обратите внимание

Мы подключили «землю» светодиода и переменного резистора (потенциометра) к длинной рельсе «-» макетной платы, и уже ее соединили с входом GND микроконтроллера

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

Подписи «+» и «-» на макетке не обязывают вас использовать их строго для питания, просто чаще всего они используются именно так и маркировка нам помогает

Не важно, какая из крайних ножек потенциометра будет подключена к 5 В, а какая к GND, поменяется только направление, в котором нужно крутить ручку для увеличения напряжения. Запомните, что сигнал мы считываем со средней ножки

Для считывания аналогового сигнала, принимающего широкий спектр значений, а не просто 0 или 1, как цифровой, подходят только порты, помеченные на плате как «ANALOG IN» и пронумерованные с префиксом

Для Arduino Uno — это A0-A5.

Заключение

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

Можно подключать несколько светодиодов, но следить, чтобы не выйти в итоге за пределы ограничений по току. Можно не просто включать или выключать свет, но и управлять его яркостью. Для этого используем пины, поддерживающие ШИМ и функцию analogWrite.

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

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

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

В данном эксперименте мы будем использовать контакт D2 Arduino в качестве входа. Это позволяет подключить к нему кнопку для взаимодействия с проектом в режиме реального времени. При использовании Arduino в качестве входов используют pull-up- и pulldown-резисторы, чтобы вход Arduino не находился в «подвешенном» состоянии (в этом состоянии он будет собирать внешние наводки и принимать произвольные значения), а имел заранее известное состояние (0 или 1). Резисторы pull-up подтягивают вход к питанию +5 В, pull-down-резисторы подтягивают вход к GND. Кроме этого, pull-up- и pull-down-резисторы гарантируют, что кнопка не создаст короткого замыкания между +5 В и землей при нажатии. В нашем эксперименте для подключения кнопки мы будем использовать pulldown-резистор. Схема подключения представлена на рис. 2.1.

Когда кнопка отключена, вход D2 будет подтянут к «земле» через резистор номиналом 10 кОм, который будет ограничивать поток тока, и на входном контакте будет установлено значение напряжения LOW. При нажатии на кнопку входной контакт напрямую связан с 5 В. Большая часть тока будет протекать по пути наименьшего сопротивления через замкнутую кнопку, и на входе генерируется уровень HIGH. При нажатии на кнопку включаем светодиод, при отпускании – гасим. Код данного скетча приведен в листинге 2.1.

Порядок подключения:

1. Длинную ножку светодиода (анод) подключаем к цифровому выводу D10 Arduino, другую (катод) – через резистор 220 Ом к выводу GND (см. рис. 2.1). 2. Один вход кнопки подключаем к +5 В, другой – через резистор 10 кОм к GND, выход кнопки подключаем к входу D2 Arduino (см. рис. 2.1). 3. Загружаем в плату Arduino скетч из листинга 2.1. 4. При нажатии на кнопку светодиод должен гореть, при отпускании – затухнуть.

Усложним задачу – будем переключать состояние светодиода (включен/выключен) при каждом нажатии кнопки. Загрузим на плату Arduino скетч из листинга 2.2.

При нажатии кнопки светодиод должен изменять свое состояние. Но это будет происходить не всегда. Виной тому – дребезг кнопок. Кнопки представляют из себя механические устройства с системой пружинного контакта. Когда вы нажимаете на кнопку вниз, сигнал не просто меняется от низкого до высокого, он в течение нескольких миллисекунд меняет значение от одного до другого, прежде чем контакты плотно соприкоснутся и установится значение HIGH. Микроконтроллер зафиксирует все эти нажатия, потому что дребезг неотличим от настоящего нажатия на кнопку. Устранить влияние дребезга можно программно. Алгоритм следующий:

1. Cохраняем предыдущее состояние кнопки и текущее состояние кнопки (при инициализации LOW). 2. Cчитываем текущее состояние кнопки. 3. Если текущее состояние кнопки отличается от предыдущего состояния кнопки, ждем 5 мс, потому что кнопка, возможно, изменила состояние. 4. После 5 мс считываем состояние кнопки и используем его в качестве текущего состояния кнопки. 5. Если предыдущее состояние кнопки было LOW, а текущее состояние кнопки HIGH, переключаем состояние светодиода. 6. Устанавливаем предыдущее состояние кнопки для текущего состояния кнопки. 7. Возврат к шагу 2. Добавляем к нашему скетчу подпрограмму устранения дребезга. Получаем код, показанный в листинге 2.3.

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

Поделитесь в социальных сетях:FacebookX
Напишите комментарий