Spisu treści:

Adresowalny pasek LED Police Strobo: 4 kroki
Adresowalny pasek LED Police Strobo: 4 kroki

Wideo: Adresowalny pasek LED Police Strobo: 4 kroki

Wideo: Adresowalny pasek LED Police Strobo: 4 kroki
Wideo: Instalace skleněné police osvětlen LED pásek RGBW v hliníkovém profilu 2024, Lipiec
Anonim
Image
Image

Ten policyjny pasek świetlny strobo jest wykonany z pojedynczego listwy adresowalnej LED WS2812B (97 cm, 29 diod LED) i Arduino Nano.

To rozwiązanie pozwala na wykonanie kilku różnych wzorów świetlnych o różnej kolorystyce, w przeciwnym razie nie byłoby to możliwe w przypadku standardowej listwy LED czerwono-biało-niebieskiej (jak w policyjnych światłach stroboskopowych) lub listwy LED RGB.

Zalecam nie używać tego w pojeździe, chyba że sprawdziłeś lokalne przepisy i masz prawny/ważny powód, aby to zrobić.

Krok 1: Jak działają diody LED WS2812B?

Okablowanie obwodu
Okablowanie obwodu

Taśma LED WS2812B składa się z diod LED typu 5050 RGB, w których zintegrowany jest układ scalony sterownika LED WS2812B.

W zależności od intensywności trzech pojedynczych czerwonych, zielonych i niebieskich diod LED możliwe jest symulowanie dowolnego koloru.

Wspaniałą zaletą tych diod jest to, że za pomocą jednego pinu z naszej płytki Arduino można sterować nawet całą taśmą LED.

Każda dioda LED ma trzy złącza na każdym końcu, dwa do zasilania i jedno do danych. Strzałka wskazuje kierunek przepływu danych. Pole wyjścia danych poprzedniej diody LED jest połączone z polem wprowadzania danych następnej diody LED. Możemy przyciąć taśmę na dowolny wymiar, a także rozsunąć diody za pomocą przewodów.

Działają na 5 V DC, a każda czerwona, zielona i niebieska dioda LED pobiera około 20 mA, czyli łącznie 60 mA dla każdej diody LED przy pełnej jasności.

Jeśli Arduino jest zasilane przez USB, pin 5V może obsłużyć tylko około 400 mA, a przy zasilaniu za pomocą złącza zasilania baryłkowego, pin 5V może obsłużyć około 900 mA. Jeśli więc używasz większej liczby diod LED, a ilość pobieranego przez nie prądu przekracza powyższe limity, musisz użyć oddzielnego zasilacza 5 V.

W takim przypadku należy również połączyć dwie linie uziemiające.

Dodatkowo zaleca się użycie rezystora około 330 Ohm pomiędzy Arduino a pinem danych paska LED w celu zmniejszenia szumów na tej linii, a także kondensatora około 100uF na 5V i uziemieniu, aby wygładzić zasilanie.

Krok 2: Okablowanie obwodu

Schemat okablowania połączenia Arduino nano z listwą adresowalną LED WS2812B jest bardzo prosty.

Model musi mieć przylutowane do niego przewody lub listwę kołkową, do testów użyłem listwy kołkowej, ale w przypadku rzeczywistego projektu należy rozważyć lutowanie przewodów.

Listwa adresowalna LED WS2812B ma 3 pola lutownicze z każdej strony.

+5V (czerwony przewód na schemacie) idzie do +5V Arduino;

GND (czarny przewód na schemacie) idzie do GND Arduino;

DIN (zielony przewód na schemacie) idzie do Arduino PIN 5 (dla danych) przez rezystor 330 Ohm.

Krok 3: Konfiguracja kodu

Użyłem Arduino IDE z biblioteką FAST LED!

Najpierw musimy dołączyć bibliotekę FastLED, zdefiniować pin, do którego podłączone są dane taśmy LED, zdefiniować liczbę diod LED, a także zdefiniować tablicę typu CRGB.

Ten typ zawiera diody LED z trzema jednobajtowymi elementami danych dla każdego z trzech kanałów koloru czerwonego, zielonego i niebieskiego.

W sekcji konfiguracji wystarczy zainicjować FastLED z parametrami zdefiniowanymi powyżej. Teraz jest to główna pętla, w której możemy sterować naszymi diodami w dowolny sposób. Za pomocą funkcji CRGB możemy ustawić dowolną diodę LED na dowolny kolor za pomocą trzech parametrów koloru czerwonego, zielonego i niebieskiego. Aby zmiana nastąpiła na diodach, musimy wywołać funkcję FastLED.show().

Biblioteka FastLED zawiera wiele innych funkcji, które można wykorzystać do tworzenia naprawdę ciekawych animacji i pokazów świetlnych, więc tylko od Twojej wyobraźni zależy, czy Twój kolejny projekt LED zabłyśnie.

Mój kod zawiera kilka różnych wzorów LED, które nie są możliwe w przypadku standardowej listwy LED RGB.

Wzorce mogą być modyfikowane lub przywoływane w sekcji void loop() jako pojedynczy podprogram.

Krok 4: Ostatnia uwaga

Mój kod przechodzi przez wariacje każdego wzorca, aby dać Ci punkt wyjścia do modyfikacji kodu, aby spełnić Twoje potrzeby.

Kod w moim GitHub

Zalecana: