AVR dubbla RGB Matrix föraren (9 / 12 steg)

Steg 9: Firmware - del 2: färg skapandet

Den kompletta källkoden är tillgänglig i denna GitHub databaser.

Som previosly nämnde, används en 8-bitars timer för att styra alla LED färger. Varje bränning av den Jämför matcha A ISR signalerar en timing händelse. En upplösning på 4 innebär verkliga värden 0, 1, 2 och 3. En variabel används för att räkna vad ISR trigger klockan är just nu, och en switch-case -sats används för att göra några olika saker vid olika tidpunkter. När räkningen är lika med max upplösning, händer ingenting eftersom alla lysdioder bör stanna på om de redan är på, eller stanna utanför om de redan bort. Vid 0 är det dags att växla kontroll till nästa 8 kolumner. Alla lysdioder är då inställd på, men faktiskt inte påslagen. Koden fortsätter sedan till standard fallet som hanterar alla andra gånger.

I detta sista fall itererar en loopen igenom varje RGB LED i kolumnen aktivt för båda matriser. Om nuvarande räknaren är lika med off tiden för R, G eller B lysdioder för önskad färg, sätts det LED att vara avstängd. Slutligen, data skiftas ut till de konstant ström föraren att faktiskt vända lysdioderna på eller av. Denna förskjutning är en bit-bang version av faktiska SPI protokoll, med varje LED driver chip att ha en separat rad så att de kan alla vara lastat på en gång.

//-----------------------------------------------
LED-färg kontrollram
---/ / Timer 0 jämför matcha en avbryta tjänsten RoutineISR (TIMER0_COMPA_vect)
{
Byta räknarvärdet från '0' till LED Max Resolutionswitch (OCR0A_cnt) {

//--------------------------
Max Resolution, inte göra någonting!
Vid denna punkt, bör lysdioder bo
---MAX_COLOR_RESOLUTION i mål:
break;//--------------------------
LED Period börjar
//--------------------------case 0:

Starta en positiv puls att skifta genom kontroll register / / slå alla lysdioder på / / Fortsätt till nästa case...//---
Alla andra gånger
-Loopa igenom alla färger för alla lysdioder
-Inaktivera enskilda lysdioder i rätt tid
//--------------------------default:
Hitta lysdioder att vända off...do {
Loopa igenom alla LED för både matriser / / uppdatering "LED" array med nya värden / / urval för röda lysdioden för den aktuella raden eller kolumnen i matrisen 0
this_color = färger [0] [kolumn] [ledde];
om (OCR0A_cnt == COLOR_LEVELS[this_color][RED_LEVEL])
lysdioder [0] [kolumn] [RED_LEDS] & = ~(_BV(led));
} medan (...);

Flytta kontrollen till nästa kolumn / / överföring "LED" array data till LED driversdo {
Loopa igenom 8 bitar av en databyte (Bit Bang SPI) / / Set databitar / / SKIFT bitars ut till LED drivrutiner
} medan (...);
Spärren data och aktiverar LEDsbreak;
}
Starta om countif (++ OCR0A_cnt > MAX_COLOR_RESOLUTION)
OCR0A_cnt = 0;
}

Därefter ska vi prata om standard driften av föraren.

Se Steg
Relaterade Ämnen

Baserade Arduino RGB Matrix LED testare

Detta är en mycket enkel Arduino projekt vilken kontroll panelen 16 x 32 RGB LED Matrix via en 16pin IDC kabel. Arduinoen kommer att kontinuerligt skicka 5 set färger (röd, grön, blå, vit, svart) till panelen LED matris som gör att teknikern att ta r...

Lampduino - en 8 x 8 RGB golvlampa

Lampduino är en datorstyrd fristående golvlampa, består av en 8 x 8 RGB ledde matrisen. Lampan står 45" hög och 18" brett. Ljuset kommer från båda sidor. Den har olika visningslägen, samt en medföljande editor för att skapa animationer. Lampan s...

Skyline RGB LED lampa

detta är den första versionen av min Skyline lampa. Kretsen och den kod som körs mikroprocessorn var allt utvecklas med hjälp av Arduino miljö och sedan när jag var glad allt fungerade som jag ville ha det gjorde jag mina egna kretskort med en Atmel...

Arduino UNO baserat HUB75 LED DISPLAY DRIVER

Detta är anpassade 5x5cm Arduino UNO styrelse som möjliggör enkel anslutning till HUB75 gräns flat LED skärmar.Om du inte är bekant med sådana skärmar kan du köpa en från Adafruit 16 X 32 RGB LED MATRIX PANELeller från AliexpressHUB75 gränssnitt LED...

LEDDE matrisen termometer

Några uppdateringar! Koden var redigerad så decimalen är på rätt plats. Jag lade också till ett steg jag glömde i avsnittet soddering.Projekt-kort:Med hjälp av en LED Matrix styrelse samt en temperaturgivare, ville jag undersöka möjligheten av låg kv...

