Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Привет!
Это в некоторой степени простой способ сделать самодельный программируемый задний фонарь RGB (со встроенными поворотниками / индикаторами) для вашего мотоцикла или, возможно, чего-либо, используя WS2812B (индивидуально адресуемые светодиоды) и Arduinos. Есть 4 режима световых схем, которые можно переключать с помощью кнопки.
Идея сделать такой задний фонарь была у меня с первого дня, когда я получил свой мотоцикл, но в то время я не был уверен в том, как сделать такой задний фонарь, и на самом деле у меня не было времени, так как я был занят мой колледж. Мои первоначальные планы состояли в том, чтобы купить светодиоды RGB и заменить их штатными светодиодами в задних фонарях моего мотоцикла, а также немного изменить проводку, чтобы добавить встроенную функцию мигания. Такая реализация потребовала бы пары транзисторов и регуляторов напряжения для каждого из КРАСНО-ЗЕЛЕНО-СИНИХ управляющих проводов на светодиодах RGB, что привело бы к очень сложной схеме.
Однако я был настолько одержим этой идеей, что решил купить светодиоды RGB и другие необходимые компоненты, но все мои планы изменились, когда парень в магазине электроники представил мне светодиоды, известные как индивидуально адресуемые или программируемые светодиоды (которые для меня в то время было в новинку), которые были похожи на светодиоды RGB, но каждый светодиод можно было контролировать индивидуально, чтобы он загорался в любой последовательности или цвете с помощью контроллеров Arduino и только одного провода управления для всей полосы. С этого момента мне потребовался почти год, чтобы завершить этот проект, начиная с изучения того, как эти светодиоды работают… как их программировать… пройти через различные конструкции схемы и ее прототипов… много-много устранения неполадок (это было единственное, что было происходило в течение последних двух месяцев моего проекта, поскольку в рамках моего дерьмового дизайна каждый день происходила серия ошибок и отказов компонентов. В процессе исправления какой-то ошибки в моей схеме возникают новые проблемы, и это продолжало происходить часто. и был для меня полным стрессом, что я почти не мог сосредоточиться на чем-то еще). К концу этого проекта я прошел через один поврежденный Arduino, пару перегоревших микросхем LM7805 и резисторов, много-много полосных плат и светодиодов все это составило бы почти половину денег, которые я потратил на этот проект.
Я мог бы сделать этот проект, или вы могли бы завершить его в течение 20 дней, при условии, что в вашем распоряжении будут все необходимые детали. У меня так много времени заняло учеба в колледже, период ожидания продуктов, которые были заказаны с разницей в несколько недель или месяцев, поскольку для меня были проблемы с деньгами, и, наконец, я подумал про себя, было ли все это на самом деле глупой идеей и в чем был смысл на самом деле трачу свое время и деньги на это. В любом случае, мне очень понравилось заниматься этим проектом, и я был вовлечен в него почти год, и я уверен, что вы тоже. Итак, приветствую вас в DIY!
Шаг 1. Необходимые компоненты
Необходимые компоненты могут отличаться в зависимости от того, как вы планируете реализовать этот проект. Например, я использовал два Arduinos, чтобы иметь несколько шаблонов и переключаться между ними. Однако, если вам нужен только встроенный указатель поворота / индикатор с функцией стоп-сигнала, вы можете сделать это с помощью всего одного Arduino. Точно так же радиаторы, использованные в моем дизайне, были излишними и совсем не требовались для моей цели. Таким образом, вы можете удалить те компоненты, которые, по вашему мнению, не нужны, и которые я использовал только потому, что был тупым, неопытным и чрезмерно обеспокоенным (мне все же удалось несколько раз разрушить мою схему). Итак, ниже приведен список компонентов, которые я использовал для создания этого проекта:
- Светодиоды WS2812B (в зависимости от того, сколько вам требуется для ваших целей)
- АРДУИНО НАНО x2
- LM7805 x5 (регулятор напряжения для преобразования 12 В от батареи в 5 В)
- Резистор 10кОм x5
- Провода
- Разъемы (я использовал разъемы для системной платы MALE (x2) и FEMALE (x2))
- Кнопка (для переключения режимов) x1
- Полосовая доска x2
- Радиатор x5
- Пластиковый контейнер x1
Как я уже сказал, количество необходимых деталей действительно зависит от того, как вы планируете реализовать этот проект.
Шаг 2: Arduino, светодиоды WS2812B и библиотека FastLED (программирование и тестирование)
Итак, первое, что вам нужно сделать, прежде чем создавать фактическую схему, - это проверить, действительно ли ваша схема будет работать и будет ли ваша программа работать так, как предполагалось. Все это можно сделать, протестировав компоненты на макетной плате и обнаружив какие-либо проблемы с любыми компонентами или схемой. Мы всегда можем повторить попытку с разными вариантами, пока не получим идеальную рабочую схему. Одна из причин, по которой мне потребовалось так много времени, чтобы завершить этот проект, заключалась в том, что я торопился с этим проектом и не тестировал первоначальную схему для различных комбинаций входного сигнала. Это закончилось тем, что пришлось пройти через множество замен компонентов, а также перемонтировать схему.
Первое, что нужно обсудить, - это тип светодиода, который использовался в этом проекте, и то, как мы можем запрограммировать их, чтобы они работали так, как мы предполагаем. Я использовал модель светодиода WS2812B, известную как светодиоды с индивидуальной адресацией. Существуют разные модели этих светодиодов с разными названиями, и я понятия не имею, в чем разница между каждым из них, все, что я знаю, это то, что разные модели различаются по цветовой температуре, а некоторые из них имеют тактовый вывод в дополнение к выводу данных.
Для управления этими светодиодами мы используем контроллер Arduino (я использовал UNO и MEGA для тестирования и NANO для моей последней схемы) вместе с библиотекой FastLED, библиотекой arduino, используемой для управления типами светодиодов, используемых в этом проекте. Эту библиотеку можно получить из GITHUB REPO.
Итак, первое, что нужно отметить, прежде чем мы сможем загружать программы в Arduino, - это добавить библиотеку FastLED в Arduino IDE. Как это сделать, можно найти здесь.
Для этого проекта я использовал два Arduinos, один для отправки сигналов на светодиод, а другой для переключения между различными режимами или схемами освещения. Если вам нужен только один режим / шаблон по умолчанию, все, что вам нужно, - это один Arduino.
Вы можете скачать программы по следующей ссылке.
Теперь я проведу вас по программам и опишу, что все нужно изменить в соответствии с вашими настройками. Как видите, есть две программы, которые называются ledact и ledpatt2. Программа ledact предназначена для Arduino, которая используется для циклического переключения режимов / шаблонов, а программа ledpatt2 управляет светодиодами. Вы также можете увидеть одни и те же две программы в разных папках под названием nano. Это вещь, но меньше по размеру, поэтому вы можете использовать ее с ARDUINO NANO, у которого меньше памяти, чем у UNO или MEGA.
Сначала давайте посмотрим, что нужно изменить в ledpatt2 в соответствии с вашей схемой. Сначала вам нужно изменить NUM_LEDS и DATA_PIN в строках 3-4 на количество светодиодов, которые вы используете, и номер вывода на Arduino, к которому подключен сигнал данных вашего светодиода. Затем вам нужно изменить код в 18 в соответствии с типом светодиодов, которые вы используете. Например, мой код похож на thta, поскольку я использовал светодиоды WS2812B с калибровкой BRG (СИНИЙ-КРАСНЫЙ-ЗЕЛЕНЫЙ). Если вы используете какой-либо другой светодиод, замените WS2812B в коде названием вашего светодиода и замените BRG его калибровкой цвета. Чтобы найти калибровку цвета вашего светодиода, вы можете прочитать статью, найденную здесь.
Вы можете увидеть пару инициализаций в строках 15-25, из которых 15-21 можно избежать, если вам нужен только один шаблон. Эти контакты, упомянутые в строках 15-21, используются для запуска различных режимов, и это делается с помощью другого Arduino. Строки 22-25, как было упомянуто в коде, используются для приема входных сигналов для тормозных, парковочных и мигалок / указателей поворота.
В ledact вам нужно беспокоиться только о строках 4-8, если вы хотите, чтобы он работал так же, как в этом проекте. Строки 4-7 - это контакты, запускающие каждый из режимов. Так как я хотел только 4 режима, было использовано 4 контакта. Строка 8 используется для инициализации modePin, вывода, к которому подключена кнопка. В коде вы можете видеть, что контакты 3, 4, 5, 6 Arduino используются для 4 режимов. Эти контакты напрямую подключены к 3-4-5-6 контактам на Arduino, загруженном с помощью программы ledpatt2.
Это был мой метод использования светодиодов с разными узорами, и я думаю, что это довольно непоследовательно. Я много искал в Интернете, можно ли все это сделать, используя только один Arduino, но я не нашел ничего, что помогло бы мне. Если вы знаете, как это сделать или очень хорошо разбираетесь в программировании, я предлагаю вам пойти с этим, поскольку моя программа очень плохо продумана и громоздка из-за моих плохих навыков программирования. И, пожалуйста, поделитесь с нами своими результатами.
Шаг 3: Настройка схемы
Это довольно простой шаг, если вы полностью понимаете схему или имеете хорошо продуманный план реализации схемы. Если компоненты в схеме кажутся вам непонятными, я сломаю их для вас, так как это очень простая схема. Сначала у нас есть пять микросхем LM7805, используемых для преобразования 12 В в 5 В (это напряжение безопасно для входных контактов Arduino), четыре из которых используются для приема сигналов торможения, парковки и поворотников L-R, а остальные используются для питания двух Arduino. Затем у нас есть пара резисторов 10 кОм, подключенных параллельно к каждой из входных клемм, и, наконец, два Arduino.
Я сделал схему, ссылаясь на схему, сделанную до использования Fritzing. В качестве разъемов использовались разъемы SMPS-MOTHERBOARD MALE / FEMALE. Вы можете проверить фотографии и следить за ними.
Эта схема не самая лучшая, поскольку в ней нет схем защиты или фильтров, и причина, по которой я не включил ничего из этого, заключается в том, что я полный нуб. Также радиаторы, используемые с микросхемами, были сняты со старого SMPS и использовали с ними термопасту. Однако некоторые компьютерщики сказали мне, что использование радиаторов было излишним для этого приложения и что микросхемы будут работать без необходимости использования радиаторов в этой схеме. Так вот что.
Шаг 4: Заключительный шаг: бокс и настройка в мотоцикле
Пластиковый контейнер использовался в качестве корпуса для схемы и обмотан изоляционной лентой, поскольку вода - это то, чего мы не хотим в нашей схеме. Следующая задача - подключить все и провести проводку на мотоцикле. Вы должны быть очень осторожны при работе с электрикой мотоцикла, так как любое короткое замыкание может полностью повредить электронику мотоцикла. Если вы не знакомы с электропроводкой своего мотоцикла, вы можете обратиться к руководствам по обслуживанию или выполнить поиск в Интернете. Остается снять штатный задний фонарь и заменить внутри него светодиоды на WS2812B. После этого упакуйте и снова закройте лампу, не оставляя отверстий или пространств для проникновения влаги. Вы можете оставить монтажную коробку в отсеке для хранения под задним сиденьем мотоцикла. Наконец, подключите все, включите питание и прокатитесь на мотоцикле. Хотя над проектом кажется слишком много работы, я могу заверить вас, что конечный результат порадует вас, как сумасшедшего. СПАСИБО ЗА ЧТЕНИЕ И НАСЛАЖДАЙТЕСЬ!