Site Loader

Содержание

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

Если вы баловались с некоторыми начинающими проектами Arduino, но ищете что-то немного постоянное и на совершенно ином уровне удивительного, то скромный светодиодный куб 4 x 4 x 4 — естественный выбор. Конструкция намного проще, чем вы думаете, и используя мультиплексирование, мы можем управлять всеми светодиодами прямо с одной платы Arduino Uno. Это отличная практика пайки, и общая стоимость компонентов не должна превышать 40 долларов.

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

Тебе понадобится

  • Ардуино . Поставляемый код предполагает Arduino Uno, но может быть адаптирован и к более крупной модели.
  • 64 светодиода — выбор за вами, но я использовал эти яркие 3-миллиметровые синие светодиоды ( 3,2 В 30 мА ) при £ 2,64 за 50.
  • 16 резисторов соответствующего значения для ваших светодиодов. Для светодиодов выше, 99 пенсов купили 100 из них. Используйте ledcalc.com — введите 5 В для напряжения питания, напряжения светодиодов (в моем случае 3.2) и тока в миллиамперах (3.2). Ваш желаемый резистор будет показан в поле с надписью «Ближайший резистор с более высоким номиналом» , а затем просто найдите это значение на eBay.
  • Немного ремесленной проволоки для укрепления базовой конструкции и для отделки — я использовал толщину 0,8 мм .
  • Макетная плата какого-то типа, к которой вы можете припаять все свои биты. Я использовал тот, у которого не было полных дорожек вдоль него, так как у меня нет дорожного резца, но использую то, что вам подходит. Щит для прототипирования Arduino слишком мал, если только вы не сожмете свои светодиоды вместе.
  • Случайный компонентный провод — некоторые жилы сетевого кабеля и некоторые прототипные провода из комплекта будут работать нормально.
  • Зажимы «крокодил» или «руки помощи» полезны для удержания бит на месте.
  • Паяльник и припой.
  • Немного дров.
  • Дрель с битом того же размера, что и ваши светодиоды.

Примечание: 3D-рисунки в этом уроке были выполнены за несколько минут с использованием TinkerCAD . Я следовал за существующей сборкой, подробно описывающей Instructables пользователем forte1994 , которую вы, возможно, также захотите прочитать, прежде чем пытаться это сделать.

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

Принцип этой конструкции

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

Чтобы управлять всеми этими светодиодами всего за 20 контактов, мы будем использовать технику, называемую мультиплексированием. Разбивая куб на 4 отдельных слоя, нам нужны только управляющие контакты для 16 светодиодов — поэтому, чтобы зажечь конкретный светодиод, мы должны активировать как слой, так и управляющий контакт, что дает нам общее требование 16 + 4 контакта. Каждый слой имеет общий катод — отрицательную часть цепи — так что все отрицательные ветви соединены вместе и подключены к одному выводу для этого слоя.

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

строительство

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

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

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

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

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

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

Удалите этот слой с зажима и повторите процесс еще 3 раза .

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

Объединение слоев

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

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

1-ая глупая ошибка, которой следует избегать

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

2-я глупая ошибка, которой следует избегать

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

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

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

Крепление к доске

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

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

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

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

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

Вот и все. Законченный!

Программирование вашего куба

Я знаю, что вам не терпится запустить эту штуку, поэтому подключите 4 отрицательных слоя к портам аналогового ввода / вывода A2 (нижний уровень) — A5 (верхний уровень) (они также могут действовать как цифровые входы / выходы)

. Затем подключите 16 управляющих выводов светодиодов, начиная с +1 в крайнем правом положении на порт цифрового ввода-вывода 0 , с +15 и +16 на аналоговые A0 и A1 . (Не используйте AREF и GND)

Загрузите демонстрационные образцы и код от обучаемого пользователя forte1994 . Он также предоставил полезный онлайн-инструмент для проектирования шаблонов байтов для настройки собственной последовательности. Вот видео этого кода в действии на моем кубе (я установил скорость 5 вместо 20 по умолчанию)

.

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

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

  1. Для адресации одного светодиода используется плоскость (слой) с номерами 0–3 и выводом светодиодов с номерами 0–15. Поверните плоскость на НИЗКИЙ выход (так как это отрицательный участок) и номер контакта светодиода HIGH (положительный участок), чтобы активировать светодиод.
  2. Перед тем, как активировать один светодиод, убедитесь, что все остальные плоскости выключены — это означает, что установите их на ВЫСОКИЙ выход. Невыполнение этого требования приведет к тому, что столбец светодиодов будет гореть, а не один светодиод.

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

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

Резюме

Не пугайтесь этой сборки — мне серьезно не хватает навыков пайки, и я справился с этим хорошо (я думаю?) . Общее время сборки составило около часа в день на неделю. В следующий раз я попытаюсь научить вас более амбициозному программированию для куба, поэтому я надеюсь, что вы присоединитесь ко мне в создании собственного куба на этой неделе и загрузке нового кода на следующей неделе — и если вы все же сделаете свой собственный отличные приложения или последовательности, пожалуйста, загрузите их в Pastebin и дайте нам знать в комментариях!

Светодиоды всегда тусклые с arduino nano (led, voltage)

arduino-nano led voltage

поэтому я делаю анимированный светодиодный стоп-сигнал с помощью arduino nano, похожий на этот: https://www. youtube.com/watch?v=d5Ohzg3JKq0&ab_channel=IMEEMADE

У меня есть 18 каналов, с разным количеством последовательных светодиодов и резистора. Все светодиоды + соединены вместе, предназначены для входа 14,5 В, с отдельным резистором после последнего катода светодиода:

14.5 V -> + LED - ->> R ->>> GND>>>

У меня есть несколько каналов с 1 светодиодом, 2 светодиода и 4 светодиода, все настроены с различными резисторами, так что каждый канал «тянет» ~20 мА при 14,5 В. 12 В работает отлично, а также просто немного диммер. На источнике питания я могу заземлить любой канал без перекрестных помех или заземлить все и все светодиоды равномерно (из того, что могут сказать мои глаза).

Первоначально я планировал предоставить 5 В вход для arduino с помощью преобразователя buck и подключить каждый канал к цифровому выходу (D2-D19 или D2-D13 + A0-A5). В итоге я обеспечил 12 В на Vin и 12 В на светодиоды, а также arduino вообще не работал, как ожидалось, с 14,5 В на светодиоды и 12 В на Vin.

Моя проблема заключается в том, что при такой настройке, независимо от того, что я делаю в коде, когда arduino подключен к Vin и заземлению, некоторые светодиоды всегда горят тускло (странно D2-D13). Они действительно становятся ярче, когда pinMode установлен в OUTPUT и вызывается digitalWrite({pin}, LOW). Но запись HIGH или установка

pinMode для ввода не отключает их, просто оставляет их тусклыми. Я попытался настроить Vin между 7-12 В, установив регулятор на 5 В и подключившись непосредственно к 5 В. Никаких изменений в поведении. Единственное, что заставляет светодиоды тускло светиться, — это снижение входного напряжения на сами светодиоды. Но тогда мне не хватает, чтобы управлять 4-мя светодиодными каналами серии…

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

Что я делаю неправильно или как я могу заставить это работать? Мне нужно как минимум 12 В к светодиодной плате, чтобы убедиться, что каналы 4-й серии горят правильно. Из того, что я прочитал, я уже исчерпал цифровые каналы на arduino nano, поэтому не могу использовать один из них в качестве входного сигнала (вместо Vin или 5V), если это имеет значение, или разделить 4 серии на 2 канала и т. Д.

Заранее спасибо!

@user72995, 👍0

alexxlab

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

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