Дизайнерът на ходови светлини от Aliexpress е печатна електронна платкаи комплект радиокомпоненти. Всичко, което трябва да направите, е да запоите компонентите към платката.

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


Тази схема може да работи в диапазона на захранващото напрежение от 3-15 волта. Генераторът на импулси е сглобен на чип NE555, след което импулсите се подават към десетичен брояч с декодер - чип CD4017 (или K561IE8), към чиито изходи са свързани светодиоди чрез токоограничаващи резистори.

Скоростта на превключване на светлините се регулира от резистор за настройка. Добавете верига с тригери и изходни транзисторни ключове. Не се изисква програмиране и т.н. В резултат на това по-интересно светлинни ефектиходови светлини. Трябва да направите друга печатна платка с тригери K561TM2 и клавиши за захранване на KT815. Импулсът от всеки изход K561IE8 се подава към входа на тригера съгласно принципа на "заключване", т.е. сигналът на изхода на тригера остава постоянен, докато импулсът за нулиране пристигне от пин 11 на чипа CD4017 (K561IE8). На цикъл се включват 9 канала.

Много автомобилни ентусиасти за подобряване външен видна колата си, настройват своята „Лястовица” с LED светлини. Една от опциите за настройка е работещ мигач, който привлича вниманието на другите участници в движението към себе си. Статията предоставя инструкции за инсталиране и конфигуриране на мигачи със светлини.

[ Крия ]

инструкции за сглобяване

LED лампите са полупроводникови елементи, които светят под въздействието на електрически ток.Основният елемент в тях е силицият. В зависимост от това какви примеси се използват, цветът на луковиците се променя.

Фотогалерия "Възможни опции за динамични пътепоказатели"

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

За да направите мигач със собствените си ръце, ще ви трябват следните инструменти:

  • поялник;
  • странични ножове или клещи;
  • поялник и материал за запояване;
  • тестер.

от Консумативитрябва да подготвите фибростъкло. Необходим е за производството на печатна платка, върху която ще бъде поставен полупроводников елемент. Необходимите светодиоди са избрани. В зависимост от характеристиките на светодиодите и стойностите на тока и напрежението на бордовата мрежа се изчисляват характеристиките на защитните резистори. С помощта на изчисления се избират останалите компоненти на мрежата (авторът на видеото е Евгений Задворнов).

Работна последователност

Преди да направите мигачи, трябва да изберете правилната схема.

След това, въз основа на схемата, направете печатна платка и нанесете маркировки върху нея, за да поберете бъдещи елементи.

Сглобяването се състои от последователност от действия:

  1. Първо изключете захранването на автомобила, като изключите отрицателния полюс от акумулатора.
  2. След това трябва да премахнете старите пътепоказатели и внимателно да ги разглобите.
  3. Старите крушки трябва да се развият.
  4. Фугите трябва да бъдат почистени от лепило, обезмаслени, измити и оставени да изсъхнат.
  5. На мястото на всеки стар елемент се монтира нов мигач, работещ с огън.
  6. По-нататъшното сглобяване и инсталиране на лампите се извършва в обратен ред.
  7. След монтажа проводниците са свързани.

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

При свързване на светодиоди е необходимо да се гарантира, че анодът е свързан към плюса на източника на захранване, а катодът към минуса. Ако връзката не е направена правилно, полупроводниковите елементи няма да светят и дори могат да изгорят.


Характеристики на монтаж и настройка на пътепоказатели

Можете да инсталирате динамични мигачи вместо конвенционалните светодиоди. За да направите това, те премахват, демонтират платката със светодиоди и резистори за ограничаване на тока. На повторителя трябва да откъснете стъклото от тялото. След това рефлекторът трябва внимателно да се изреже и отстрани.

На мястото на дистанционния рефлектор е монтирана платка SMD 5730, върху която са разположени жълти светодиоди. Тъй като ретранслаторът има извита форма, дъската ще трябва да бъде стратифицирана и леко огъната. При стара дъскатрябва да отрежете частта с конектора и да я запоите, за да свържете контролера. След това всички компоненти се връщат на мястото си.

За регулиране на времето за работа led светлиниПревключвателят е запоен към микроконтролера. Когато се намери подходяща скорост, на мястото на превключвателя се запояват джъмпери. При свързване на два терминала към маса, минималното време между миганията на светодиодите ще бъде 20 ms. Когато контактите са затворени, това време ще бъде 30 ms.


Емисионна цена

Можете да направите мигач, работещ огън от дневни светлини. Тяхната цена е 600 рубли. Като източници на светлина в този случай можете да вземете "пикселни" RGB светодиоди в количество от 7 броя за всеки работещ мигач. Цената на един елемент е 19 рубли. За да управлявате светодиодите, трябва да закупите Arduino UNO на стойност 250 рубли. Така общата цена ще бъде 1060 рубли.

Всички онези, които видяха повече или по-малко модерна и не за втори път колата, и ако все още беше въпрос на шофиране, отдавна отбелязаха за себе си един от полезни опции... Хората го наричат ​​мързелив мигач или учтив мигач. Цялата му същност се свежда до факта, че при завиване надясно или наляво водачът само веднъж докосва лоста за мигачи, без да го фиксира. Тоест, той просто позволява веригите на индикатора за мигачи да работят, но не включва същия този ключ. В резултат на това, след като лостът бъде освободен, пътепоказателите работят още 3-4 пъти и водачът по това време вече може да се занимава със собствен бизнес, тоест напълно да се предаде на пътя. Опцията е много полезна, когато трябва да смените лентата. В края на краищата, когато лостът на мигачите е напълно включен, автоматично изключваненяма да се случи, поради незначителния ъгъл на завъртане на волана, което означава, че ще трябва да бъркате напред-назад със самия показалец или постоянно да го поддържате с ръка на ръба на включване, за да симулирате работа на пътепоказателя. И ако има такава опция, тогава просто докоснете малко лоста и забравете. Като цяло смятаме, че същността на работата е напълно разкрита, но сега си струва да споменем възможното внедряване на такава опция на вашата машина.

Кои електрически вериги са подходящи за учтив мигач на Arduino

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

Релеен захранващ модул, който може да бъде закупен в интернет за контрол на натоварването на мощността

Скица и диаграма на мързелив (учтив) мигач на Arduino

И така, относно използването на Arduino като главно устройство като мързеливи мигачиможе да се спори, тъй като това също не е съвсем перфектно решение, което има своите недостатъци. Да кажем, че ще е необходимо да има постоянно захранване след включване на запалването, за да се осигури скорост, ще е необходимо да се свържат захранващи вериги. В същото време самата лента от ненужни радио компоненти по принцип е безполезна тук, защото в този случай можете просто да програмирате микроконтролера и да го използвате само. Но този минус е и плюс, защото всеки, който го има, може да си позволи да програмира Arduino, а за микроконтролери ще ви трябва и програмист.
Самото писане на програма ще бъде едно от най- предизвикателни задачи. Тук начинаещият ще трябва да отдели повече от един час от свободното си време и да изучава работата на алгоритмите, но за щастие има интернет и ние сме. И така, ето скицата.

int switchPinR=8; int switchPinL=7; intledPinR=11; intledPinL=12; булево ledOn = невярно; int i=0; intz=0; void setup() ( // поставете своя код за настройка тук, за да стартирате веднъж: pinMode(switchPinR, INPUT); pinMode(switchPinL, INPUT); pinMode(ledPinR, OUTPUT); pinMode(ledPinL, OUTPUT); Serial.begin(9600 ); ) void loop() ( // поставете основния си код тук, за да се изпълнява многократно: //2 етикет: if (digitalRead(switchPinR) == HIGH && digitalRead(switchPinL) == HIGH) ( digitalWrite(ledPinR, HIGH) ; digitalWrite(ledPinL, HIGH); i=0; докато (i<7) { ledOn = !ledOn; digitalWrite(ledPinR, ledOn); digitalWrite(ledPinL, ledOn); delay(400); i++; z++; if (digitalRead(switchPinL) == LOW && digitalRead(switchPinR) == LOW && z>=7) ( прекъсване; ) ) ) else ( digitalWrite(ledPinR, LOW); digitalWrite(ledPinL, LOW); z=0; ) // Цикъл на алармата if (digitalRead(switchPinR) == HIGH && digitalRead(switchPinL) = = ВИСОКО) (отидете на етикет;) //Десен мигач. 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) ( прекъсване; ) ) ) 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) ( прекъсване; ) ) ) else ( digitalWrite(ledPinL, LOW); z=0; ) ) )

Накратко можем да обобщим, че скицата има 2 входа и 2 изхода. В същото време, на входа на положителен, тоест високо ниво на сигнала на входа (8.7), получаваме определен брой мигания (z или i) на съответния изход (11.12). Накратко, нещо подобно. Тоест, ако искате да промените нещо в скицата по отношение на броя на миганията и изходите на входовете, тогава обърнете внимание на тези променливи. Ако е необходимо да промените продължителността на миганията, тогава вниманието ви трябва да бъде приковано към функцията за забавяне.
Друга функция на програмата е малко необичаен изход за аларма. Първо се изработват левият и десният указател, след което се включва аварийната светлинна аларма. Това се дължи на факта, че може да се включи само ако входът е висок едновременно на входове 8 и 7. И това условие ще бъде изпълнено само за втория цикъл, тъй като натискането на два бутона едновременно няма да работи просто физически. Скоростта на микроконтролера ще ви позволи да прочетете по-бързо високия изход от някой бутон и да решите, че това все пак е условие за задействане на мигача, а не аларма. Въпреки че не трябва да се притеснявате за това, освен че ще бъде проблематично да благодарите на пътя.

Характеристики на свързване на мързелив (учтив) мигач към Arduino в кола

Не трябва да използвате пин 13 като изход, тъй като при всяко включване и изключване на захранването индикаторите, които ще бъдат свързани към този изход, може да мигат.
Когато превключвате от контролни сигнали към захранващи сигнали, използвайте подходящите блокове, закупени в Интернет или сглобени от вас. Вече говорихме за такива блокове - модули.
Когато получавате сигнал 1 от напрежение 12 волта, поставете резистор 10 kΩ пред входа.

Това всъщност са всички прощални думи, когато правите мързелив мигач за кола на микроконтролер Arduino, а сега приблизително същото във видеото ...


Здравейте на всички „направи си сам“! Днес ще разгледаме едно от многото приложения led лентатип WS2812B на адресируеми RGB светодиоди. Такива ленти (както и отделно монтирани светодиоди WS2812B) могат да се използват за осветяване на фона на "Ambilight" на компютърни монитори и телевизори, динамично осветление в кола, картина, рамка за снимки, аквариум и т.н. Те се използват широко в дизайна на всякакви помещения, под формата на новогодишни илюминации или светлинни шоута. Използването на LED лента тип WS2812B дава възможност да се получат голям брой интересни проекти.

Светодиодът WS2812B е RGB светодиод, вграден в същия корпус с чипа WS2801.


Самият светодиод WS2812B е SMD елемент, предназначен за повърхностен монтаж. Вътре светодиодът се състои от кристали с червена светлина (червено), зелена светлина (зелено) и синя светлина (синьо) в един пакет. С този светодиод можете да получите голямо разнообразие от цветови нюанси на светлинно излъчване.

RGB LED се управлява чрез платката на микроконтролера Arduino.
От китайците получих LED лента WS2812B, представлява сегмент с дължина 1 метър и 144 светодиода. Отдавна исках да опитам различни експерименти. С помощта на библиотеки за Arduino - Adafruit Neopixel и Fast led, можете да получите много много необичайни светлинни ефекти. Но тогава реших да опитам да направя динамични мигачи за кола в така наречения "стил на Audi". Все още не съм приложил тази схема на практика (как ще я приемат нашите гиббддешници?), но ефектът се оказа бъдете много привлекателни.

Платката служи като контролер за управление на LED лентата. Ардуино УноМожете да използвате други платки - Arduino Nano, Arduino Pro mini).
Вижте целия процес във видеото:


Списък на инструменти и материали.
-платка Arduino Uno;
- понижаваща платка 12V \ 5V при 3A;
- резистори 100Ком-4бр.;
-резистори 47Ком-4бр.;
- резистори 500 Ohm-1бр.;
-бутони (за симулиране на включване на сигнали) -4бр.;
- дъска за хляб
-отвертка;
лабораторен блокхрана
- поялник;
- камбрик;
-тестер.
- свързващи проводници.

Първа стъпка. Сглобяване на схема.


Сглобих веригата с помощта на макет (bradboard). Резисторите, свързани към цифровите входове на Arduino, са необходими за преобразуване на входните сигнали на автомобила от 12 на 5 волта. Резистор 500 ома за защита на контролната линия на LED лентата WS2812B.
Снимка на борда


Като преобразувател от 12V към 5V използвах готова платка от Aliexpress. Може да се използва всеки конвертор с подходящи параметри. Конверторът е необходим за стабилно захранване на Arduino и LED лента WS2812B.


Стъпка втора. Програмиране на Arduino.

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

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

Когато натиснете желания бутон, даваме сигнал за активиране на желания параметър. При правилното сглобяване на веригата тя обикновено започва да работи веднага.

Снимка в процес.






Получи се добър експеримент с този уикенд дизайн. Беше интересно

Миналата година каза "Гоп" - време е за скок :)
Или по-скоро да направя обещания преглед на работещи мигачи.
Поръчах 1 метър черна лента WS2812B (144 светодиода) в силиконова тръба, при поръчка избрах „Черен 1m 144led IP67“ (може би някой ще хареса белия цвят на субстрата, има такъв избор).

Малко предупреждение

Получих лента, запоена от две парчета от половин метър. Недостатъкът на това е слабото място на запояването (контактите могат да се счупят с течение на времето) и увеличеното разстояние между светодиодите.
Консултирайте се с продавача преди покупка

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



Закрепени към стъкло с двустранно прозрачно тиксо, например.

Подробности за монтажа

Обезмаслих повърхностите, първо залепих залепващата лента към тръбата (ще я нарека така, въпреки че напречното сечение е правоъгълно), отрязах стърчащия излишък на по-широка лента, поставих ръбовете на тръбата в пролуката между тавана и горните части на декоративните панели на задните колони (скрих контактните проводници с конектора зад единия панел), центрирах и започнах да притискам към стъклото, като бавно издърпвах защитния слой на лентата.
За съжаление няма видео - нямаше свободни ръце за снимане, а колите на всеки са различни.
Ако нещо не е ясно - попитайте в коментарите.
Тестът на летните горещини беше успешен - нищо не се отлепи или изплува.
Единственият минус е, че ъгълът на наклон на стъклото е лек, светодиодите светят повече нагоре. В слънчев ден е трудно да се види, но тъй като това са дублирани сигнали, тогава

Сега да преминем към електронния пълнеж.
Използвах, но наскоро открих

Приблизително за същата цена получаваме повече кифли

Скицата без никакви модификации също ще работи на Wemos при програмиране в Arduino IDE и ако внедрите малък уеб сървър, тогава, когато сте свързани с него чрез Wi-Fi, можете да промените стойностите на променливи като времето на забавяне между миганията, степента на забавяне по време на аварийно спиране и т.н.
Тук в бъдеще, ако някой се интересува от реализиране на проект на ESP8266, мога да публикувам пример за промяна на настройките чрез уеб интерфейса, запазването им в EEPROM и след това четене.
Стартирането на уеб сървъра може да се осъществи например чрез включване на мигача и натискане на педала на спирачката, когато запалването е включено (в процедурата за настройка, проучете състоянието на съответните входове).

За прилагане на мигащ режим по време на силно спиране е закупен
Скечът следи нивото на забавяне при натискане на спирачния педал, ако то надвиши 0,5G (силно забавяне, но без скърцане на спирачката), тогава се активира мигащ режим за няколко секунди, за да привлече допълнително внимание.
Контролните сигнали към входовете на Arduino от "плюс" стопове, мигачи и заден ход се подават през галванична изолация- оптрони с токоограничаващи резистори, които в крайна сметка формират НИСКО ниво на входовете на Arduino (постоянно изтеглени на плюс чрез 10kΩ резистори).
Захранване - 5 волта през DC-DC преобразувател.
Цялото е сгънато като сандвич и опаковано в подходяща кутия, на която съм маркирал със стрелка посоката на монтаж за правилно ориентиране на гравитационния датчик

Схема и снимка



Стойността на издърпващите (до плюс) резистори е стандартна - 10 kOhm, резисторите за ограничаване на тока на оптрона - 1 kOhm. Оптроните отпаднаха от старите платки, два получиха PC123, два - PC817.


На първата снимка се виждат два допълнителни щифта, направих ги за мигачите. Тъй като в моята кола, когато лостът на кормилната колона е включен, се получава късо към маса, свързах кабелите към блока на лоста и входовете на Arduino. Ако превключвателят на кормилната колона превключва плюс или приема сигнал от крушките "+" на левия / десния мигач, след това ги свържете чрез галванична изолация.



Е, сега самата скица (Arduino IDE)

#включи #включи //няколко общи коментара // Деактивирах един от външните светодиоди, защото те блестяха върху декоративните панели на стелажите // видими в този пример за цикъл(int i=1; i<143; i++) //если отключать не нужно, заменяем на for (int i=0; i<144; i++) //задний ход и аварийка у меня не используются, т.к. в первом случае яркость никакая, во втором надо подключать входы к лампам поворотников //поворотники и стоп-сигнал одновременно не включаются, чтобы это реализовать, нужно переписывать соответствующий код скетча (делить ленту на три секции, подбирать тайминги миганий, менять диапазон переменных циклов). //Дерзайте - все в ваших руках // Пин для подключения управляющего сигнала светодной ленты const int PinLS = 2; //Пины для подключения датчиков //если более удобно будет подключать контакты в другом порядке - просто поменяйте значения переменных const int buttonPinL = 3; const int buttonPinR = 4; const int buttonPinS = 6; const int buttonPinD = 5; //начальные статусы входов (подтянуты к плюсу) int buttonStateS = HIGH; int buttonStateD = HIGH; int buttonStateL = HIGH; int buttonStateR = HIGH; // пауза pause_pov1 (в миллисекундах) нужна, чтобы синхронизировать циклы "пробегания" полоски и включения лампочки поворотника // такое может быть, если используется меньше половины светодиодов // в моем случае паузы нет (pause_pov1 = 0) int pause_pov1 = 1; // этой паузой регулируем длительность состояния, когда все светодиоды выключены //я определял опытным путем - включал поворотник, засекал по отдельности время ста мыргов лампочкой и ста беганий полоски, разницу делил на 100, на полученное время увеличивал или уменьшал значение переменной (в зависимости от того, отставали или убегали вперед лампочки) int pause_pov2 = 62; // переменная для получения значения ускорения int ix; Adafruit_NeoPixel strip = Adafruit_NeoPixel(144, PinLS, NEO_GRB + NEO_KHZ800); Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345); void setup() { pinMode(buttonPinS, INPUT); pinMode(buttonPinD, INPUT); pinMode(buttonPinL, INPUT); pinMode(buttonPinR, INPUT); strip.begin(); // гасим ленту for (int i=0; i<144; i++) strip.setPixelColor(i, strip.Color(0,0,0)); strip.show(); accel.begin(); // ограничиваем измеряемый диапазон четырьмя G (этого хватит с большим запасом) accel.setRange(ADXL345_RANGE_4_G); accel.setDataRate(ADXL345_DATARATE_100_HZ); } void loop() { // СТОПЫ: если включены - высший приоритет //Чтобы сделать меняющуюся по ширине полоску в зависимости от интенсивности торможения //(уточнение - никакой светомузыки, ширина полосы после нажатия на тормоз не меняется!) //от плавного торможения до тапки в пол. //Добавляем еще одну переменную, например, ix2, //присваиваем ей значение ix с коэффициентом умножения, //заодно инвертируем и округляем до целого //ix = event.acceleration.x; //ix2 = -round(ix*10); //ограничиваем для плавного торможения в пробках //(чтобы не менялась при каждом продвижении на 5 метров) //if (ix2<10) ix2 = 0; //и для резкого торможения. //Реальный диапазон изменения переменной ix - от 0 до -5 //для максимальной ширины полосы при G равном или большем 0.5 //if (ix2 >50) ix2 = 50; // след това променете циклите в блока STOP за (int i=1; i<143; i++) на for (int i=51-ix2; i<93+ix2; i++) //Получаем минимальную ширину полоски ~30 см (для стояния в пробке) и максимальную для резкого торможения //конец комментария buttonStateS = digitalRead(buttonPinS); if (buttonStateS == LOW) { sensors_event_t event; accel.getEvent(&event); ix = event.acceleration.x; // проверка резкого торможения - мигающий режим // значение 5 - это 0,5G, минус - торможение if (ix < -5) { for (int is=0; is<15; is++) { for (int i=1; i<143; i++) strip.setPixelColor(i, strip.Color(240,0,0)); strip.show(); delay(10 + is*10); for (int i=1; i<143; i++) strip.setPixelColor(i, strip.Color(0,0,0)); strip.show(); delay(10 + is*3); buttonStateS = digitalRead(buttonPinS); if (buttonStateS == HIGH) return; } } // помигали - и хватит, включаем постоянный режим, если педаль тормоза еще нажата // или если не было резкого торможения и предыдущее условие не сработало if (buttonStateS == LOW) { for (int i=1; i<143; i++) strip.setPixelColor(i, strip.Color(200,0,0)); strip.show(); while(buttonStateS == LOW){ buttonStateS = digitalRead(buttonPinS); delay(50); } // плавно гасим for (int is=0; is<20; is++) { for (int i=1; i<143; i++) strip.setPixelColor(i, strip.Color(190 - is*10,0,0)); strip.show(); delay(10); } // СТОПЫ конец } } else // если СТОПЫ выключены { // ЗАДНИЙ ХОД: если включен - средний приоритет buttonStateD = digitalRead(buttonPinD); if (buttonStateD == LOW) { for (int i=1; i<37; i++) strip.setPixelColor(i, strip.Color(63,63,63)); for (int i=107; i<143; i++) strip.setPixelColor(i, strip.Color(63,63,63)); strip.show(); while(buttonStateD == LOW){ buttonStateD = digitalRead(buttonPinD); delay(50); } //плавно гасим for (int is=0; is<16; is++) { for (int i=1; i<37; i++) strip.setPixelColor(i, strip.Color(60 - is*4,60 - is*4,60 - is*4)); for (int i=107; i<143; i++) strip.setPixelColor(i, strip.Color(60 - is*4,60 - is*4,60 - is*4)); strip.show(); delay(10); } } buttonStateL = digitalRead(buttonPinL); buttonStateR = digitalRead(buttonPinR); // если включена аварийка if (buttonStateL == LOW && buttonStateR == LOW) { for (int il=0; il<71; il++) { strip.setPixelColor(71-il, strip.Color(63,31,0)); strip.setPixelColor(il+72, strip.Color(63,31,0)); strip.show(); delay(pause_pov1); } for (int il=0; il<71; il++) { strip.setPixelColor(71-il, strip.Color(0,0,0)); strip.setPixelColor(il+72, strip.Color(0,0,0)); strip.show(); delay(pause_pov1); } delay(pause_pov2); } // если включен ЛЕВЫЙ ПОВОРОТНИК if (buttonStateL == LOW && buttonStateR == HIGH) { for (int il=0; il<71; il++) { strip.setPixelColor(il+72, strip.Color(220,120,0)); strip.show(); delay(pause_pov1); } for (int il=0; il<71; il++) { strip.setPixelColor(il+72, strip.Color(0,0,0)); strip.show(); delay(pause_pov1); } delay(pause_pov2); } // если включен ПРАВЫЙ ПОВОРОТНИК if (buttonStateL == HIGH && buttonStateR == LOW) { for (int il=0; il<71; il++) { strip.setPixelColor(71-il, strip.Color(220,120,0)); strip.show(); delay(pause_pov1); } for (int il=0; il<71; il++) { strip.setPixelColor(71-il, strip.Color(0,0,0)); strip.show(); delay(pause_pov1); } delay(pause_pov2); } //правый поворотник конец } //конец условия else Стоп // задержка для следующего опроса датчиков delay(10); }

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

И накрая, демонстрация на работа (използвах скица с демо режим за видеото).

Актуализация Направих скица с демо режим специално, за да побера всичко в едно кратко видео.
Стоп светлината мига само при силно спиране (това беше написано по-горе), когато е гладко и стои в задръствания, просто гори, без да дразни шофьорите отзад.
Яркостта на тъмно не е прекомерна, т.к. поради наклона на стъклото, светлините са насочени повече нагоре, отколкото назад.
Обикновените светлини работят както обикновено, тази лента ги дублира.