Arduibag: en ansluten ryggsäck för ryttare cykel

Arduibag är en ansluten ryggsäck för ryttare cykel. Det är också en öppen källa projekt skapat av två passionerade franska killar: Michaël D'AURIA och Stéphane DE GRAEVE.Om du vill veta mer om Arduibag gå till: http://www.arduibag.comBegreppetProjekt...

Android hemsökta spegel

Produktversion av detta projekt på http://ledpixelart.com ***Projektet VideoDelarAntik spegelPIXEL LED styrelsenRGB Shield för IOIOMint Board - kommer inom kort från SeeedstudioIR-rörelsesensor32 x 32 RGB LED Matrix - kommer inom kort från Seeedstudi...

Android App kontrollerade ATR (alla terrrain racer)

Bluetooth kontrolleras alla terräng Racer (BCATR) är en smidig blandning av intelligens och robusthet.Det är en 4 hjulsdrift drivs av ett par 12v 2200 mAh Li-Po batterier. 4 höga vridmoment DC motorer ger den en topphastighet på 900 RPM och 12 Kg/cm...

Mångsidiga mobila Manipulator Mk 1

Kort beskrivning:Bygga din egen DIY giant robot som spelar piano, ritar bilder, förbereder mat, vatten växter, bedriver ljussabel dueller och mer. Den mångsidiga mobil Manipulator är en avancerad öppen källkod mänskliga-size mobil robotik plattform f...

Tank Robot: Kör en tank med motorer och styrenheter drivs av Kinoma skapa

Vi byggde en mini tank och styrenheter med två Kinoma skapa enheter som kommunicerar över CoAP (begränsad Application Protocol). Handtagen rotera potentiometrar som effekt spänning utdata. Förändringar i spänning översätts till varierande hastigheter...

LEDDE matrisen glasögon: Första prototypen

uppdatering: Inledning:Jag kom upp med denna idé efter att ha sett liknande videoklipp på internet. Jag har emellertid förbättrats på design. Vad som skiljer mina glasögon från de andra där ute, är att min använder en extern matrix drivrutin och batt...

Orientalisk lykta

efter flera år att vara medlem, bestämde jag mig att publicera min första instructable, min DIY dekorativ lampa.Det är en orientalisk japansk stil lampa. Och jag skulle vilja använda lysdioder istället för andra lampor, eftersom dess en ekonomisk lös...

Halvautomatisk talade threading maskin

Threading ekrar med en cyclo talade threading maskin är roligt och enkelt. Cyclo talade tråden rullande die rullar trådarna genom kall smide. Jag hitta två passerar fungerar väl, med andra pass set för en djupare tråd. Gängning 60 ekrar som för en hi...

Tiger gaffeltruck

detta är min första instructable så det är inte den största sak. Lämna en kommentar så jag kan förbättra.Roboten i detta instructable var en deltagare i Ontario tekniska färdigheter konkurrens Robotics Team av Four byggd av ett gäng klass 12 gymnasie...

Hur man gör ett hinder att undvika Arduino Robot! "Min Robot V1"

Detta instructable visar steg instruktioner för att göra ett hinder att undvika robot med Arduino.Låt komma igångmin blogghttp://robot4pro.blogspot.com/p/My-robots.htmlSteg 1: Material som krävs förHär är allt du behöver för att MyRobotV1. Jag ska ge...

ROAMING ROBOT

Denna artikel är en närmare titt på min Roaming Robot.Denna robot är en autonom hinder undvika robot som kan också upptäcka vertikala droppar.Lista över:Sparkfun trollkarl chassi (detta inkluderar 2 DC motorer)1 x kondensatorer 100uF4 x motstånd 220...

Teckenfönster Wave

ledde wave displauSteg 1: material -Arduino Uno ($25)-32 x 16 ledde matrisen ($20)-Set av brödunderläggen ($5)-Startkablar ($5)-USB A till B kabel ($3)-Dator-5V 2Amp strömförsörjning ($10)-Grundläggande kunskaper om kodning i CFör att skapa detta pro...

Fokus, en experimentell pulver utskrift plattform

i detta instructable kommer jag att förklara fokus, en funktionell experimental pulver utskrift plattform.Fokus som började i oktober 2012 när jag frågade mig själv, hur svårt kan det vara till SLS nylon pulver. För att besvara denna fråga byggde jag...

Steg för steg guide till Micro trollkarl robot controller (Arduino kompatibel)

Micro trollkarl från DAGU är en låg kostnad Arduino kompatibel controller speciellt för nybörjare som vill bygga en liten robot. Styrelsen har ett antal användbara tillbehör inbyggd så att i de flesta fall sköldar är inte obligatoriska och yttre ledn...