#include // подключаем библиотеку int count = 40; // количество пикселей Adafruit_NeoPixel strip1 = Adafruit_NeoPixel(count, 3, NEO_GRB + NEO_KHZ800); //Инициализируем поворотник на 3 цифровом выходе Adafruit_NeoPixel strip2 = Adafruit_NeoPixel(count, 2, NEO_GRB + NEO_KHZ800); //Инициализируем ходовой огон на 2 цифровом выходе int set = 1; void setup() { pinMode(12, INPUT); //Поворотник +12 Вольт через делитель напряжения pinMode(4, INPUT); //обратная связь с реле +12 Вольт strip1.begin(); strip2.begin(); strip1.show(); strip2.show(); #define speedt 5 //Скорость плавного включения (от 1 до 100 / на скорости 100 яркость увеличится почти мгновенно) #define speed0 2 //Скорость пробегания поворотника (чем меньше число тем быстрее) #define speed1 5 //Cкорость пробегания при включении (чем меньше число тем быстрее включится) #define speed2 1000 //Установлена секунда задержки после увеличения яркости (если поставить 1 то задержки не будет и поворотник выключится быстрее) #define red1 255, 0, 0 // Цвет ходового огня (красный) #define color1 255, 255, 255 // Цвет ходового огня при включении 1 (белый) #define color2 255, 255, 255 // Цвет поворотника при включении 1 (белый) #define color3 255, 0 , 0 // Цвет ходового огня при включении 2 (красный) #define color4 255, 0 , 0 // Цвет поворотника при включении 2 (красный) #define yellow 255, 64 , 0 // Цвет поворотника (желтый) } void loop() { if (digitalRead(4) == HIGH ) { set = 1; } if (digitalRead(4) == LOW && set == 1 ) { start(); set = 0; }
if (digitalRead(12) == HIGH ) { for (int i = 0; i < count + 1; i++) { for (int j = 0; j < i; j++) { strip1.setPixelColor(j, strip1.Color(yellow)); } delay(speed0); strip1.show(); } } if (digitalRead(12) == LOW) { for (int i = 0; i < count; i++) { strip1.setPixelColor(i, strip1.Color(0, 0, 0)); } strip1.show(); } } void start () { for (int i = 0; i < count; i++) { for (int j = 0; j < i; j++) { strip1.setPixelColor(j, strip1.Color(color1)); strip2.setPixelColor(j, strip2.Color(color2)); } delay(speed1); strip1.show(); strip2.show(); } for (int i = 0; i < count; i++) { for (int j = 0; j < i; j++) { strip1.setPixelColor(j, strip1.Color(0, 0, 0)); strip2.setPixelColor(j, strip2.Color(0, 0, 0)); } delay(speed1); strip1.show(); strip2.show(); }
for (int i = 0; i < count + 2; i++) { for (int j = 0; j < i; j++) { strip1.setPixelColor(count - j, strip1.Color(color3)); strip2.setPixelColor(count - j, strip2.Color(color4)); } delay(speed1); strip1.show(); strip2.show(); }
for (int i = 0; i < count + 2; i++) { for (int j = 0; j < i; j++) { strip1.setPixelColor(count - j, strip1.Color(0, 0, 0)); strip2.setPixelColor(count - j, strip2.Color(0, 0, 0)); } delay(speed1); strip1.show(); strip2.show(); } delay(400); dxo(); } void dxo () { for (int j = 0; j < 255; j += speedt) { strip2.setBrightness(j); strip1.setBrightness(j); for (int i = 0; i < count + 1; i++) { strip2.setPixelColor(i, strip2.Color(red1)); strip1.setPixelColor(i, strip1.Color(color4)); } strip2.show(); strip1.show(); delay(20); } delay(speed2); { for (int i = 0; i < count + 1; i++) { strip2.setPixelColor(i, strip2.Color(red1)); strip1.setPixelColor(i, strip1.Color(0, 0, 0)); } strip2.show(); strip1.show(); } }
Здравствуйте. У меня тут вопрос возник. Вы когда подключаете на задние фонари. То питания от куда берете ? От габаритов ? Просто на сколько я знаю тормоза у автомобилях горят всегда. То есть не включая габаритов. Даже если автомобиль не в в состоянии зажиганий
Здравствуйте. Всё зависит от требований заказчика. Можно сделать чтобы поворотники и стоп сигнал работали в штатном режиме, то есть вообще без дополнительного питания.
@@vsvd_ez Давно это было, уже не помню, но вроде около 7-8 Вольт. Такое подключение придумал не я, но оно стабильно работает. Если очень хочется то можно опторазвязку поставить.
@@povorotnetuda2019 ооо, благодарю. Этот вариант мне больше подходит, чем потеть с резисторами. С физикой не особо дружу. Получается через эти платы можно сразу правый, левый, стопари и еще какие нибудь ништяки на одну ардуинку запитать?)
так стоп, он запаралелил кольцо и прямую ленту, это тогда вообще просто) вот бы попробовать код переписать, чтобы они не были заправленные, но это намного сложнее код
@@zaxzax1023Ну не знаю... У нас уже в этом году было -34 и ни один клиент не сообщил о сбоях. Собственно говоря за несколько лет моей работы в данной сфере нет ни одного клиента пожаловавшегося на какие либо сбои.
@@zaxzax1023 Не могу утверждать так как сам не проводил тесты, но возможно вам попалась бракованная или просто подделка. Я встречал разные Ардуино Нано с разной топологией и разными компонентами на плате, возможно в вашем случае кокой то из компонентов оказался не готов к морозам. У меня и у самого есть большое желание проверить работу устройства в термо-камере, чтобы клиент точно знал до кокой температуры будет работать именно его комплект.
#include // подключаем библиотеку
int count = 40; // количество пикселей
Adafruit_NeoPixel strip1 = Adafruit_NeoPixel(count, 3, NEO_GRB + NEO_KHZ800); //Инициализируем поворотник на 3 цифровом выходе
Adafruit_NeoPixel strip2 = Adafruit_NeoPixel(count, 2, NEO_GRB + NEO_KHZ800); //Инициализируем ходовой огон на 2 цифровом выходе
int set = 1;
void setup()
{
pinMode(12, INPUT); //Поворотник +12 Вольт через делитель напряжения
pinMode(4, INPUT); //обратная связь с реле +12 Вольт
strip1.begin();
strip2.begin();
strip1.show();
strip2.show();
#define speedt 5 //Скорость плавного включения (от 1 до 100 / на скорости 100 яркость увеличится почти мгновенно)
#define speed0 2 //Скорость пробегания поворотника (чем меньше число тем быстрее)
#define speed1 5 //Cкорость пробегания при включении (чем меньше число тем быстрее включится)
#define speed2 1000 //Установлена секунда задержки после увеличения яркости (если поставить 1 то задержки не будет и поворотник выключится быстрее)
#define red1 255, 0, 0 // Цвет ходового огня (красный)
#define color1 255, 255, 255 // Цвет ходового огня при включении 1 (белый)
#define color2 255, 255, 255 // Цвет поворотника при включении 1 (белый)
#define color3 255, 0 , 0 // Цвет ходового огня при включении 2 (красный)
#define color4 255, 0 , 0 // Цвет поворотника при включении 2 (красный)
#define yellow 255, 64 , 0 // Цвет поворотника (желтый)
}
void loop()
{
if (digitalRead(4) == HIGH )
{
set = 1;
}
if (digitalRead(4) == LOW && set == 1 )
{
start();
set = 0;
}
if (digitalRead(12) == HIGH )
{
for (int i = 0; i < count + 1; i++)
{
for (int j = 0; j < i; j++)
{
strip1.setPixelColor(j, strip1.Color(yellow));
}
delay(speed0);
strip1.show();
}
}
if (digitalRead(12) == LOW)
{
for (int i = 0; i < count; i++)
{
strip1.setPixelColor(i, strip1.Color(0, 0, 0));
}
strip1.show();
}
}
void start ()
{
for (int i = 0; i < count; i++)
{
for (int j = 0; j < i; j++)
{
strip1.setPixelColor(j, strip1.Color(color1));
strip2.setPixelColor(j, strip2.Color(color2));
}
delay(speed1);
strip1.show();
strip2.show();
}
for (int i = 0; i < count; i++)
{
for (int j = 0; j < i; j++)
{
strip1.setPixelColor(j, strip1.Color(0, 0, 0));
strip2.setPixelColor(j, strip2.Color(0, 0, 0));
}
delay(speed1);
strip1.show();
strip2.show();
}
for (int i = 0; i < count + 2; i++)
{
for (int j = 0; j < i; j++)
{
strip1.setPixelColor(count - j, strip1.Color(color3));
strip2.setPixelColor(count - j, strip2.Color(color4));
}
delay(speed1);
strip1.show();
strip2.show();
}
for (int i = 0; i < count + 2; i++)
{
for (int j = 0; j < i; j++)
{
strip1.setPixelColor(count - j, strip1.Color(0, 0, 0));
strip2.setPixelColor(count - j, strip2.Color(0, 0, 0));
}
delay(speed1);
strip1.show();
strip2.show();
}
delay(400);
dxo();
}
void dxo ()
{
for (int j = 0; j < 255; j += speedt)
{
strip2.setBrightness(j);
strip1.setBrightness(j);
for (int i = 0; i < count + 1; i++)
{
strip2.setPixelColor(i, strip2.Color(red1));
strip1.setPixelColor(i, strip1.Color(color4));
}
strip2.show();
strip1.show();
delay(20);
}
delay(speed2);
{
for (int i = 0; i < count + 1; i++)
{
strip2.setPixelColor(i, strip2.Color(red1));
strip1.setPixelColor(i, strip1.Color(0, 0, 0));
}
strip2.show();
strip1.show();
}
}
Только недавно закончил бегущие поворотники, теперь придется и стопы делать))) Спасибо за Вашу работу!
Красава, всё доступно и понятно !!
Саша ты лучший! Снимай ещё)
Крутотень!!! Надо будет взять на заметку😉.
Мы вроде о взаимной рекламе договаривались, опять тишина...
Здравствуйте. А что это за реле ? Подскажите пожалуйста)
Можно же прикрепить скетч файлом
Здравствуйте. У меня тут вопрос возник. Вы когда подключаете на задние фонари. То питания от куда берете ? От габаритов ? Просто на сколько я знаю тормоза у автомобилях горят всегда. То есть не включая габаритов. Даже если автомобиль не в в состоянии зажиганий
Здравствуйте. Всё зависит от требований заказчика. Можно сделать чтобы поворотники и стоп сигнал работали в штатном режиме, то есть вообще без дополнительного питания.
А не вредно ставить резистор на 47к напрямую? Не всегда же в авто ровно 12 вольт. А для ардуинки 5.5 уже смертельно
Данная схема благополучно работает уже более чем на сотне автомобилей, думаю не вредно.
@@povorotnetuda2019 а сколько на выходе, не замеряли?
@@vsvd_ez Давно это было, уже не помню, но вроде около 7-8 Вольт. Такое подключение придумал не я, но оно стабильно работает. Если очень хочется то можно опторазвязку поставить.
@@vsvd_ez Вот, например такой модуль: ali.ski/4265a
@@povorotnetuda2019 ооо, благодарю. Этот вариант мне больше подходит, чем потеть с резисторами. С физикой не особо дружу. Получается через эти платы можно сразу правый, левый, стопари и еще какие нибудь ништяки на одну ардуинку запитать?)
А проект скеч? Спасибо
Мне не понятен ваш вопрос.
так стоп, он запаралелил кольцо и прямую ленту, это тогда вообще просто) вот бы попробовать код переписать, чтобы они не были заправленные, но это намного сложнее код
Если вы готовы выступить заказчиком то без проблем реализуем. По любым вопросам пишите на почту : povorotnetuda2019@gmail.com
Жаль ардуинка плохо работает при -20...
Даташит на микроконтроллер Atmega 328 P гласит что рабочая температура от -40 до +85 градусов.
@@povorotnetuda2019 ну вот, а практика показала чуть другие цифры... -18 работает, -20 все... Слетает прошивка.
@@zaxzax1023Ну не знаю... У нас уже в этом году было -34 и ни один клиент не сообщил о сбоях. Собственно говоря за несколько лет моей работы в данной сфере нет ни одного клиента пожаловавшегося на какие либо сбои.
@@povorotnetuda2019 возможно мне такая попалась?
@@zaxzax1023 Не могу утверждать так как сам не проводил тесты, но возможно вам попалась бракованная или просто подделка. Я встречал разные Ардуино Нано с разной топологией и разными компонентами на плате, возможно в вашем случае кокой то из компонентов оказался не готов к морозам. У меня и у самого есть большое желание проверить работу устройства в термо-камере, чтобы клиент точно знал до кокой температуры будет работать именно его комплект.