Бегущий поворотник как сделать

Добавлено: 11.03.2018, 12:15 / Просмотров: 82245

Закрыть ... [X]

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

Контроллер ардуино необходимо подключить к сети автомобиля через преобразователь 12В -> 5В так, чтобы напряжение на схему поступало от включения «зажигания».

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

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

После этого вставить скетч в программу и заменить в коде количество светодиодов (у нас используется 7 диода):

#include <Adafruit_NeoPixel.h> // подключаем библиотеку
Adafruit_NeoPixel strip = Adafruit_NeoPixel(7, 7, NEO_GRB + NEO_KHZ800); //Инициализируем первый поворотник 7 диодов на 7 цифровом выходе
Adafruit_NeoPixel strip2 = Adafruit_NeoPixel(7, 8, NEO_GRB + NEO_KHZ800);//Инициализируем второй поворотник 7 диодов на 8 цифровом выходе
void setup()
{
pinMode(3, INPUT);
pinMode(4, INPUT);
pinMode(5, INPUT);
pinMode(6, INPUT);
strip.begin();
strip.show();
strip2.begin();
strip2.show();
}
void loop()
{
{
if ((digitalRead(5) == HIGH) and (digitalRead(6) == HIGH))
{
//Режим аварийной сигнализации, если на 5 и 6 пин приходит плюс
for(int k = 0; k < 3; k++)
{
// цикл до трех — сигнал «перестроения», при кратковременном включении мигает 3 раза,
for(int i = 0; i < 8; i++)
{
for(int j = 0; j < i; j++)
{
if ((digitalRead(5) == HIGH) and (digitalRead(6) == HIGH))
{
k = 0; // если во время мигания поворотника получаем еще плюcовой сигнал, то обнуяем счетчик, чтобы поворотник мигал еще как минимум 3 раза
}
strip.setPixelColor(j, strip.Color(255, 69, 0)); // R=255, G=0, B=0 — цвет светодиода
strip2.setPixelColor(j, strip2.Color(255, 69, 0)); // R=255, G=0, B=0 — цвет светодиода
}
delay(60);
strip.show();
strip2.show();
}
for(int i = 0; i < 10; i++)
{
for(int j = 0; j < i; j++)
{
// в этом цикле плавно тушим предыдущий светодиод, делаем его наполовину тусклее, чтобы движение было плавнее
strip.setPixelColor(j-2, strip.Color(0, 0, 0)); // R=255, G=0, B=0 — цвет светодиода
strip.setPixelColor(j-1, strip.Color(63, 17, 0)); // R=255, G=0, B=0 — цвет светодиода
strip.setPixelColor(j, strip.Color(127, 34, 0)); // R=255, G=0, B=0 — цвет светодиода
strip2.setPixelColor(j-2, strip2.Color(0, 0, 0)); // R=255, G=0, B=0 — цвет светодиода
strip2.setPixelColor(j-1, strip2.Color(63, 17, 0)); // R=255, G=0, B=0 — цвет светодиода
strip2.setPixelColor(j, strip2.Color(127, 34, 0)); // R=255, G=0, B=0 — цвет светодиода
}
delay(60);
strip.show();
strip2.show();
}
}
}

if (digitalRead(5) == LOW and digitalRead(6) == HIGH)
{
// включается один поворотник
for(int k = 0; k < 3; k++)
{
// цикл до трех — сигнал «перестроения», при кратковременном включении мигает 3 раза,
for(int i = 0; i < 8; i++)
{
for(int j = 0; j < i; j++)
{
if ((digitalRead(5) == LOW) and (digitalRead(6) == HIGH))
{
k = 0;
}
strip.setPixelColor(j, strip.Color(255, 69, 0)); // R=255, G=0, B=0 — цвет светодиода
}
delay(60);
strip.show();
}
for(int i = 0; i < 10; i++)
{
for(int j = 0; j < i; j++)
{
// в этом цикле плавно тушим предыдущий светодиод, делаем его наполовину тусклее, чтобы движение было плавнее
strip.setPixelColor(j-2, strip.Color(0, 0, 0)); // R=255, G=0, B=0 — цвет светодиода
strip.setPixelColor(j-1, strip.Color(63, 17, 0)); // R=255, G=0, B=0 — цвет светодиода
strip.setPixelColor(j, strip.Color(127, 34, 0)); // R=255, G=0, B=0 — цвет светодиода
}
delay(60);
strip.show();
}

}
}
if (digitalRead(5) == HIGH and digitalRead(6) == LOW)
{ // включаем второй поворотник
for(int k = 0; k < 3; k++)
{
// цикл до трех — сигнал «перестроения», при кратковременном включении мигает 3 раза,
for(int i = 0; i < 8; i++)
{
for(int j = 0; j < i; j++)
{
if ((digitalRead(5) == HIGH) and (digitalRead(6) == LOW))
{
k = 0;
}
strip2.setPixelColor(j, strip2.Color(255, 69, 0)); // R=255, G=0, B=0 — цвет светодиода
}
delay(60);
strip2.show();
}
for(int i = 0; i < 10; i++)
{
for(int j = 0; j < i; j++)
{
// в этом цикле плавно тушим предыдущий светодиод, делаем его наполовину тусклее, чтобы движение было плавнее
strip2.setPixelColor(j-2, strip2.Color(0, 0, 0)); // R=255, G=0, B=0 — цвет светодиода
strip2.setPixelColor(j-1, strip2.Color(63, 17, 0)); // R=255, G=0, B=0 — цвет светодиода
strip2.setPixelColor(j, strip2.Color(127, 34, 0)); // R=255, G=0, B=0 — цвет светодиода
}
delay(60);
strip2.show();
}
}
}
if (digitalRead(3) == HIGH)
{
// режим спецсигналов, если на 3 пин подаем плюс
for(int j = 0; j < 16; j++)
{
for(int i = 0; i < 7; i++)
{
strip.setPixelColor(i, strip.Color(255, 0, 0)); // R=255, G=0, B=0 — цвет светодиода
strip2.setPixelColor(i, strip2.Color(0, 0, 255)); // R=255, G=0, B=0 — цвет светодиода
}
strip.show();
strip2.show();
delay(20);
for(int i = 0; i < 7; i++)
{
strip.setPixelColor(i, strip.Color(0, 0, 0)); // R=255, G=0, B=0 — цвет светодиода
strip2.setPixelColor(i, strip2.Color(0, 0, 0)); // R=255, G=0, B=0 — цвет светодиода
}
strip.show();
strip2.show();
delay(20);
}
for(int j = 0; j < 16; j++)
{
for(int i = 0; i < 7; i++)
{
strip.setPixelColor(i, strip.Color(0, 0, 255)); // R=255, G=0, B=0 — цвет светодиода
strip2.setPixelColor(i, strip2.Color(255, 0, 0)); // R=255, G=0, B=0 — цвет светодиода
}
strip.show();
strip2.show();
delay(20);
for(int i = 0; i < 7; i++)
{
strip.setPixelColor(i, strip.Color(0, 0, 0)); // R=255, G=0, B=0 — цвет светодиода
strip2.setPixelColor(i, strip2.Color(0, 0, 0)); // R=255, G=0, B=0 — цвет светодиода
}
strip.show();
strip2.show();
delay(20);
}
}
if (digitalRead(4) == HIGH)
{
// Режим стробоскова, если на 4 пин подаем питание
for(int j = 0; j < 24; j++)
{
for(int i = 0; i < 7; i++)
{
strip.setPixelColor(i, strip.Color(255, 255, 255)); // R=255, G=0, B=0 — цвет светодиода
strip2.setPixelColor(i, strip2.Color(0, 0, 0)); // R=255, G=0, B=0 — цвет светодиода
}
strip.show();
strip2.show();
delay(15);
for(int i = 0; i < 7; i++)
{
strip.setPixelColor(i, strip.Color(0, 0, 0)); // R=255, G=0, B=0 — цвет светодиода
strip2.setPixelColor(i, strip2.Color(0, 0, 0)); // R=255, G=0, B=0 — цвет светодиода
}
strip.show();
strip2.show();
delay(15);
}
for(int j = 0; j < 24; j++)
{
for(int i = 0; i < 7; i++)
{
strip.setPixelColor(i, strip.Color(0, 0, 0)); // R=255, G=0, B=0 — цвет светодиода
strip2.setPixelColor(i, strip2.Color(255, 255, 255)); // R=255, G=0, B=0 — цвет светодиода
}
strip.show();
strip2.show();
delay(15);
for(int i = 0; i < 7; i++)
{
strip.setPixelColor(i, strip.Color(0, 0, 0)); // R=255, G=0, B=0 — цвет светодиода
strip2.setPixelColor(i, strip2.Color(0, 0, 0)); // R=255, G=0, B=0 — цвет светодиода
}
strip.show();
strip2.show();
delay(15);
}
}
if( digitalRead(3) == LOW and digitalRead(5) == LOW and digitalRead(6) == LOW and digitalRead(9) == LOW)
{
for(int i = 0; i < 8; i++)
{
// Зажигаем ходовые огни, если нетниодного сигнала
strip.setPixelColor(i, strip.Color(255, 255, 255));
strip2.setPixelColor(i, strip2.Color(255, 255, 255));
}
strip.show();
strip2.show();
}
}
}


Источник: http://autofeel.ru/soveti/2017/06/03/kak-sdelat-begushhij-umnyj-povorotnik-svoimi-rukami-dlya-avtomobilya.html


Поделись с друзьями



Рекомендуем посмотреть ещё:



Поворотник бегущий огонь «Электрика» на DRIVE 2 Картинг в домашних условиях фото


Бегущий поворотник как сделать Бегущий поворотник как сделать Бегущий поворотник как сделать Бегущий поворотник как сделать Бегущий поворотник как сделать Бегущий поворотник как сделать Бегущий поворотник как сделать Бегущий поворотник как сделать Бегущий поворотник как сделать

ШОКИРУЮЩИЕ НОВОСТИ


Back to Top