Бегущий поворотник на ардуино отдельных диодах. Мастер-класс по изготовлению динамических «бегущих» поворотников


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

[ Скрыть ]

Инструкция по сборке

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

Фотогалерея «Возможные варианты динамических указателей поворотов»

Инструменты и материалы

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

  • паяльник;
  • бокорезы или плоскозубцы;
  • паяльник и материал для пайки;
  • тестер.

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

Последовательность выполнения работы

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

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

Сборка состоит из последовательности действий:

  1. Сначала следует обесточить авто, отключив отрицательную клемму от АКБ.
  2. Далее необходимо снять старые указатели поворотов и аккуратно их разобрать.
  3. Старые лампочки следует выкрутить.
  4. Места стыков следует очистить от клея, обезжирить, вымыть и дать просохнуть.
  5. На место каждого старого элемента устанавливается новый поворотник бегущий огонь.
  6. Далее сборка и установка фонарей производится в обратном порядке.
  7. После установки подключаются провода.

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

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


Особенности установки и настройки бегущих указателей поворота

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

На место удаленного отражателя устанавливается плата SMD 5730, на которой расположены желтые светодиоды. Так как у повторителя изогнутая форма, то плату придется расслоить и немного изогнуть. У старой платы нужно отрезать часть с разъемом и припаять ее для подключения контроллера. Далее все компоненты возвращаются на место.

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


Цена вопроса

Можно изготовить поворотник бегущий огонь из дневных ходовых огней. Их стоимость составляет 600 рублей. В качестве источников света в этом случае можно взять «пиксельные» RGB светодиоды в количестве 7 штук на каждый бегущий поворотник. Стоимость одного элемента составляет 19 рублей. Для управления светодиодами необходимо приобрести Arduino UNO стоимостью 250 рублей. Таким образом, общая стоимость составит 1060 рублей.


Привет всем самодельщикам! Сегодня рассмотрим один из множества вариантов применения светодиодной ленты типа WS2812B на адресуемых RGB-светодиодах. Такие ленты (как и отдельно монтируемые светодиоды WS2812B) можно использовать для подсветки фона «Ambilight» мониторов компьютера а также телевизоров, светодинамической подсветки в автомашине, картины, фоторамки, аквариума и так далее. Широко применяются разработке дизайне любых помещений, в форме новогодних иллюминаций или световых шоу. Использование светодиодной ленты типа WS2812В дает возможность получить большое количество интересных проектов.

Светодиод WS2812B представляет собой RGB-светодиод вставленный в один корпус с чипом WS2801.


Сам светодиод WS2812B представляет собой SMD элемент предназначенный для поверхностного монтажа. Внутри светодиод состоит из кристаллов красного света (red), зеленого света (green) и синего света (blue) кристаллов, находящихся в одном корпусе. С помощью этого светодиода можно получить большое ранообразие цветовых оттенков светового излучения.

Управление RGB-светодиода происходит через плату микроконтроллера Arduino .
Получил я от китайцев светодиодную ленту WS2812B.Она представляет собой отрезок длиной 1 метр с количеством светодиодов -144 штуки. Давно хотел попробовать для разных экспериментов. С помощью библиотек для Ардуино- Adafruit Neopixel и Fast led можно получить массу очень необычных световых эффектов. Но далее решил попробовать сделать динамические поворотники для автомобиля в так называем «стиле Ауди».Применять на практике эту схему я у себя пока не стал(как примут наши гиббддешники?) ,но эффект получился конечно очень привлекательный.

В роли контроллера управления светодиодной лентой служит плата Arduino Uno можно использовать и другие платы- Arduino Nano, Arduino Pro mini).
Весь процесс посмотреть в видео:


Перечень инструментов и материалов.
-плата Arduino Uno;
- понижающая плата 12В\5В на 3А;
- резисторы 100Ком-4шт;
-резисторы 47Ком-4шт;
- резисторы 500Ом-1шт;
-кнопки (для имитации включения сигналов) -4шт;
-макетная плата
-отвертка;
лабораторный блок питания
-паяльник;
-кембрик;
-тестер.
-соединительные провода.

Шаг первый. Сборка схемы.


