Innholdsfortegnelse:

Adresserbar Strip LED Police Strobo: 4 trinn
Adresserbar Strip LED Police Strobo: 4 trinn

Video: Adresserbar Strip LED Police Strobo: 4 trinn

Video: Adresserbar Strip LED Police Strobo: 4 trinn
Video: How To Use Addressable RGB WS2812B LED Strips With a Raspberry Pi Single Board Computer 2024, November
Anonim
Image
Image

Denne Police Strobo Light Bar er laget med en enkelt WS2812B adresserbar strip LED -bar (97 cm, 29 LEDS) og en Arduino Nano.

Denne løsningen gjør det mulig å lage flere forskjellige lysmønstre med forskjellige fargevalg ellers ikke mulig med standard rød-hvit-blå LED-stolpe (som brukt til stroboskoplys) eller RGB LED-stolpe.

Jeg vil anbefale å ikke bruke dette i bilen din med mindre du har sjekket lokale lover og har en juridisk/gyldig grunn til å gjøre det.

Trinn 1: Hvordan WS2812B Strip -lysdioder fungerer

Kretsledninger
Kretsledninger

WS2812B LED -stripe består av type 5050 RGB -lysdioder der WS2812B LED -driver -IC er integrert.

Avhengig av intensiteten til de tre individuelle røde, grønne og blå lysdiodene er det mulig å simulere hvilken som helst farge vi ønsker.

Det flotte med disse lysdiodene er at det er mulig å kontrollere til og med hele LED -stripen med bare en enkelt pinne fra vårt Arduino -bord.

Hver LED har tre kontakter i hver ende, to for strømforsyningen og en for dataene. Pilen angir datastrømningsretningen. Datautmatingsputen til den forrige lysdioden er koblet til datainnmatingsputen til den neste lysdioden. Vi kan klippe stripen til hvilken som helst størrelse vi vil, samt distanse LED -ene ved hjelp av noen ledninger.

De fungerer på 5V DC og hver rød, grønn og blå LED trekker rundt 20mA, eller det er totalt 60mA for hver LED ved full lysstyrke.

Hvis Arduino får strøm via USB, kan 5V -pinnen bare håndtere rundt 400 mA, og når den er drevet med fatkontakten, kan 5V -pinnen håndtere rundt 900 mA. Så hvis du bruker flere lysdioder og strømmen de vil trekke overskrider grensene nevnt ovenfor, må du bruke en separat 5V strømforsyning.

I et slikt tilfelle må du også koble de to jordlinjene til hverandre.

I tillegg anbefales det å bruke en motstand på rundt 330 Ohm mellom Arduino og LED -stripedatapinnen for å redusere støyen på den linjen, samt en kondensator på rundt 100uF over 5V og bakken for å jevne ut strømforsyningen.

Trinn 2: Kretsledninger

Ledningsoppsett for å koble Arduino nano til WS2812B adresserbar strip LED -bar er veldig enkelt.

Modellen må ha ledninger eller pin -header loddet til den. Jeg brukte en pin -header for testing, men for et faktisk prosjekt bør du vurdere lodding.

WS2812B adresserbar stripe -LED har 3 loddeputer på hver side.

+5V (rød ledning i skjemaet) går til +5V av Arduino;

GND (svart ledning i ordningen) går til GND for Arduino;

DIN (grønn ledning i opplegget) går til en Arduino PIN 5 (for dataene) gjennom en 330 Ohm motstand.

Trinn 3: Kodeoppsett

Jeg brukte Arduino IDE med FAST LED Library

Først må vi inkludere FastLED -biblioteket, definere pinnen som LED -stripedataene er koblet til, definere antall lysdioder, samt definere en rekke CRGB -typer.

Denne typen inneholder lysdioder, med tre en-byte datamedlemmer for hver av de tre røde, grønne og blå fargekanalene.

I oppsettseksjonen trenger vi bare å initialisere FastLED med parametrene som er definert ovenfor. Nå er det hovedsløyfen vi kan styre våre lysdioder uansett hva vi vil. Ved å bruke CRGB -funksjonen kan vi sette hvilken som helst LED til hvilken som helst farge ved å bruke tre parametere rød, grønn og blå farge. For å få endringen til å skje på lysdiodene må vi kalle funksjonen FastLED.show ().

FastLED -biblioteket har mange andre funksjoner som kan brukes til å lage virkelig interessante animasjoner og lysshow, så det er bare opp til fantasien din å få ditt neste LED -prosjekt til å skinne.

Koden min inneholder flere forskjellige LED -mønstre som ellers ikke er mulig med standard RGB LED -bar.

Mønstrene kan endres eller tilbakekalles i hulrommet () som en enkelt underrutine.

Trinn 4: Sluttnotat

Koden min går gjennom en variant av hvert mønster for å gi deg et utgangspunkt for å endre koden for å dekke dine behov.

Kode i min GitHub

Anbefalt: