Bygga ett stort Piano (4 / 10 steg)
Steg 4: Gör tangenterna lyser upp
Trenden i dessa dagar är att använda lysdioder i alla nya belysning program, och detta är inget undantag. Vi ville ha färgade lampor och vi ville att de ska kontrolleras via en mikro-controller. En snabb undersökning av marknaden ledde oss att upptäcka individuellt reglerbar RGB LED-moduler som kan vara daisy kedjas ihop. Modulen valde vi har 4 lysdioder per modul, och varje LED är en RGB LED. Det vill säga: det är en röd, grön och blå LED i ett enda paket. Varje modul har en LED driver chip som ger en enkel digital interface för att kontrollera modulen. Det finns 4 ingångar till varje modul:
* 12V power
* Data (5V TTL)
* Klocka (5V TTL)
* Marken
Varje modul har samma utgångar så att den kan anslutas till nästa modul i kedjan.
Arbeta som dessa moduler är intressant. I ena änden finns data och klocka fodrar. Färgen på varje modul anges med 24 bitar RGB-data. Efter 24 bitar är klockade i en modul, det går in i pass-through läge och eventuella efterföljande bits förs över ner linjen till nästa modul. När klocka linjen går inaktiv under viss tid tillbaka varje modul till det ursprungliga tillståndet där det kommer att ta emot nya data. Vid klocka ut Nx24 bits färg på N kan lysdiodramper styras.
För att kontrollera raderna data och klocka använde jag SPI (serial perifera interconnect) bussen för mikro-controller. Atmega328p har SPI buss hårdvarustöd, så för att maximera effektivitet jag använde detta snarare än en bit-slog strategi.
För stora pianot beslutat vi att använda 2 moduler per nyckel för att få tillräckligt ljus produktionen. Det gav oss 56 moduler totalt. Data var klockad till omkring 4MHz, så hela LED kedjan tog runt 0.34ms till setup. En avbrottstjänstens rutin kallas varje 17ms ger en uppdateringsfrekvens på runt 60Hz.
Strömmen förbrukas av LED-moduler beror på färgen visas. Värsta fall är helvitt (255,255,255). Experimentellt förbrukar som ca 1,38 W/modul. I det här programmet handlade omkring 8 moduler på när som helst, så jag inte var orolig maxing ut strömmen, men strömförbrukning kan vara en begränsande faktor i vissa program.
Resurser:
Adafruit har en bra tutorial på att köra RGB LED-moduler.
https://www.adafruit.com/products/683
Om du vill betala mindre för modulerna som kan du köpa dem direkt från kinesiska leverantörer:
Sök efter "WS2801 LED RGB"
http://www.aliexpress.com/
Stora Piano Firmware. LED Driver.
https://github.com/Deadsy/bigpiano/BLOB/Master/src/led.cpp
https://github.com/Deadsy/bigpiano/BLOB/Master/src/led.h