Собрал схему с помощью макетной платы (бредборда). Резисторы подключенные к цифровым входами Ардуино нужны для преобразования входных сигналов автомобиля с 12-ти до 5 вольт. Резистор 500 Ом для защиты линии управления светодиодной ленты WS2812B.
Фото платы


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


Шаг второй. Программирование Ардуино.

Цифровые входы платы Ардуино №3,4 служат для включения левого и правого поворота. Пин №5 –включение стоп сигнала, пин №6 –включение заднего хода. Пин №8 –управляющий сигнал лентой WS2812B.

В среде Arduino IDE загружаем скетч (ссылка выше). Два варианта скетча-один для передней части автомобиля, другой – для задней. Используйте какой вам нужен. В начале скетча можно выставить нужное вам количество светодиодов. Так же можно откорректировать скорость поворотников соответственно вашему авто . Еще можно изменить яркость светодиодов параметром strip.Color(103,31,0) –менять первые две цифры от 0 до 255. То есть можно немного поэкспериментировать.

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

Фото в работе.






Неплохой эксперимент получился с этой конструкция выходного дня. Было интересно

Все те, кто видел более менее современную и машину не во второй раз, а если еще и было дело проехался за рулем, уже давно отметил для себя одну из полезных опций… Именуют ее в народе ленивый поворотник или вежливый указатель поворота. Вся ее суть сводится к тому, что при повороте направо или налево водитель лишь единожды прикасается к рычагу указателя поворота, при этом без фиксации. То есть просто дает сработать цепи указателя поворотников, но не включает этот самый переключатель. В итоге после того как рычаг отпущен, указатели поворотов срабатывают еще 3-4 раза, а водитель в это время уже может заниматься «своими делами», то есть всецело отдаться дороге. Опция весьма полезная, когда приходится перестраиваться по полосам. Ведь при полном включении рычага указателей поворотов, автоматического отключения не произойдет, в связи с незначительным углом поворота руля, а значит надо будет тыкаться туда- обратно самим указателем или постоянно поддерживать его рукой на грани включения, дабы имитировать работу указателя поворотов. А если такая опция есть, то просто чуть коснулся рычага и забыл. В общем мы думаем, суть работы раскрыли в полной мере, теперь же стоит упомянуть о возможно реализации такой опции на своей машине.

Для каких электрических схем подойдет вежливый поворотник на Arduino

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

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

Скетч и схема ленивого (вежливого) указателя поворота на Arduino

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

Int switchPinR=8; int switchPinL=7; int ledPinR=11; int ledPinL=12; boolean ledOn = false; int i=0; int z=0; void setup() { // put your setup code here, to run once: pinMode(switchPinR, INPUT); pinMode(switchPinL, INPUT); pinMode(ledPinR, OUTPUT); pinMode(ledPinL, OUTPUT); Serial.begin(9600); } void loop() { // put your main code here, to run repeatedly: //2 label: if (digitalRead(switchPinR) == HIGH && digitalRead(switchPinL) == HIGH) { digitalWrite(ledPinR, HIGH); digitalWrite(ledPinL, HIGH); i=0; while (i<7) { ledOn = !ledOn; digitalWrite(ledPinR, ledOn); digitalWrite(ledPinL, ledOn); delay(400); i++; z++; if (digitalRead(switchPinL) == LOW && digitalRead(switchPinR) == LOW && z>=7) { break; } } } else { digitalWrite(ledPinR, LOW); digitalWrite(ledPinL, LOW); z=0; } //зацикливание аварийки if (digitalRead(switchPinR) == HIGH && digitalRead(switchPinL) == HIGH) {goto label;} //Правый поворотник. if (digitalRead(switchPinR) == HIGH) { digitalWrite(ledPinR, HIGH); i=0; while (i<7) { ledOn = !ledOn; digitalWrite(ledPinR, ledOn); delay(400); i++; z++; if (digitalRead(switchPinR) == LOW && z>=7) { break; } } } else { digitalWrite(ledPinR, LOW); z=0; } //Левый поворотник. if (digitalRead(switchPinL) == HIGH) { digitalWrite(ledPinL, HIGH); i=0; while (i<7) { ledOn = !ledOn; digitalWrite(ledPinL, ledOn); delay(400); i++; z++; if (digitalRead(switchPinL) == LOW && z>=7) { break; } } } else { digitalWrite(ledPinL, LOW); z=0; } } }

Вкратце можно резюмировать, что в скетче имеется 2 входа и 2 выхода. При этом при входе положительного, то есть высокого уровня сигнала на входе (8,7), мы получаем определенное количество морганий (z или i) на соответствующем выходе (11,12). Если кратко, то как-то так. То есть если вы захотите что-то поменять в скетче относительно количества морганий и выходов входов, то обратите внимание именно на эти переменные. Если необходимо будет изменить длину морганий, то ваше внимание должно быть приковано к функции delay.
Еще одной особенностью программы является несколько необычный выход на аварийную сигнализацию. Вначале отрабатывают левый и правый указатель, затем включается и аварийная световая сигнализация. Связано это с тем, что она может включиться только при условии высокого входа одновременно на входе 8 и 7. А это условие исполнится только на второй цикл, ведь нажать одновременно две кнопки разом не получится просто физически. Быстродействие микроконтроллера позволит считать высокий выход с какой-то кнопки быстрее и решит, что это все-таки условие срабатывания указателя поворота, а не аварийная сигнализация. Хотя не стоит об этом заморачиваться, разве что сказать спасибо на дороге будет проблематично.

Особенности подключения в автомобиле ленивого (вежливого) указателя поворота на Arduino

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

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

Рассмотрим создание бегающего поворотника как на ауди, на примере фары от автомобиля Рено Клио. Сделаем поворотники и ДХО в одном устройстве.

Что для этого потребуется: Светодиодная лента, состоящая из светодиодов ws2812b Контроллер Arduino nano (можно использовать в любом другом формфакторе) Автомобильное зарядное устройство для мобильных телефонов с USB выходом. Так как контроллеру Arduino нужно напряжение в 5В, то это зарядное будем использовать в качестве преобразователя напряжения с 12В на 5В. Стабилизатор напряжения на 5В КР142ЕН5В (КРЕН5В) или любой другой импортный аналог. 3 резистора 10 кОм, в качестве подтягивающего сопротивления.

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

Контроллер ардуино необходимо подключить к сети автомобиля через преобразователь 12В -> 5В так, чтобы напряжение на схему поступало от включения «зажигания». К стабилизатору напряжения КРЕН5В нужно подключить плюсовой провод от действующего поворотника. В данной статье рассмотрено подключение и прошивка только одного поворотника, чтобы сделать второй поворотник нужно аналогично подключить вторую светодиодную ленту к любому свободному цифровому выходу Arduino (например 7), а так же в прошивке добавить код для него по нашему примеру.

Прошивка контоллера

Для работы с пиксельными светодиодами нужна будет библиотека . Установить ее можно будет следующим образом: Скетч -> Подключить библиотеку -> Управлять библиотеками. Далее в меню поиска ввести название библиотеки Adafruit_NeoPixel.h и нажать кнопку установить. После этого вставить скетч в программу и заменить в коде количество светодиодов (у нас используется 22 диода):

#include // подключаем библиотеку
Adafruit_NeoPixel strip = Adafruit_NeoPixel(22, 8, NEO_GRB + NEO_KHZ800);
int t,t1,t2,t3,t4,p2,p1 = 0;// переменная времени
void setup() {
pinMode(2, INPUT);
pinMode(3, INPUT);
pinMode(4, INPUT);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);

strip.begin();
strip.show();

}
void loop() {
if (digitalRead(2) == LOW) { //Если поворотник выключен
for(int i = 0; i < 23; i++) {
strip.setPixelColor(i, strip.Color(255,255,255)); // R=255, G=255, B=255 - белый цвет светодиода, при включении зажигаем ходовые огни
}
strip.show();
}

if ((digitalRead(2) == HIGH) & (t == 1)) { // проверяем включили ли поворотник
for(int i = 0; i < 23; i++) {
strip.setPixelColor(i, strip.Color(0, 0, 0)); // тушим все диоды
}
strip.show();
for(int k = 0; k < 3; k++){ // цикл до трех - сигнал «перестроения» , при кратковременном включении мигает 3 раза,

for(int i = 0; i < 23; i++){

if (digitalRead(2) == HIGH) {k = 0;} // если во время мигания поворотника получаем еще плючоой сигнал, то обнуяем счетчик, чтобы поворотник мигал еще как минимум 3 раза
strip.setPixelColor(i, strip.Color(255, 69, 0)); // R=255, G=69, B=0 - цвет светодиода

delay((t4)/22);
strip.show();

}
if (digitalRead(2) == HIGH) {t4=t4+20;} // если зажгли все диоды желтым, но сигнал с реле еще идет, значит увеличиваем время горения
if (digitalRead(2) == LOW) {t4=t4-20;} // если зажгли все диоды желтым, но сигнал с реле еще идет, значит увеличиваем время горения

for(int i = 0; i < 23; i++){

strip.setPixelColor(i, strip.Color(0, 0, 0)); // R=0, G=0, B=0 - цвет светодиода

delay((t3)/22);
strip.show();

}
if ((digitalRead(2) == LOW)) {t3=t3+20;}
if ((digitalRead(2) == HIGH)) {t3=t3-20;}
}

if ((digitalRead(2) == HIGH) & (t == 0)) { // проверяем включили ли поворотник

t1 = millis(); //запоминаем во сколько включился
for(int i = 0; i < 22; i++) {
strip.setPixelColor(i, strip.Color(255, 69, 0)); // при первом включении поворотника зажигаем все диоды желтым
}
strip.show();
while (digitalRead(2) == HIGH) {}
t2 = millis(); // запоминаем во сколько выключился поворотник
t4=t2-t1;

for(int i = 0; i < 22; i++) {
strip.setPixelColor(i, strip.Color(0, 0, 0)); // тушим диоды, когда пропал сигнал с реле поворотов
}
strip.show();
while (digitalRead(2) == LOW) {
if ((millis()-t2)>2000){break;}
}
if ((millis()-t2)<2000) {
t3 = millis()-t2; // время на которое тухнут поворотники
t = 1; // флаг, знаем что значение времени сохранились.
}
}

if (digitalRead(4) == HIGH) { //спецсигналы
for(int j = 0; j < 16; j++) {
for(int i = 0; i < 22; i++) {
strip.setPixelColor(i, strip.Color(255, 0, 0)); // R=255, G=0, B=0 - цвет светодиода
}
strip.show();
delay(20);
for(int i = 0; i < 22; i++){

}
strip.show();
delay(20);
}

for(int j = 0; j < 16; j++) {
for(int i = 0; i < 22; i++) {
strip.setPixelColor(i, strip.Color(0, 0, 255)); // R=0, G=0, B=255 - цвет светодиода
}
strip.show();
delay(20);
for(int i = 0; i < 22; i++){
strip.setPixelColor(i, strip.Color(0, 0, 0)); // R=0, G=0, B=0 - цвет светодиода
}
strip.show();
delay(20);
}
}

if (digitalRead(3) == HIGH) { //стробоскоп
for(int j = 0; j < 24; j++) {
for(int i = 0; i < 22; i++) {
strip.setPixelColor(i, strip.Color(255, 255, 255)); // R=255, G=255, B=255 - цвет светодиода
}
strip.show();

delay(15);
for(int i = 0; i < 22; i++){
strip.setPixelColor(i, strip.Color(0, 0, 0)); // R=0, G=0, B=0 - цвет светодиода
}
strip.show();
delay(15);
}
delay(500);

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

Видео как работает наша фара

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

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


Данная схема может работать в диапазоне напряжения питания 3 -15 Вольт. Генератор импульсов собран на микросхеме NE555, далее импульсы подаются на десятичный счетчик с дешифратором - микросхема CD4017(или К561ИЕ8), к выходам которой подключены светодиоды через токоограничительные резисторы.

Скорость переключения бегущих огней регулируется подстроечным резистором. Добавляем схему с триггерами и выходными транзисторными ключами. Не надо ничего программировать и т.д. В результате можно получить более интересные световые эффекты бегущих огней. Нужно сделать еще одну печатную плату с триггерами К561ТМ2 и силовыми ключами на КТ815. Импульс с каждого выхода К561ИЕ8 подается на вход триггера по принципу «защелка» то есть на выходе триггера сигнал остается постоянным до прихода импульса сброса с вывода 11 микросхемы CD4017(К561ИЕ8). За цикл включаются 9 каналов.







2024 © gtavrl.ru.