Plug'n' spela Neopixels



Inte du älskar dessa Adafruit Neopixel ringar? Jag har 12, 24 och de massiva 60 pixel ringarna, och fram till nu alla mina skisser har varit konfigureras för att köra med någon av dem, med storleken statiskt inställd på kompileringstid med en linje som

#define PIXLAR 24

Så om jag ändrar ringen för en annan storlek jag behöva kompilera om skissen och åter ladda upp den. Men vore det inte trevligt om skissen kan automatiskt avgöra ring storlek för sig själv, vilket gör det plug'n' spela! Bilderna visar var och en av 60 24 och 12 pixel ringar i sin tur drivs av samma omodifierade skissen.

Det finns flera möjliga sätt att göra det, alla förlitar sig på det faktum att när alla pixlar i en ring har fått deras RGB-data, eventuella överskott data faller ur DOUT anslutningen i slutet av kedjan för att göra det möjligt att daisy-kedjan ytterligare Neopixels om du vill. I princip sedan, kan du bara ansluta DOUT till en ingångsstift på Arduino och räkna hur många pixlar du har fyllda innan data börjar sippra ut ur andra änden.

Som alltid, det är lättare sagt än gjort, särskilt om du ställde dig begränsningen som du verkligen inte vill ändra standard Adafruit Neopixel bibliotek.

Min första tanke var att ansluta DOUT till ett avbrott stift på Arduino. Bibliotekets funktioner grejer data i Neopixels med avbryter inaktiveras, så avbrottet (om utlöste) skulle endast betjänas när fyllning hade klar. Men i princip kan du initiera successivt större ringar tills avbrottet inte skedde alls. Tyvärr har det normalt att instansieras i globala sammanhang att göra den åtkomlig från både setup() och loop(), medan det skulle behöva vara instansierad i setup() för att genomföra den nödvändiga logiken.

En bättre metod är att använda Counter/Timer 1 i counter läge för att räkna pulser från DOUT. Detta kräver att du ansluter DOUT till Pin 5, Counter/Timer 1 extern klocka pin. Varje pixel kräver 24 bitar data (företrädd av en kort puls för "0" eller en lång en för "1"), så allt du behöver göra är att skapa en instans av den största storleken på ringen, dela antalet pulser räknas av 24. Detta visar hur mycket mindre är ringen i bruket (om alls), jämfört med den största ringen. Därför kan du beräkna den faktiska ring storleken och spara den i en global variabel för användning där krävs. Det spelar ingen roll att det Adafruit biblioteket sedan kommer att skicka data till icke-existerande pixlar.

Se Steg
Relaterade Ämnen

Enkel Plug och spela LED belysning

LED-belysning: dyra valet för belysning hemma eller display, som endast gröna publiken hoppas att har råd med, eller är det?När du skapar en Halloween display i mitt kvarter, är belysning en av de viktigaste aspekterna. Om du inte kan se det, vem bry...

Plug and spela Arduino temperatur styrenhet

Jag har sett några olika temperatur controller projekt här. Jag ville bygga en, med följande begränsningar:Kontrollerad "dumma" apparat kan anslutas direkt till enheten. Jag ville inte att hacka in i apparaten, men framför allt ville jag potenti...

Billigaste Retro spel Arkad kontroller Encoder någonsin!

Du kanske har sett "PIK3A" retro gaming tabell cirkulerar runt på internet, som jag gjorde till element14.com som en del av vårt promo innehåll för Raspberry Pi 3 lanseringen. Om du inte har sett det, är detta en super-cool IKEA avsaknaden soffb...

EasyCap DC60 (STK1160) + VLC + Xubuntu 13.10 = OpenSource Video fånga!

Denna handledning är en översikt på hur till använda VLC för att fånga de ljud- och videoströmmar från en enhet med en Easycap DC60 (Syntek Chipset) och 3,5 mm stereo mikrofon-ingång för datorer som kör Xubuntu 13.10 64-bitars. Material som behövs ko...

Anpassade Arduino MIDI Controller

Hej och Välkommen till detta instructable om hur man bygger en anpassad, Billigt och enkelt USB MIDI-controller, baserat på Arduino. Den bästa nyheten: inget krångel med USB-till-MIDI-gränssnitt eller programvaruverktyg som Hårlösa MIDI, bara plug 'n...

Hur man gör en extra controller Battery Pack för Xbox 360

behov av ett extra batteri?Glömt din laddarkabeln?Uppladdningsbart pack försvunnit?Var inte orolig!Du kan enkelt göra din egen batteri som kommer att ta vanliga alkaliska eller NiMH uppladdningsbara AA-batterier. Projektet är enkel, är tillverkat av...

1995 Honda Civic spårvidd kluster ta isär och rengöring

detta Instructable visar hur man isär dash bezel och mäta kluster, ta bort det från panelen instrument, ren och polska bezel surround och identifiera gauge instrument och belysning körriktningsvisarna på mätaren klustret.Steg 1: Vyn av dash, bezel oc...

Raspberry pi Laptop

I detta instructable kommer jag att Visa u hur jag byggde min hallon laptop och därefter du lära dig att bygga din egen. Jag hoppas du gillar detta instructable.PS Om du gillade detta instructable Glöm inte att rösta på mig i tävlingen raspberry pi.L...

Zeta Reticuli: MIDI kontrollerat 10-bands EQ och flera externa effekt gränssnittet

ungefär halva min livstid (20 år) sedan jag brukade ha bokstavligen drillions & drillions av idéer som jag fortfarande känner är inte ett fullständigt slöseri med tid. En av dessa lysande idéer var att kunna styra en gitarr wah pedalen från min dator...

Nano Pocket humör lampa (USB)(Attiny85)

Hej alla,Rainbow tävling var här och en idé var också här i mitt sinne... :DJag gjorde min egen Nano RGB Moodlamp... som ansluter direkt till din telefon laddare PIN-kod.och bara i storlek: 20 x 15 mmSkärande etsning och att göra PCB var allt gjort a...

Online DMX ljusbord

Bara slå på din favorit Raspberry Pi och börja styra en show från smartphone eller bärbar dator ansluten till Internet. Låter coolt rätt? Ja, är detta exakt målet med detta projekt. Behöver du bara en Raspberry Pi och en DMX till USB-gränssnittet, oc...

"FPV-ning" en racing drone: Some snabb & enkla lösningar

Det finns många alternativ att lägga till en kamera och AV-sändare till din racing drone att uppnå den "Första Person Visa" (FPV) erfarenheten och njuta flyger din drone med glasögon och/eller en bildskärm som om du var ombord.Här tar vi en RCTi...

Arduino kroppsburna tangentbordet handske

Arduino kroppsburna tangentbordet handsken är en arduino powered gest baserade inmatningsenhet. I huvudsak genom att flytta baserat ett finger kan du använda en T9 input system skriver!Enheten utvecklades ursprungligen som ett proof of concept för en...

Raspberry Arcade

Raspberry Pi är en av de mest roliga mini datorer för alla att använda med en liten bar träder. Och en av de mest populära sakerna att göra med dem är en retro arkadspel maskin. I detta diy, vi kommer att göra ett retro system med en pi och en bild m...

Super Nintendo patron plånbok med ljud, ljus och nyckellagring

jag älskar alla saker Nintendo, men nyligen har min styrenhet tema, läder plånbok bara fallit isär. Sedan en idé som slog mig, eftersom jag inte kunde hitta en plånbok som kunde hålla alla mina grejer för billig, jag skulle göra en själv! Och vad bät...

Hemgjorda Arcade maskin

detta är min gamla arkad maskin som jag gjort från grunden, av mig själv. Jag gjorde designen, spikade jag ihop, jag satte på TV: N i och jag satte den plug n' spela spel i den. Det är en fem-vägs switch som gör det möjligt att byta från spel till sp...

MINI arkad maskin

jag gjorde här ett tag sedan, med hjälp av en gammal bil dvd spelare skärm, en plug n spela tv spel controller & plywood. Det är en av ett fåtal maskiner jag har gjort. Kanske jag kommer att lägga upp lite mer om jag får tid. Hoppas ni gillar den. Ho...

Mörka Crystal Fizzgig inspirerade marionett

Har länge varit ett fan av mörka Crystal varelse universum, har jag velat ta en spricka på en Fizzgig stil marionett för ett tag nu. En väns loppmarknad erbjuds upp perfekta tyget för att slutligen göra det hända. Som med några av mina andra projekt,...

Löjligt smart Dock

Hej igenNyligen den USB-enheter odlas i masive kvantitet, med USB-enheter, iPod, PSP, MP4, mobiltelefoner, ETC...Jag beslöt att göra en mycket låg budget USB-docka, och mycket, mycket lätt att använda och göra.Så, jag bestämde mig att skriva detta in...