Подключение светодиода к ардуино uno. Подключение нескольких светодиодов к Arduino: схемы и программирование

Как подключить несколько светодиодов к Arduino. Какие компоненты нужны для подключения LED к Arduino. Как написать код для управления несколькими светодиодами на Arduino. Какие схемы подключения светодиодов к Arduino существуют.

Содержание

Необходимые компоненты для подключения светодиодов к Arduino

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

  • Плата Arduino Uno или совместимая
  • Макетная плата
  • 5-10 светодиодов разных цветов
  • Резисторы 220-330 Ом (по одному на каждый светодиод)
  • Соединительные провода

Светодиоды лучше взять разных цветов, чтобы было нагляднее видеть работу схемы. Резисторы нужны для ограничения тока через светодиоды.

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

Базовая схема подключения нескольких светодиодов к Arduino выглядит следующим образом:

  • Анод (длинная ножка) каждого светодиода подключается через резистор к цифровому пину Arduino
  • Катод (короткая ножка) каждого светодиода подключается к общему проводу GND на Arduino

Например, для 5 светодиодов схема будет такой:


  • Светодиод 1: анод через резистор к пину 2, катод к GND
  • Светодиод 2: анод через резистор к пину 3, катод к GND
  • Светодиод 3: анод через резистор к пину 4, катод к GND
  • Светодиод 4: анод через резистор к пину 5, катод к GND
  • Светодиод 5: анод через резистор к пину 6, катод к GND

Программирование Arduino для управления несколькими светодиодами

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

«`cpp const int ledPins[] = {2, 3, 4, 5, 6}; // Пины для подключения светодиодов const int numLeds = 5; // Количество светодиодов void setup() { // Настройка пинов на выход for (int i = 0; i < numLeds; i++) { pinMode(ledPins[i], OUTPUT); } } void loop() { // Последовательное включение светодиодов for (int i = 0; i < numLeds; i++) { digitalWrite(ledPins[i], HIGH); delay(200); digitalWrite(ledPins[i], LOW); } // Мигание всеми светодиодами for (int j = 0; j < 3; j++) { for (int i = 0; i < numLeds; i++) { digitalWrite(ledPins[i], HIGH); } delay(200); for (int i = 0; i < numLeds; i++) { digitalWrite(ledPins[i], LOW); } delay(200); } } ```

Этот код выполняет следующие действия:


  1. Определяет массив пинов для подключенных светодиодов
  2. В функции setup() настраивает эти пины на выход
  3. В функции loop() сначала последовательно включает и выключает каждый светодиод
  4. Затем трижды мигает всеми светодиодами одновременно

Как работает код управления светодиодами?

Разберем основные моменты кода:

  • Функция digitalWrite(pin, HIGH) включает светодиод на указанном пине
  • Функция digitalWrite(pin, LOW) выключает светодиод
  • Функция delay(ms) создает паузу указанной длительности в миллисекундах
  • Цикл for используется для перебора всех светодиодов

Как модифицировать этот код для создания различных световых эффектов? Рассмотрим несколько вариантов:

Создание бегущего огня на Arduino

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

«`cpp const int ledPins[] = {2, 3, 4, 5, 6}; // Пины для подключения светодиодов const int numLeds = 5; // Количество светодиодов void setup() { // Настройка пинов на выход for (int i = 0; i < numLeds; i++) { pinMode(ledPins[i], OUTPUT); } } void loop() { // Эффект бегущего огня for (int i = 0; i < numLeds; i++) { digitalWrite(ledPins[i], HIGH); delay(100); digitalWrite(ledPins[i], LOW); } // Бегущий огонь в обратном направлении for (int i = numLeds - 1; i >
= 0; i—) { digitalWrite(ledPins[i], HIGH); delay(100); digitalWrite(ledPins[i], LOW); } } «`

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


Управление яркостью светодиодов с помощью ШИМ

Arduino позволяет управлять яркостью светодиодов с помощью широтно-импульсной модуляции (ШИМ). Для этого используются пины, поддерживающие ШИМ (на Arduino Uno это пины 3, 5, 6, 9, 10, 11). Вот пример кода с плавным изменением яркости:

«`cpp const int ledPins[] = {3, 5, 6, 9, 10}; // ШИМ-пины для подключения светодиодов const int numLeds = 5; // Количество светодиодов void setup() { // Настройка пинов на выход for (int i = 0; i < numLeds; i++) { pinMode(ledPins[i], OUTPUT); } } void loop() { // Плавное увеличение яркости for (int brightness = 0; brightness <= 255; brightness++) { for (int i = 0; i < numLeds; i++) { analogWrite(ledPins[i], brightness); } delay(10); } // Плавное уменьшение яркости for (int brightness = 255; brightness >
= 0; brightness—) { for (int i = 0; i < numLeds; i++) { analogWrite(ledPins[i], brightness); } delay(10); } } ```

В этом коде используется функция analogWrite() для управления яркостью светодиодов. Значения яркости изменяются от 0 (выключено) до 255 (максимальная яркость).

Советы по подключению большего количества светодиодов

Если вам нужно подключить больше светодиодов, чем доступно пинов на Arduino, можно использовать следующие методы:


  • Матричное подключение: организуйте светодиоды в матрицу и используйте меньше пинов для управления большим количеством светодиодов
  • Сдвиговые регистры: позволяют управлять большим количеством выходов, используя всего несколько пинов Arduino
  • LED-драйверы: специализированные микросхемы для управления множеством светодиодов
  • Адресные светодиоды: такие как WS2812B (NeoPixels), позволяют управлять длинными цепочками светодиодов, используя всего один пин данных

Заключение

Подключение нескольких светодиодов к Arduino открывает широкие возможности для создания различных световых эффектов и индикаторов. Экспериментируя с кодом и схемами подключения, вы сможете создавать уникальные проекты с использованием светодиодов и Arduino.

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


Управление яркостью внешнего светодиода с помощью резисторов||Arduino-diy.com

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

Для данного примера вам понадобятся

1 светодиод диаметром 5 мм

1 резистор на 270 Ом (красный, фиолетовый, коричневый)

1 резистор на 470 Ом (желтый, фиолетовый, коричневый)

1 резистор на 2.2 кОм (красный, красный, красный)

1 резистор на 10 кОм (коричневый, черный, оранжевый)

Макетная плата

Arduino Uno R3

Проводники

Светодиоды — общие сведения

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

В данном примере мы используем самые распространенные светодиды диаметром 5 мм. Также распространены светодиоды диаметром 3 миллиметра, ну и большие светодиоды диаметром 10 мм.

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

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

Различить позитивную и негативную ноги светодиода можно двумя способами.

Первый – позитивная нога длиннее.

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

Если вам попался светодиод, на котором плоская кромка на более длинной ноге, длинная нога все равно является позитивной.

Резисторы — общие сведения

Resist – сопротивление (англ.)

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

Но сначала погорим немного о резисторах.

Единицы, в которых измеряется сопротивление – Ом, которые во многих источниках обозначаются греческой буквой Ω – Омега Так как Ом – маленькое значение сопротивления (практически незаметное в цепи), мы часто будем оперировать такими единицами как кОм — килоом (1000 Ом) и МОм мегаом (1000000 Ом).

В данном примере мы будем использовать резисторы с четырьмя различными номиналами: 270 Ω, 470 Ω, 2.2 кΩ и 10 кΩ. Размеры этих резисторов одинаковы. Цвет тоже. Единственное, что их различает – цветные полоски. Именно по этим полоскам визуально определяется номинал резисторов.

Для резисторов, у которых три цветные полоски и последняя золотистая, работают следующие соответствия:

Черный 0

Коричневый 1

Красный 2

Оранжевый 3

Желтый 4

Зеленый 5

Синий 6

Фиолетовый 7

Серый 8

Белый 9

Первые две полоски обозначают первые 2 числовых значения, так что красный, филетовый означает 2, 7. Следующая полоска – количество нулей, которые необходимо поставить после первых двух цифр. То есть, если третья полоска коричневая, как на фото выше, будет один нуль и номинал резистора равен 270 Ω.

Резистор с полосками коричневого, черного, оранжевого цветов: 10 и три нуля, так что 10000 Ω. То есть, 10 кΩ.

В отличии от светодиодов, у резисторов нет положительной и и отрицательной ног. Какой именно ногой подключать их к питанию/земле – неважно.

Схема подключения

Подключите в соответствии со схемой, приведенной ниже:

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

С резистором на 270 Ω, светодиод должен гореть достаточно ярко. Если вы вместо резистора на 270 Ω установите резистор номиналом 470 Ω, светодиод будет гореть не так ярко. С резистором на 2.2 кΩ, светодиод должен еще немного затухнуть. В конце-концов, с резистором 10 кΩ, светодиод будет еле виден. Вполне вероятно, чтобы увидеть разницу на последнем этапе вам придется вытянуть красный переходник, использовав его в качестве переключателя. Тогда вы сможете увидеть разницу в яркости.

Кстати, можно провести этот опыт и при выключенном свете.

Разные варианты установки резистора

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

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

Мы можем подключить светодиод к выходу Arduino. Переместите красный провод от пина питания 5V к D13, как это показано ниже.

Теперь загрузите пример “Blink”, который мы рассматривали здесь. Обратите внимание, что оба светодиода – встроенный и установленный вами внешний начали мигать.

Давайте попробуем использовать другой пин на Arduino. Скажем, D7. Переместите коннектор с пина D13 на пин D7 и измените следующую строку вашего кода:

на

Загрузите измененный скетч на Arduino. Светодиод продолжит мигать, но на этот раз, используя питание от пина D7.

Подключение светодиода к ардуино: RGB, cхемы

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

Для этого сегодня нам нужны:

  • Плата Arduino.
  • USB-шнур для подключения к компьютеру.
  • Светодиоды одноцветные и RGB-светодиод.
  • Резисторы для светодиодов.
  • Макетная плата, перемычки, источник питания для макетной платы, крона (можно обойтись и без всего этого, но желательно это иметь).

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

Есть несколько вариантов плат Arduino, они отличаются не только стоимостью, но и USB-TTL конвертером, он нужен, чтобы программировать главный микроконтроллер платы (ATMEGA328) прямо через USB-порт вашего компьютера без дополнительных программаторов. Например, в моей плате используется для связи с компьютером микроконтроллер типа AT16U2 и драйвера на него установились автоматически. Но часто попадаются дешевые платы, где в этих же целях используется микросхема Ch440 (Ch441). В этом случае нужно скачать под неё драйвер, он легко находится в сети по запросу «Ch440 драйвер windows 7/10», либо воспользоваться драйвером отсюда – https://yadi.sk/d/fJIY45oCld0pzA

Далее с официального сайта скачиваем актуальную версию Arduino IDE и устанавливаем его, кстати, нам предлагают воспользоваться онлайн версией IDE, но проверять её сегодня мы не будем, если интересно — может протестировать в отдельной статье.

Ссылка на скачивание Arduino IDE с официального сайта

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

Процесс установки Arduino IDE

Ближе к концу нам предложат установить дополнительные драйвера и ПО, также соглашаемся. Я не стал делать скриншоты всех всплывающих окон (их было 3), а просто нажал «Установить» в каждом из них. В конце нажимаем на Close. Подключаем плату Arduino к компьютеру, если нужно — устанавливаем драйвера, о которых говорилось выше, если нет — ждем пока всё установится само. В конечном итоге, в диспетчере устройств должна появится ваша ардуина.

В диспетчере задач должно появится новое устройство

Далее запускаем программу. В меню «Инструменты» должно быть «Порт: «название порта название платы», и в подменю стоять галочка, как на скриншоте ниже, у меня там было пусто, и я поставил. Если у вас не UNO, а nano например — выбирайте соответствующий пункт меню.

Настройки программы Arduino IDE

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

Стандартная программа для проверки Arduino — это своего рода «Hello World» в мире микроконтроллеров

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

Эта часть кода повторяется постоянно в процессе работы микроконтроллера

Разберем эти команды. digitalWrite – это запись цифрового состояния на указанный пин (здесь это LED_BUILTIN — это и есть 13-й пин платы Ардуино), HIGH – значение, которое записывается, т.е. логическая единица. Результатом выполнения этой команды будет появление на 13-м пине высокого логического уровня, напряжения питания микроконтроллера, в нашем случае это 5 вольт.

Далее идёт функция delay(1000) это задержка, а в скобках её аргумент — время в миллисекундах.

После нее вновь digitalWrite, но уже со значением LOW — это низкий логический уровень, т.е. 0 вольт. После чего опять задержка.

В конце каждой команды должна стоять точка с запятой — это важно.

Светодиод мигает с периодом в 2 секунды, как и написано в программном коде

Таким образом, светодиод включается и выключается с задержкой в 1 секунду, если мы поставим вместо 1000, в аргумент delay, например, 200 и 1000 (в первом и втором случае), то у нас светодиод будет вспыхивать на 1/5 секунды, а потом выключаться и вновь вспыхивать через 1 секунду.

Изменяем порядок миганияЧтобы прошить наш код в Arduino нужно нажать на вот эту кнопку

Но что, если нам нужно подключить несколько светодиодов к разным пинам? Всё просто, по подобию пишем вот такой код:

Первое из изменений, на которые следует обратить внимание, это часть кода в функции void setup(). Она выполняется 1 раз при включении микроконтроллеры и в ней задаются какие-либо параметры, в нашем случае, указываются номера пинов платы и их функция (работать как вход или как выход), синтаксис здесь следующий pinMode (номер порта, назначение). Номера пинов также нанесены на печатной плате всех ардуино, это очень удобно. Дальше просто по очереди микаем каждым из светодиодов, подключенных к 12, 11, 10. 9 пинам.

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

Мнение эксперта

Алексей Бартош

Специалист по ремонту, обслуживанию электрооборудования и промышленной электроники.

Задать вопрос эксперту

Резисторы для светодиодов нужно рассчитывать по формуле R=Uпит-Uпад/Iном, где Uпит — напряжение питания, Uпад – падение напряжения на светодиоде (у каждого цвета разное). Я не рассчитывал, просто взял заведомо больше чем нужное сопротивление — каждый по 220Ом.

Полную распиновку платы, номера выводов и их дополнительные функции вы видите на рисунке ниже.

Распиновка Arduino UNOРезультат выполнения этого кода — светодиоды загораются каждый по очереди, подобно светофору

С обычными светодиодами разобрались, теперь же давайте перейдем к RGB-светодиодам. Что это вообще такое? Фактически это 3 обычных одноцветных кристалла соединены между собой в одном корпусе, существуют две схемы соединения RGB-светодиодов или чего-нибудь подобного (например, семисегментных индикаторов), их вы видите на рисунке ниже.

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

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

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

Код для перебора трёх цветов RGB-светодиодаСхема подключения RGB-светодиодаПример работы RGB-светодиода с ардуино

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

Код для перебора 7 цветов RGB-светодиода

Перебор цветов RGB-светодиода

У пинов № 9, 10, 11, есть возможность выдавать ШИМ-сигнал, что это такое и как это работает мы разберем в следующих статьях, а пока я покажу, как это можно применить с RGB-светодиодом. Чтобы цвета не резко менялись, а плавно переходили из одного в другой, нужно использовать команду analogWrite, таким образом, на предназначенных для этого пинах формируется ШИМ-сигнал, с помощью которого можно регулировать яркость светодиодов. Я решил для реализации этого эффекта использовать цикл for, возможно можно его проще реализовать, но я думаю, что для демонстрации подойдет. Скорость перелива задаётся командой задержки (delay), после того как достигается максимум одного цвета, начинает нарастать следующий цвет, после чего первый цвет начинает угасать. За основу я выбрал код плавного мигания светодиодом из набора примеров (fade). Вы можете сами проанализировать приведенный ниже код, там, где написано brightness + fadeamount — там происходит повышение интенсивности свечения цвета, а где цикл с brightness – fadeamount — снижение.

Код плавной смены цветов RGB-светодиодак содержанию ↑

Видео инструкция

Вместо заключения

Мнение эксперта

Алексей Бартош

Специалист по ремонту, обслуживанию электрооборудования и промышленной электроники.

Задать вопрос эксперту

На этом закончим разговор о подключении светодиодов к ардуино и управлении ими. Целью этой статьи было показать, как можно подключать светодиоды и управлять ими, а также был приведен пример плавной регулировки яркости светодиодов с помощью ШИМ. В следующих статьях мы подробнее рассмотрим вопросы ввода каких-либо данных и взаимодействия с Arduino, вопросы, связанные с ШИМ-регулированием, чтением аналоговых сигналов и прочее. Если вам интересно развитие этого проекта — подписывайтесь, ставьте лайки и оставляйте комментарии. Также хотелось бы увидеть какие-либо практические советы по реализации чего-либо.

Предыдущая

ArduinoВидео и фото обзор стартового набора Arduino для UNO R3 из посылки на Aliexpress

Следующая

ArduinoМастер-класс «Люстра-паук» своими руками

Спасибо, помогло!Не помогло

распиновка, схема подключения и программирование [Амперка / Вики]

Uno Slot — платформа из линейки Slot для быстрой разработки компактных устройств из Troyka-модулей.

Плата выполнена на микроконтроллере ATmega328P, что означает полную программную совместимость с Arduino Uno.

Общие сведения

Платформа Uno Slot содержит на борту всё необходимое для быстрой и комфортной работы: 8-битный микроконтроллер ATmega328P, USB-разъём для программирования и отладки программы, 15 цифровых входов/выходов, 4 адресных RGB-светодиода WS2812B и две служебные кнопки.

Uno Slot позволяет подключить до четырёх Troyka-модулей. Используемые пины для связи сенсоров и модулей с Uno Slot зависят от конкретного устройства, точнее: от типа его коммуникации, сигнала и протокола. Обратитесь к странице с обзором сенсоров, чтобы определить как организована коммуникация с каждым устройством. После чего можно приступать к работе с модулем.

Программирование через Arduino IDE

Установка и настройка

  1. Подключите плату к ПК или ноутбуку по USB.

  2. Для начала работы с платформой Uno Slot на языке C++ скачайте и установите на компьютер интегрированную среду разработки Arduino IDE.
  3. Плата Uno Slot по программной части аналогична Uno, поэтому в программе смело выбирайте: .

После выполненных действий платформа Uno Slot готова к программированию через Arduino IDE.

Подробности о функциях и методах работы Uno Slot на языке C++ читайте на Arduino Core’s.

Пример работы

В качестве примера повторим первый эксперимент «Маячок» из набора Матрёшка. На плате уже есть встроенный пользовательский светодиод, подключенный к 13 пину микроконтроллера.

blink.ino
void setup() {
  // initialize digital pin LED_BUILTIN as an output
  pinMode(LED_BUILTIN, OUTPUT);
}
 
void loop() {
  // turn the LED on (HIGH is the voltage level)
  digitalWrite(LED_BUILTIN, HIGH);
  // wait for a second  
  delay(1000);
  // turn the LED off by making the voltage LOW                    
  digitalWrite(LED_BUILTIN, LOW);
  // wait for a second
  delay(1000);
}

После загрузки встроенный светодиод 13 начнёт мигать раз в полсекунды. Это значит всё получилось и можно смело переходить к экспериментам на Uno Slot.

Как управлять адресными светодиодами на UNO slot

Четытре светодиода подключены ко второму цифровому пину. Управлять ими можно как обычной адресной светодиодной лентой.

Вы сами можете выбрать библиотеку для управления. Например скетч для включения светодиодов с помощью библиотеки «fastled».

fastled.ino
// Подключаем библиотеку FastLED.
#include "FastLED.h"
 
// Указываем, какое количество пикселей у нашей ленты.
#define LED_COUNT 4
 
// Указываем, к какому порту подключен вход ленты DIN.
#define LED_PIN 2
 
// Создаем переменную strip для управления нашей лентой.
CRGB strip[LED_COUNT];
 
void setup()
{
  // Добавляем ленту.
  FastLED.addLeds(strip, LED_COUNT);
}
 
void loop()
{
  // Включаем все светодиоды.
  for (int i = 0; i < LED_COUNT; i++)
  {
    strip[i] = CRGB::Red; // Красный цвет.
  }
  // Передаем цвета ленте.
  FastLED.show();
  // Ждем 500 мс.
  delay(500);
  // Выключаем все светодиоды.
  for (int i = 0; i < LED_COUNT; i++)
  {
    strip[i] = CRGB::Black; // Черный цвет, т.е. выключено.
  }
  // Передаем цвета ленте.
  FastLED.show();
  // Ждем 500 мс.
  delay(500);
}

Программирование через XOD IDE

Установка и настройка

Пример работы

Элементы платы

Микроконтроллер ATmega328P

Сердцем платформы Uno Slot является 8-битный микроконтроллер семейства AVR — Microchip ATmega328P с тактовой частотой 16 МГц. Контроллер предоставляет 32 КБ Flash-памяти для хранения прошивки, 2 КБ оперативной памяти SRAM и 1 КБ энергонезависимой памяти EEPROM для хранения данных.

Преобразователь USB-UART

Связь микроконтроллера ATmega328P с USB-портом компьютера обеспечивает USB-UART преобразователь на микросхеме Silicon Labs CP2102. При подключении к ПК Uno Slot определяется как виртуальный COM-порт.

USB-UART преобразователь общается с микроконтроллером ATmega328P по интерфейсу UART через сигналы RX и TX, которые параллельно выведены на контакты D0 и D1 платы Uno Slot. Во время прошивки и отладки программы, не используйте эти пины в своём проекте.

Разъём micro-USB

Разъём micro-USB предназначен для прошивки платформы Uno Slot с помощью компьютера. Для подключения к ПК понадобится кабель USB (A — Micro USB).

Светодиодная индикация

Имя светодиода Назначение
PWRИндикатор питания платформы.
13 Пользовательский светодиод на D13 пине микроконтроллера. Используйте определение LED_BUILTIN для работы со светодиодом. При задании значения высокого уровня светодиод включается, при низком – выключается.
RX и TXМигают при прошивки и обмене данными между Uno Slot и компьютером.
LED1-LED4На платформе расположено четыре адресных светодиода WS2812B по одному в каждом слоте. Каждый светодиод состоит из контроллера WS2812 и трёх кристаллов: R – красный, G – зелёный и B – синий. Изменяя ток одного, двух или трёх кристаллов одновременно, можно получить практически любой цвет излучения из видимого спектра. Электрически светодиодные модули WS2812B соединены между собой в цепочку, где первый светодиод подключен к D2 цифровому пину управляющей платы Uno Slot. Для работы через Arduino IDE используйте библиотеку Adafruit NeoPixel.

Кнопка RESET

Кнопка предназначена для ручного сброса прошивки — аналог кнопки RESET обычного компьютера.

Пользовательская кнопка

Пользовательская кнопка подключённая к D4 цифровому пину микроконтроллера. Кнопка пригодиться для создания и теста простых программ, без подключения дополнительных тактильных сенсоров.

ICSP-разъём

ICSP-разъём предназначен для загрузки прошивки в микроконтроллер ATmega328P через внешний программатор. Одна из таких прошивок — Bootloader платы Uno Slot, который позволяет прошивать платформу по USB.

Разъём Slot Connector

Если вам не хватает GPIO-пинов платформы Uno Slot, обратите внимания на плату расширения Slot Expander, которая предоставляет десять дополнительных пинов ввода/вывода. Slot Expander общается с центральной платформой через интерфейс I²C и позволяет изменять программно свой адрес, а это означает возможность подключить около сотни Slot Expander к Uno Slot: каждое расширения добавляет новые десять GPIO-пинов.

Расширение Slot Expander подключается к Uno Slot через специальный разъём Slot Connector в виде двух металлизированных отверстий. Для физической коммуникации и передачи данных также понадобиться переходник Slot Connector совместно с винтами, шайбами и гайками.

Имя контакта Назначение
5VПитание
GNDЗемля
SDAЛиния данных I²C
SCLЛиния синхронизации I²C

Распиновка

Пины питания

Пины ввода/вывода

  • Цифровые входы/выходы 22 пина: D0, D1, D3, D5, D6, D9D16
    Логический уровень единицы — 5 В, нуля — 0 В. Максимальный ток выхода — 20 мА. К контактам подключены подтягивающие резисторы, которые по умолчанию выключены, но могут быть включены программно.

  • ШИМ 5 пинов: D3, D5, D6, D9D11
    Позволяет выводить аналоговые значения в виде ШИМ-сигнала. Разрядность ШИМ не меняется и установлена в 8 бит.

  • АЦП 5 пинов: A0A2, A6 и A7
    Позволяет представить аналоговое напряжение в виде цифровом виде. Разрядность АЦП не меняется и установлена в 8 бит.

  • Serial пины: RX/D0 и TX/D1
    Для общения с платами расширения и сенсорами по интерфейсу «UART». Для работы — используйте библиотеку Serial. Выводы шины также параллельно соединены с соответствующими выводами USB-UART преобразователя CP2102 для прошивки и отладки программы: во время работы по USB, не используйте эти пины в своём проекте.

Принципиальная и монтажная схемы

Габаритный чертёж

Характеристики

  • Микроконтроллер: ATmega328P

  • Тактовая частота: 16 МГц

  • Порты с АЦП: 5

  • Разрядность АЦП: 10 бит

  • Порты с ШИМ: 5

  • Разрядность ШИМ: 8 бит

  • Аппаратные интерфейсы SPI: 1

  • Аппаратные интерфейсы I²C: 1

  • Аппаратные интерфейсы UART: 1

  • Flash-память: 32 КБ

  • EEPROM-память: 1 КБ

  • Оперативная память: 2 КБ

  • Напряжение логических уровней: 5 В

  • Порты общего назначения: всего 13

  • Максимальный ток с пина ввода-вывода: 20 мА

  • Максимальный выходной ток пина 5V: ограничен источником питания

  • Габариты: 50,8×50,8 мм

Ресурсы

Управление несколькими светодиодами с помощью Arduino Uno

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

У Arduino достаточно контактов для одновременного управления несколькими светодиодами. В этом уроке мы будем использовать 5 светодиодов одновременно и контролировать время их мигания одновременно.

Выполняем два разных кода на Arduino Uno и проверяем их вывод.

Светодиод

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

Вот еще несколько уроков для вас:

Список компонентов

  • Arduino Uno
  • Светодиодные резисторы
  • (300 Ом — 1 кОм)
  • Макетная плата
  • Провода перемычки

Подключение к Arduino

Подключите следующие Arduino со светодиодами соответственно.

Светодиоды Ножка Контакты Arduino
Все светодиодные катоды GND
КРАСНЫЙ анод D7
СИНИЙ анод D6
ОРАНЖЕВЫЙ анод D5
ЗЕЛЕНЫЙ Анод D4
ЖЕЛТЫЙ Анод D3

Всегда подключайте резистор 1 кОм к светодиоду. Один больший провод светодиода — + ve, а другой — -ve.


Принципиальная схема для нескольких светодиодов с Arduino

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


Код 1

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

Приведенный выше эскиз работает следующим образом:

  1. Контакт 7 становится ВЫСОКИМ, что включает LED1.
  2. Подождите 200 мс.
  3. Контакт 7 становится LOW, что выключает LED1.
  4. Подождите 200 мс.
  5. Контакт 6 становится ВЫСОКИМ, при этом загорается светодиод 2.
  6. Подождите 200 мс.
  7. Контакт 6 становится LOW, что выключает LED2.
  8. Подождите 200 мс
  9. Теперь работает то же, что и контакты 5, 4, 3.

Выход 1


Код 2

Теперь загрузите приведенный ниже код в Arduino.В приведенном ниже коде другой алгоритм.

Приведенный выше код работает следующим образом:

  1. Контакты 7, 6, 5, 4 и 3 становятся ВЫСОКИМИ, при этом загораются все светодиоды.
  2. Подождите 200 мс.
  3. Контакт 7 становится LOW, что выключает LED1.
  4. Подождите 200 мс.
  5. Контакт 6 становится LOW, что выключает LED2.
  6. Контакт 7 становится ВЫСОКИМ, при этом загорается светодиод 1.
  7. Подождите 200 мс.
  8. Контакт 5 становится LOW, что выключает LED3.
  9. Контакт 6 становится ВЫСОКИМ, при этом загорается светодиод 2.
  10. Подождите 200 мс.
  11. Контакт 4 становится LOW, что выключает LED4.
  12. Контакт 5 становится ВЫСОКИМ, при этом загорается светодиод 3.
  13. Подождите 200 мс.
  14. Контакт 3 становится LOW, что выключает LED5.
  15. Контакт 4 становится ВЫСОКИМ, что выключает светодиод 4.
  16. Повторите с шага 1.

Выход 2


Устранение неполадок / Ошибки

  • Светодиод вставлен назад, поэтому убедитесь, что большая ножка светодиода подключена к + ve.
  • Проблема с разрывом светодиода.Поэтому использование резистора обязательно.
  • Возможно ослабление соединений проводов.

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

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

.

Основы Arduino: регулировка яркости светодиода

Первоначально опубликовано 5 февраля 2020 г.

Содержание

  1. Введение
  2. Яркость не может быть изменена цифровым способом
  3. Изменение яркости светодиода с помощью цифрового выхода
  4. Регулировка яркости с ШИМ
  5. Постепенно мигает светодиод
  6. Статьи по теме

Введение

Эта статья была переведена на английский и изначально была опубликована для deviceplus.jp.

Device Plus представил множество приложений и примеров Arduino, но базовые знания по-прежнему важны, независимо от того, что вы делаете!
В этой статье мы познакомим вас с «ключевыми» основами электроники Arduino, позволив Arduino регулировать яркость светодиода.

Вы можете легко включать и выключать светодиод между ВЫСОКИМ (5 В) и НИЗКИМ (0 В) состояниями, подключив его к цифровым выходным клеммам Arduino. Однако, поскольку цифровой выход может выводиться только в одном из двух состояний, вы не можете регулировать такие элементы управления, как яркость.
Вместо этого для этой цели можно использовать выход «ШИМ». ШИМ можно использовать для регулировки яркости светодиода путем многократного переключения между ВЫСОКИМ и НИЗКИМ состояниями.
В этой статье мы узнаем, как использовать ШИМ для регулировки яркости светодиода. Мы также узнаем, как написать программу, которая использует выход ШИМ для постепенного включения светодиода.

Яркость не может быть изменена цифровым способом

Как мы объяснили в прошлый раз, яркость светодиода изменяется в зависимости от протекающего тока.Сравнивая резистор 330 Ом с резистором 10 кОм, подключенным для регулировки величины тока, подключенного к светодиоду, например, через 330 Ом протекает больший ток с меньшим сопротивлением, что приводит к более яркому свечению светодиода. В качестве альтернативы, протекающий ток также изменяется, если вы изменяете напряжение источника питания, подключенного к светодиоду.

Если подано напряжение 5 В и 3,3 В, 5 В делает светодиоды ярче. Если вы хотите осветить светодиод еще ярче, вы либо «уменьшите сопротивление», либо «увеличите напряжение», как объяснено в предыдущей формуле для отношения между током, протекающим через светодиод, и сопротивлением.

Однако цифровой выход Arduino имеет только два состояния: ВЫСОКИЙ (5 В) или НИЗКИЙ (0 В), что означает, что значения напряжения и сопротивления не могут быть изменены, даже если схема подключена как есть. Таким образом, яркость светодиода не регулируется. Хотя есть только два состояния выхода, HIGH и LOW, яркость светодиода можно изменить с некоторой изобретательностью.

Изменение яркости светодиода с помощью цифрового выхода

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

Затем создайте программу, как показано ниже, и запишите ее в Arduino. Светодиод должен мигать с интервалом в одну секунду.

В программе светодиод загорается в «digitalWrite (LED_PIN, HIGH)» (строка 11) с выходом HIGH, а затем ждет продолжительности, указанной в «delay (ON_TIME)» (строка 12).Продолжительность указывается в миллисекундах; если вы укажете 1000, светодиод будет гореть в течение одной секунды.

Затем светодиод выключается в «digitalWrite (LED_PIN, LOW)» (строка 14) с выходом LOW, а затем отключается на время, указанное в «delay (OFF_TIME)» (строка 15). Светодиод мигает при повторении этой программы.

Теперь давайте сократим продолжительность включения и выключения. Продолжительность включения может быть изменена с помощью «const int ON_TIME» (строка 3), а продолжительность выключения может быть изменена с помощью «const int OFF_TIME» (строка 4).Измените оба значения на «500» и напишите программу для проверки состояния светодиода. Скорость мигания должна увеличиться. По мере уменьшения значений до «250», «100», «75», «50» и т. Д. Мигание должно становиться быстрее. При значении около «10» светодиод горит постоянно. Если он мигает слишком быстро, человеческий глаз не успевает за ним, из-за чего кажется, что свет постоянно горит.

Теперь давайте изменим продолжительность включения и выключения. Установите для «ON_TIME» и «OFF_TIME» значение «10».Затем последовательно измените значение «ON_TIME» на «9», «8», «7»… «1» и проверьте состояние свечения светодиода. По мере уменьшения значения вы можете видеть, что светодиод становится темнее.

Светодиод выглядит темнее, потому что продолжительность освещения сокращается, а количество свечения уменьшается. Другими словами, вы можете регулировать яркость светодиода, изменяя «продолжительность свечения». Этот метод позволяет вам управлять яркостью светодиода с помощью цифрового выхода Arduino, оснащенного только функциями включения и выключения.

Регулировка яркости с ШИМ

Как описано выше, вы можете регулировать яркость, регулируя соотношение HIGH и LOW, заставляя светодиод мигать в течение короткого цикла. Однако создавать собственную программу для управления продолжительностью мигания нецелесообразно. Если для обработки других программ требуется время, интервал мигания сместится, изменяя яркость.

Arduino обеспечивает PWM (широтно-импульсную модуляцию), которая может периодически выводить HIGH и LOW. Функцию ШИМ, периодически переключающуюся между ВЫСОКИМ и НИЗКИМ с заданной скоростью, можно использовать для регулировки яркости светодиода, как описано ранее.

Однако контакты, которые можно использовать для ШИМ, фиксированы в Arduino. Выход PWM доступен только для контактов, у которых есть значок «~» рядом с номером (то есть 3, 5, 6, 9, 10 и 11). Обратите внимание, что другие контакты не поддерживают вывод ШИМ.

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

Для вывода с ШИМ установите целевой вывод в режим вывода с помощью «pinMode ()» (строка 6). Фактический вывод происходит с помощью «analogWrite ()» (строка 10). Укажите целевой номер вывода, а затем установите соотношение HIGH в диапазоне от 0 до 255. «0» всегда выводит LOW, а «255» всегда выводит HIGH. «127» одинаково выводит как HIGH, так и LOW.

В этой программе вы можете указать коэффициент ШИМ в «const int DUTY» (строка 3).Измените значение, чтобы увидеть, как меняется яркость.

Постепенное мигание светодиода

Выход с использованием ШИМ расширяет способ свечения светодиода. Теперь давайте постепенно изменим ШИМ, чтобы получить эффект постепенного увеличения яркости светодиода.

Напишите программу, как показано ниже

Вышеупомянутая программа сохраняет коэффициент ШИМ в переменной «i», используемой в функции loop (), чтобы она могла увеличивать значение, чтобы светодиод постепенно становился ярче.

Обработка while (строка 14) увеличивает значение с шагом, указанным в STEP, пока i не достигнет 255.Увеличенное значение выводится функцией analogWrite () (строка 15) для изменения яркости светодиода. Кроме того, ему предписывается ждать в течение времени, указанного в WAITTIME, каждый раз, когда изменяется выход ШИМ (строка 16).

Когда коэффициент ШИМ достигает 255, он уменьшается до 0 для постепенного затемнения светодиода (строки с 21 по 25). Вы можете изменить скорость мигания, изменив значение WAITTIME (строка 3) или STEP (строка 4).

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

Статьи по теме

Об Arduino всегда можно узнать больше! Взгляните на некоторые из наших других статей:

  1. Как создать генератор кода Морзе с помощью Arduino
  2. Как управлять светом с помощью датчика внешней освещенности
  3. USB-регулятор громкости с Arduino

Сколько светодиодов может контролировать Arduino? — Siytek

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

Однако, если вы хотите управлять большим количеством светодиодов, чем имеется цифровых контактов на вашей плате Arduino, вам потребуется дополнительное оборудование.

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

Предварительное условие

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

Я бы также посоветовал вам ознакомиться с моим руководством по затемнению светодиодов, если вы новичок в концепции ШИМ. Там вы найдете полезную информацию и подробное объяснение некоторых важных фундаментальных принципов.

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

Способы управления светодиодами

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

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

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

Только цифровые выводы

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

Однако есть и другие важные соображения. Каждый вывод имеет абсолютного максимума тока, который он может истока или потреблять .

Источник и сток тока

Когда вывод находится в состоянии high (обычно равном напряжению питания Vcc), он будет подавать ток на подключенную нагрузку.Мы говорим, что это источников текущих.

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

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

Используя микроконтроллер ATMega328, установленный на многих платах Arduino, в качестве примера, мы можем найти это значение в таблице данных, доступной на веб-сайте Microchip.

Здесь мы видим, что максимальный ток, который мы можем передавать или потреблять на любом выводе ввода-вывода, составляет 40 мА. Этого достаточно для стандартного светодиода, который обычно работает от 5 мА до 20 мА.

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

Абсолютный максимальный рейтинг

Более важный параметр, который мы также должны учитывать, — это максимальный постоянный ток между Vcc и GND .Это полный ток, который микроконтроллер потребляет от источника питания.

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

Это означает, что текущая сумма всех портов не должна превышать 200 мА. Если мы разместим светодиод на каждом из 13 цифровых контактов Arduino Uno и подадим каждому из них 20 мА, мы получим или потребляем в общей сложности 260 мА с контактов ввода-вывода и превысим это максимальное значение! Наш Arduino был бы тостом!

Общее количество светодиодов

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

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

 300/13 = 15,3 мА 

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

Поэтому было бы разумно округлить это число до примерно 10–12 мА для каждого светодиода, чтобы оставаться в пределах установленного лимита.

Итак, наш окончательный ответ заключается в том, что при использовании только цифровых контактов на плате Arduino Uno мы можем индивидуально управлять 13 светодиодами, при условии, что ток ограничен примерно 10–12 мА для каждого светодиода.

Самый простой способ ограничить ток на каждом цифровом выводе — использовать резистор. Вы можете узнать о том, как выбрать номинал резистора, в моем руководстве по светодиодам и резисторам.

Мультиплексирование

Что, если бы я сказал вам, что можно управлять еще светодиодами , используя только ваши цифровые выводы, в то время как уменьшит количество требуемых внешних резисторов для ?!

Это не волшебство какое-то! Это вполне возможно с использованием метода, называемого мультиплексированием.Однако, как и во многих других областях техники, существует компромисс в пользу увеличения количества светодиодов, использующих эту технику. К сожалению, в инженерии нет ничего бесплатного!

Что такое мультиплексирование?

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

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

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

Как работают светодиоды мультиплексирования?

Мультиплексирование работает путем размещения светодиодов внутри матрицы. Нет, не , а матрица , Нео!

Мы должны расположить наши светодиоды в строках и столбцах , чтобы мы могли адресовать .Представим, что у нас есть 9 светодиодов, расположенных в 3 столбца и 3 строки.

Нам нужно подключить каждый ряд светодиодов к контакту микроконтроллера, а каждый столбец — к контакту микроконтроллера. Здесь я представил цифровые выводы ввода-вывода с переключателями.

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

Положительные аноды , светодиодов соединены вместе в ряды, управляемые тремя верхними переключателями.Отрицательные катоды светодиодов соединены вместе в столбцы, управляемые тремя нижними переключателями.

Здесь важно понимать, что здесь 9 светодиодов, а — только 6 переключателей . Это означает, что с такой конфигурацией мы можем управлять 9 светодиодами с помощью всего 6 контактов микроконтроллера.

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

Что вы также можете заметить, так это то, что вам нужны только токоограничивающие резисторы в строках или столбцах! Это означает, что нам нужно всего 3 резистора на 9 светодиодов и 5 резисторов на 25 светодиодов!

Описание схемы

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

Сначала мы включаем столбец 1 в нашей матрице, затем мы включаем строки 1, 2 и / или 3 в зависимости от того, какие светодиоды мы хотели бы зажечь. Скажем, например, мы хотим зажечь два верхних светодиода.

Теперь отключаем первый столбец и включаем второй столбец. Затем мы включаем ряды светодиодов, которые хотим зажечь. Скажем, например, средний и нижний светодиоды в этом столбце.

Наконец, мы повторяем это для третьего столбца, на этот раз включив только средний светодиод.

Как видно из этого примера, можно управлять каждым светодиодом индивидуально, используя меньше контактов и резисторов!

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

Недостатки мультиплексирования

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

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

Кроме того, проблема усугубляется по мере увеличения количества столбцов. Если мы управляем 25 светодиодами с 10 цифровыми выводами, состоящими из 5 строк и 5 столбцов, наш максимальный рабочий цикл для каждого светодиода будет 20%. Поэтому светодиоды станут еще тусклее.

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

Кроме того, человеческий глаз не имеет линейной реакции на яркость. Это означает, что даже если мы можем использовать наши светодиоды на 20% от их максимальной яркости, глаз будет воспринимать на меньше уменьшения яркости на . Это потому, что глаз более чувствителен к изменениям более тусклого света, чем к изменениям более яркого света.

Регистры сдвига

Третий и последний метод в этом руководстве для управления несколькими светодиодами, вероятно, самый мощный, и это метод, используемый для адресной светодиодной ленты.

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

Что такое регистр сдвига

Регистр сдвига — это, по сути, микросхема с набором цифровых выходных контактов, которые принимают свое состояние из блока памяти, называемого регистром .

Регистр — это блок памяти, в котором может храниться двоичное число. Каждое отдельное двоичное число называется битом. Типичный регистр сдвига имеет 8 выходных контактов, следовательно, имеет 8-битный регистр. Каждый бит представляет состояние соответствующего вывода.

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

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

Последовательные данные в

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

Есть три основных контакта, которыми микроконтроллер должен управлять в регистре сдвига.

  • Данные — это вывод, который сообщает регистру сдвига, является ли следующий бит, который будет помещен в регистр, высоким или низким.
  • Часы — синхронизирующий вывод чередуется между высоким и низким. Для каждого цикла двоичные числа сдвигаются на одну позицию в регистре, и в регистр вводится новое число. Его значение будет равно выводу данных.
  • защелка — этот вывод передает данные из сдвигового регистра на выходные выводы. Это позволяет сдвинуть 8 бит в нужное место до обновления состояния выходных контактов.

Когда данные сдвигаются в регистре, новый бит входит в начало регистра в зависимости от состояния вывода данных.Бит в конце регистра отбрасывается.

Защелка данных

Существует также дополнительный вывод, называемый выводом защелки , вывод , который перемещает данные из регистра на выход.

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

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

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

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

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

Последовательные данные на выходе

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

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

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

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

Это дает нам возможность управлять огромным количеством светодиодов с помощью всего лишь нескольких цифровых выводов на микроконтроллере.

Драйверы светодиодов регистра сдвига

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

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

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

Texas Instruments TLC591X — отличный чип для начала, если вы новичок в использовании регистров сдвига.

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

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

Недостатки

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

Во-первых, самый очевидный недостаток — необходимость использования микросхемы драйвера на каждые 8 ​​светодиодов. Хотя требуется меньше резисторов, это по-прежнему самый сложный и дорогостоящий из рассмотренных нами методов добавления светодиодов в микроконтроллер.

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

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

Заключение

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

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

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

Интерфейс светодиодов Arduino | Мигающий светодиод Arduino

Arduino UNO имеет встроенный светодиод , доступный на контакте № .13. Этот встроенный светодиод очень полезен, когда вы хотите показать некоторый сигнал без подключения внешнего светодиода.
Если вы хотите узнать , как подключить светодиод к arduino . Мы можем подключить светодиод снаружи, используя резистор между цифровым выводом Arduino и светодиодом. При подключении светодиода к Arduino убедитесь, что вы знаете требуемое сопротивление резистора. Мы также обсудим, как рассчитать сопротивление светодиода. После нахождения резистора правильного номинала мы можем подключить светодиод к Arduino.

Для одного светодиода нам понадобится один цифровой выход от Arduino. Мы используем цифровой вывод 13 для подключения светодиода к Arduino. Подключим светодиод к прямому смещению. Означает анод светодиода к контакту № 13 и катод к GND Arduino.

Когда мы используем внешний светодиод на плате arduino, мы должны подключить резистор соответствующего номинала к светодиоду, чтобы ограничить ток, исходящий от вывода arduino uno. Для светодиода требуется около 10-20 мА тока, но вывод Arduino дает около 40 мА, поэтому из-за избыточного тока светодиод может выйти из строя.Для защиты светодиода нам понадобится токоограничивающий резистор.

Требуется оборудование

Arduino Uno

  • Светодиод
  • Резистор 1 кОм
  • макет

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

Используя эту формулу, мы находим значение сопротивления, используемое для светодиода.

Значение резистора светодиода можно рассчитать по закону Ома:
R = (V s -V led ) / I led
где:

  • В с — напряжение источника, измеренное в вольтах (В),
  • V led — падение напряжения на светодиоде, измеренное в вольтах (В),
  • I led — ток через светодиод, измеряемый в амперах (Амперы / А), и
  • R — сопротивление, измеряемое в Ом (Ом).

Пример:
В с = 5 В
В светодиод = 1,8 В
I светодиод = 20 мА = 0,02 А
R = 160 Ом
Из расчета получаем 160 Ом.
, но примерно мы используем резистор от 100 до 1 кОм. Будет изменяться только яркость светодиода.

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

В схеме внешний светодиод подключен к цифровому выводу 13. Это означает, что два светодиода подключены к одному выводу. Таким образом, оба светодиода будут светиться одновременно.

Мы можем использовать и другие контакты.

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

Светодиодный код Arduino

Во встроенном мире, если вы умеете водить светодиод, вы можете управлять чем угодно. Интерфейс светодиодов иногда выглядит очень простым, но он включает в себя некоторые концепции.

Здесь нам нужно разобраться в функции pin pinMode (). Здесь светодиод — устройство вывода. Arduino отправит выходной сигнал на светодиод.Но как сказать Arduino, как подавать сигнал на вывод или ввод.

Для отправки вывода мы делаем вывод 13 Arduino как вывод с помощью pinMode (13, OUTPUT). Эта функция pinmode имеет два аргумента.

Первый аргумент говорит о номере пина, к которому подключен светодиод. Итак, здесь цифровой вывод 13 подключен к светодиоду.

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

При использовании функции pinMode (13, OUTPUT) не выдает никаких выходных сигналов или не горит светодиод.Он просто установил контакт 13 как в режиме вывода.

Фактический выходной сигнал появится на цифровом выводе 13 функцией digitalWrite (). Эта функция может выдавать HIGH или LOW в зависимости от параметра, используемого в функции.

Здесь высокий сигнал с цифрового вывода включает светодиод. Таким образом, функция будет иметь вид digitalWrite (13, HIGH). И если вы хотите выключить светодиод, подайте низкий сигнал с помощью digitalWrite (13, LOW).

Первый аргумент говорит о номере пина, к которому подключен светодиод.Итак, здесь цифровой вывод 13 подключен к светодиоду.

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

При использовании функции pinMode (13, OUTPUT) не выдает никаких выходных сигналов или не горит светодиод. Он просто установил контакт 13 как в режиме вывода.

Фактический выходной сигнал появится на цифровом выводе 13 функцией digitalWrite (). Эта функция может выдавать HIGH или LOW в зависимости от параметра, используемого в функции.

Здесь высокий сигнал с цифрового вывода включает светодиод. Таким образом, функция будет иметь вид digitalWrite (13, HIGH). И если вы хотите выключить светодиод, подайте низкий сигнал с помощью digitalWrite (13, LOW).

  void   setup  () {// функция настройки запускается один раз, когда вы нажимаете кнопку сброса или включаете плату
 pinMode (13, ВЫХОД); // инициализируем цифровой вывод 13 как выход.
 digitalWrite (13, ВЫСОКИЙ); // включаем светодиод (HIGH - уровень напряжения)
}
  пусто   петля  () {
 
}
 

Код мигающего светодиода Arduino

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

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

Мы можем изменить задержку мигания светодиода, используя функцию задержки arduino.

  void   setup  () {
 // инициализируем цифровой вывод 13 как выход.
 pinMode (13, ВЫХОД);
}
// функция цикла запускается снова и снова навсегда
  пусто   петля  () {
 digitalWrite (13, ВЫСОКИЙ); // включаем светодиод
 задержка (1000); // ждем секунду
 digitalWrite (13, LOW); // выключаем светодиод
 задержка (1000); // ждем секунду
}
 

Вам следует попробовать эти программы, чтобы увидеть, что происходит с миганием светодиода.

Программа 1:

  void   setup  () {
 // инициализируем цифровой вывод 13 как выход.
 pinMode (13, ВЫХОД);
}
// функция цикла запускается снова и снова навсегда
  пусто   петля  () {
 digitalWrite (13, ВЫСОКИЙ); // включаем светодиод
 digitalWrite (13, LOW); // выключаем светодиод
}
 

Программа 2:

  void   setup  () {
 // инициализируем цифровой вывод 13 как выход.pinMode (13, ВЫХОД);
}
// функция цикла запускается снова и снова навсегда
  пусто   петля  () {
 digitalWrite (13, ВЫСОКИЙ); // включаем светодиод
 digitalWrite (13, LOW); // выключаем светодиод
 задержка (1000); // ждем секунду
}
 

Программа 3:

  void   setup  () {
 // инициализируем цифровой вывод 13 как выход.
 pinMode (13, ВЫХОД);
}
// функция цикла запускается снова и снова навсегда
  пусто   петля  () {
 digitalWrite (13, ВЫСОКИЙ); // включаем светодиод
 задержка (1000); // ждем секунду
 digitalWrite (13, LOW); // выключаем светодиод
}
 

Как управлять многими светодиодами / мощными светодиодами с помощью GPIO | Руководство для начинающих

Подключение светодиода к контакту GPIO можно выполнить, и это часто делается.Но это будет работать только в том случае, если на светодиодах прямое падение напряжения менее 5 В (или 3,3 В с некоторым GPIO (некоторые даже до 1,1 В!)). GPIO часто ограничиваются примерно 20 мА, и, например, для Arduino Mega некоторые шины GPIO могут выдавать максимум 100 мА, так что одновременно будет гореть только 5 светодиодов. Более того, если каждый светодиод занимает один GPIO, вы ограничены количеством GPIO, которое у вас есть, и часто не многие контакты имеют возможность PWM, поэтому вы даже не можете их затемнить.

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

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

Эти светодиоды очень дешевы и по большей части не такие яркие. Они не предназначены для чего-то большего, кроме включения или выключения, просто для индикации чего-либо, например индикатора питания или активности.

Чтобы правильно выбрать резистор (R1 и R? На схеме), вам необходимо знать:

  • Напряжение контактов GPIO (обычно 5 В для Arduino и 3.2, чтобы резистор не перегревался. При резисторе 20 мА и 500 Ом вам понадобится резистор 200 мВт, но стандартный резистор в сквозном отверстии составляет 0,25-0,5 Вт, так что это нормально, если у вас нет нескольких светодиодов

    Светодиоды высокой мощности могут иметь диапазон от 3 Вт до 500 Вт (более 10 Вт очень яркие и должны использоваться с осторожностью, чтобы не повредить глаза). В светодиодах высокой мощности также часто используется напряжение, намного превышающее 5 В, которые Arduino использует при гораздо более высоких токах. Многие светодиоды мощностью 10 Вт работают от 12 В, а почти все светодиоды мощностью 100 Вт работают от 30 В или более, используя несколько ампер, поэтому запуск от GPIO не имеет большого значения.

    Решением этой проблемы является МОП-транзистор логического уровня. Вы можете использовать BJT, но, на мой взгляд, MOSFET лучше, так что это то, что будет использоваться в этом руководстве. Вам также понадобится внешний источник питания для светодиода и, возможно, резистор, как описано в шаге 1, но это зависит от вашего драйвера (мы коснемся этого позже).

    MOSFET

    выпускается в двух вариантах: N-MOS и P-MOS. Из-за того, как они сделаны, N-MOS имеют более низкое сопротивление в открытом состоянии и, следовательно, более низкие потери в открытом состоянии, их также очень легко управлять с Arduino, если вы выберете устройство логического уровня, поэтому мы будем рассматривать только N -MOS, но не стесняйтесь читать о вождении P-MOS и других устройствах с высоким приводом.

    Базовая схема схемы приведена ниже, где R2 выступает в качестве дополнительного понижающего резистора, поэтому светодиод не будет светиться, если GPIO перейдет на высокоимпедансный вход:

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

    • Выбрать сквозное устройство
    • Выберите тип N
    • Найдите низкое сопротивление в открытом состоянии (менее 0.2 и убедитесь, что полевой МОП-транзистор может рассеивать выделяемое им тепло. В противном случае вам может понадобиться радиатор на MOSFET.

      Светодиоды

      — это устройство, управляемое током, а не напряжением, как некоторые думают. При выборе источника питания для светодиода у вас есть несколько вариантов. С маломощными вещами все будет в порядке, если вы будете использовать стандартные шины 5 В / 3,3 В на устройстве с токоограничивающим резистором, как показано в шаге 1. Источник питания для этого имеет постоянное напряжение, что означает, что он пытается поддерживать напряжение на уровне постоянный уровень и текущие изменения.Для светодиода высокой мощности использование этого метода может стать очень неэффективным, и яркость светодиода будет меняться по мере нагрева, так как значение резистора будет изменяться по мере того, как он нагревается.

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

      Что делать, если у вас недостаточно GPIO? Arduino Uno позволяет использовать до 20 контактов GPIO, поэтому у вас может быть 20 светодиодов, если вы использовали предыдущие концепции, но тогда у вас нет места для чего-либо еще, а что, если вам нужно еще более 20 светодиодов?

      Ну, одно из решений — подключить светодиоды в матричную схему, как показано ниже:

      Использует только 8 GPIO, но позволяет управлять 16 светодиодами, но увеличивает масштаб, т.е.e использование 16 gpio дает 64 светодиода, которыми вы можете управлять. Единственным недостатком является то, что вы должны управлять им столбец за столбцом (или строка за строкой), так что вы действительно можете управлять только 4 светодиодами за раз, но если вы переключаетесь между ними достаточно быстро, вы не можете видеть это человеком. глаз.

      То, как это работает, например, если вы хотите, чтобы светодиоды в четвертом столбце и третьей строке вниз (D12) были включены, вы должны потянуть GPIO 8 на низкий уровень и GPIO 3 на высокий уровень, что, в свою очередь, только включит светодиод. в четвертом столбце и в третьем ряду вниз.Однако вам нужно будет подтянуть GPIO 1, 2 и 4 к низкому уровню и GPIO 5, 6 и 7, чтобы включить только светодиод D12.

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

      Еще один способ управлять большим количеством светодиодов — использовать что-то вроде микросхемы PCA9685, которая использует I2C, чтобы дать вам до 16 дополнительных выходов PWM.Вы также можете иметь несколько из них на I2C, если вам нужно больше, но это может ограничить скорость передачи данных. Эти модули PCA9685 часто продаются как сервоприводы, но они работают в режиме от 0 до 1, поэтому вы можете легко использовать их в качестве драйверов светодиодов.

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

      Схема PCA9685 показана ниже, где они являются дополнительными перемычками на A0-A5 для выбора адреса I2C.C1 действует как зарядный пул, поэтому светодиоды могут найти ток для быстрого включения, а C2 действует как развязывающий конденсатор для снижения шума и должен быть помещен как можно ближе к ИС.

      Существует множество светодиодных драйверов, многие из которых используют различные типы интерфейсов, такие как последовательный или SPI, но посмотрите вокруг и посмотрите, что вы можете найти. Любой драйвер, который использует интерфейс, а не просто драйвер, означает, что вы можете сохранить много GPIO, а также снижает сложность, поскольку вам не нужно беспокоиться о программировании пошагового перехода по строкам и столбцам, как то, что было бы необходимо на шаге 4. .

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

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

      Они работают, обеспечивая светодиоды 5 В (иногда 12 В) и GND, а затем вывод данных. Вывод данных — это одиночный провод, который подключен к выводу GPIO на Arduino. Данные передаются битом на вход данных светодиода, а затем данные снова выводятся на следующий светодиод через выходной контакт светодиода.Данные отправляются таким образом, что каждый светодиод будет получать данные о своем цвете и яркости, чтобы вы могли указать такие вещи, как 3-й светодиод в строке зеленым, а 4-й — оранжевым. Эти светодиоды можно менять на частоте 800 Гц (ограничено тем, сколько вы вставляете в цепочку), и это означает, что вам нужен только один вывод на Arduino.

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

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

      • Если хотите быстро и красиво, используйте адресуемые светодиоды
      • Если вам нужно, чтобы он был как можно ярче (например, фонарик), используйте полевой МОП-транзистор для управления большим светодиодом
      • Если вам нужно много-много светодиодов, но вы хотите использовать собственный выбор светодиодов, используйте внешние драйверы, такие как PCA9685, и, если необходимо, пусть каждый выход IC управляет MOSFET, который управляет светодиодом
      • Если вам просто нужен простой светодиод, который бы мигал, чтобы сообщить вам, что он не разбился, просто подключите его напрямую к GPIO с помощью резистора

      Single RGB LED с интерфейсом Arduino Uno

      В этом проекте мы перейдем к интерфейсу RGB (Red Green Blue) LED с Arduino Uno .Типичный светодиод RGB показан на рисунке ниже:

      Светодиод RGB будет иметь четыре контакта, как показано на рисунке.

      • PIN1 : Цвет 1 отрицательный вывод на общем аноде или цветной 1 положительный вывод на общем катоде
      • PIN2 : Общий положительный элемент для всех трех цветов в СИД с общим анодом или общий отрицательный элемент для всех трех цветов в СИД RGB с общим катодом.
      • PIN3 : отрицательный полюс цвета 2 или положительный полюс цвета 2
      • PIN4 : отрицательный полюс цвета 3 или положительный полюс цвета 3

      Итак, существует двух типов светодиодов RGB, один — с общим катодом (общий отрицательный), а другой — с общим анодным типом (общий положительный).В CC (общий катод или общий отрицательный) будет три положительных вывода, каждый вывод представляет цвет, и один отрицательный вывод, представляющий все три цвета. Внутренняя схема светодиода CC RGB может быть представлена ​​ниже.

      Для типа с общим катодом, если мы хотим, чтобы КРАСНЫЙ был включен выше, нам нужно запитать вывод КРАСНОГО светодиода и заземлить общий минус. То же самое и со всеми светодиодами. В CA (общий анод или общий положительный) будет три отрицательных клеммы, каждая из которых представляет цвет, и одна положительная клемма, представляющая все три цвета.

      Внутренняя схема CA RGB LED может быть представлена, как показано на рисунке.

      В случае типа с общим анодом, если мы хотим, чтобы КРАСНЫЙ свет был наверху, нам нужно заземлить контакт КРАСНОГО светодиода и подать питание на общий плюс. То же самое и со всеми светодиодами.

      В нашей схеме мы будем использовать тип CA (общий анод или общий положительный). Если вы хотите подключить больше светодиодов RGB, скажем, 5, тогда вам обычно потребуется 5×4 = 20 контактов, но мы можем уменьшить это использование PIN до 8, подключив светодиоды RGB параллельно и используя метод, называемый мультиплексированием .

      Необходимые компоненты:
      • Arduino Uno
      • RGB светодиод (общий анод)
      • Резистор — 1к

      Схема и рабочее объяснение

      Схема подключения для RGB LED Arduino интерфейса показана на рисунке ниже.

      Здесь мы соединили клемму общего анода RGB светодиода с питанием 5 В от Arduino вместе с резистором 1 кОм.

      Теперь отрицательные контакты (1, 3, 4) светодиода RGB подключены к контактам 2, 3 и 4 Arduino. Здесь светодиод RGB подключен по обратной логике. означает, что если мы сделаем вывод заземления светодиода высоким, он выключится. Итак, здесь мы делаем клемму заземления светодиода RGB на высоком уровне, чтобы соответствующий светодиод оставался в выключенном состоянии. А если сделать вывод заземления RGB светодиода низким, он будет светиться.

      Итак, как мы уже видели на приведенной выше схеме выводов светодиода RGB, вывод 2 является общим анодом, а выводы 1, 3 и 4 — заземляющими выводами красного, синего и зеленого цвета соответственно.

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

      Проверьте полный код Arduino и видео ниже.

      Вот как мы программируем светодиод RGB с Arduino , если вы хотите использовать несколько светодиодов RGB с Arduino, проверьте этот.

      Питание множества светодиодов от Arduino — Эрик Катерборг

      Для недавнего проекта мне нужно было выяснить, как запитать МНОГО светодиодов Neopixel от платы Arduino. Neopixels — это цифровые светодиоды RGB, которыми можно управлять индивидуально, даже если они находятся в полосе из сотен светодиодов.

      Сколько светодиодов может обрабатывать моя Arduino?

      Необходимо учитывать два фактора: память и мощность:

      Мощность

      Порт USB получает напряжение 5 В и 500 мА от источника питания (ноутбука, зарядного устройства или аккумулятора).Это максимум, с которым может справиться ваш Arduino, а также максимум, который Arduino может предоставить вашим светодиодам. Если вы попытаетесь потребить более 500 мА от ноутбука или аккумулятора, ноутбук, аккумулятор и Arduino могут быть повреждены или отключатся.

      Один Neopixel может использовать 60 мА, это означает, что вы можете безопасно запитать только 8 Neopixel прямо от вашего Arduino!

      Память

      Arduino Uno имеет 2 КБ памяти. Один светодиод Neopixel использует 3 байта памяти. Это означает, что вы можете управлять примерно 600 неопикселями или немного меньше, в зависимости от размера остальной части вашей программы.

      Поддержка до 8 неопикселей

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

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

      Обеспечивает более 8 неопикселей

      Если у вас подключено более 8 неопикселей, вам понадобится более мощный источник питания, который может обеспечить более 500 мА / с. На схеме ниже показано, как подключить этот источник питания. Это может быть мобильное зарядное устройство на 5 В и 2000 мА.

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

      Например, если источник питания имеет максимум 2000 мА / сек, вы можете запитать 60 светодиодов Neopixel RGB. Адаптер на 10 ампер может питать 166 светодиодов RGB. Эта установка отлично подходит, если ваш проект завершен и вы хотите установить лампу и Arduino с одним источником питания.

      Очень важно НЕ подключать USB-кабель в этой настройке, потому что ваша плата Arduino уже запитана!

      (Примечание: Adafruit советует установить конденсатор между источником питания и вашей схемой).

      Питание более 8 пикселей при подключении к USB

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

      Обратите внимание, что эта установка требует осторожного обращения:

      Подключение:
      Сначала включите светодиоды RGB, затем Arduino

      Отключение:
      Сначала отключите Arduino, затем Power

      Сила тока для сотен светодиодов

      При работе с сотнями светодиодов вам может потребоваться более 20 ампер.Например: 400 светодиодов x 60 мА = 24 ампера. Это много! Здесь мы начинаем входить в сферу серьезной электроники, и нам нужно подумать о безопасности.

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

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

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

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

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