AVR Dual RGB-Matrix Driver (9 / 12 stap)

Stap 9: Firmware - deel 2: kleur van creatie

De complete broncode is beschikbaar in Deze repository GitHub.

Als previosly vermeld, wordt een 8 bits timer gebruikt om alle van de LED kleuren te controleren. Elke afvuren van de vergelijk overeenkomen met A ISR signalen een timing-gebeurtenis. Een resolutie van 4 impliceert werkelijke waarden van 0, 1, 2 en 3. Een variabele wordt gebruikt om te tellen hoe ISR trigger laat het momenteel is, en een schakelaar-case -instructie wordt gebruikt om te doen een paar verschillende dingen op verschillende tijdstippen. Wanneer het aantal gelijk aan max resolutie is, gebeurt er niets omdat alle LEDs moeten blijven als ze al op, of blijf af als ze al uitgeschakeld zijn. Op 0 is het tijd om de schakelaar naar de volgende 8 kolommen. Alle LED's zijn vervolgens instellen op, maar niet daadwerkelijk ingeschakeld. De code blijft vervolgens aan het standaardhoofdlettergebruik die alle andere tijden behandelt.

In dit laatste geval is een lus doorlopen van iedere RGB LED in de actieve kolom voor beide matrices. Als de huidige teller gelijk aan de weg tijd voor de R, G of B LEDs voor de gewenste kleur is, ligt dat LED worden uitgeschakeld. Ten slotte wordt de gegevens verschoven uit de constante huidige stuurprogramma's eigenlijk de LEDs op of uit te schakelen. Deze verschuiving is een versie van de bits-bang van werkelijke SPI-protocol, met elke LED driver chip hebben een aparte data-lijn zodat ze allemaal geladen in een keer worden kunnen.

 //----------------------------------------------- // LED Color Control Framework //-----------------------------------------------// Timer 0 Compare Match A Interrupt Service RoutineISR (TIMER0_COMPA_vect) { // Switch the Counter value from '0' to LED Max Resolutionswitch (OCR0A_cnt) { //-------------------------- // Max Resolution, don't do anything! // At this point, LEDs should stay on //--------------------------case MAX_COLOR_RESOLUTION: break;//-------------------------- // Start of LED Period //--------------------------case 0: // Start a positive pulse to shift through the control register// Turn all LEDs on// Continue to next case...//-------------------------- // All Other times // - Loop through all colors for all leds // - Turn individual LEDs off at the right time //--------------------------default: // Find LEDs to turn off...do { // Loop through every LED for both matrices// Update "leds" array with new values// Sample for the Red LED of the current row and column in matrix 0 this_color = colors[0][column][led]; if (OCR0A_cnt == COLOR_LEVELS[this_color][RED_LEVEL]) leds[0][column][RED_LEDS] &= ~(_BV(led)); } while ( ... ); // Shift control to next column// Transfer "leds" array data to LED driversdo { // Loop through 8 bits of a data byte (Bit Bang SPI)// Set data bits// Shift bit out to LED drivers } while ( ... ); // Latch data and enable LEDsbreak; } // Restart the countif (++OCR0A_cnt > MAX_COLOR_RESOLUTION) OCR0A_cnt = 0; } 

Vervolgens zullen we praten over de standaardbewerking voor het stuurprogramma.

Gerelateerde Artikelen

Arduino gebaseerd testprogramma voor RGB-Matrix LED

Arduino gebaseerd testprogramma voor RGB-Matrix LED

Dit is een zeer eenvoudige Arduino project dat Configuratiescherm de 16 x 32 RGB LED Matrix via een 16pin IDC kabel. De Arduino zal continu 5 set kleuren (rood, groen, blauw, wit, zwart) te sturen naar hettoezichtpanel Matrix LED, waarmee de technicu
Goedkoop en gemakkelijk Dial gecontroleerd High Power RGB mogen Driver

Goedkoop en gemakkelijk Dial gecontroleerd High Power RGB mogen Driver

Kan er een heleboel RGB LED Drivers die er, maar deze is een beetje anders, zijn veelzijdig, klein, goedkoop, en is eenvoudig te controleren.Een potentiometer met gebouwd in schakelaar wordt gebruikt voor de besturingselementen. Een snelle pers, word
5 x 5 RGB-matrix lpd6803 geleide arduino gecontroleerd

5 x 5 RGB-matrix lpd6803 geleide arduino gecontroleerd

wat:een 5 * 5 rgb led matrix, gemaakt met arduino en lpd6803 op basis van de leds van adafruit.met een pir-sensor, het gaat over als het detecteert bewegingen en een infraroodsensor voor de distace, 1 animatie ziet u de afstand hebt van de sensor:).m
RGB LED Driver met behulp van IC 74c 14: No Arduino!

RGB LED Driver met behulp van IC 74c 14: No Arduino!

Dit eenvoudige project drijft een RGB LED. Verschillende kleuren kunnen willekeurig worden geproduceerd en ziet er meer prachtig wanneer een rietje wordt gebruikt als een diffuser. 3 Schmitt Trigger oscillatoren + 3 uses slechts opwaarts van fader ci
Dual Stator Smart Drive windturbine (zelfstudie)

Dual Stator Smart Drive windturbine (zelfstudie)

dit is een tutorial voor mijn slimme aandrijving basis windturbine. Dit is een complex project en ik bouwde het al voordat ik deze tutorial begonnen dus het zal niet ingaan op alles, maar ik zal proberen.Stap 1: Materialen en gereedschappen. Material
Super Mario Bros op een 8 x 8 LED van het RGB-matrix beeldscherm met een pic-microcontroller

Super Mario Bros op een 8 x 8 LED van het RGB-matrix beeldscherm met een pic-microcontroller

dit is de nieuwste videoclip: (zie hieronder voor de oude video) ik zal worden het uploaden van een instructable van hoe kunt u uw eigen LEDBOY-spelsysteem die u toelaten zal om het spelen van dit spel. Houd er rekening mee dat dit spel nog steeds ee
Controle van een RGB-LED-Matrix met Android- en IOIO

Controle van een RGB-LED-Matrix met Android- en IOIO

De versie van het product van dit project beschikbaar op http://ledpixelart.com ***Een Android gecontroleerd interactieve spiegel. Running verschillende Android apps draaien, weergegeven de interactieve spiegel foto's, lopende tekst, eenvoudige games
Lampduino - een 8 x 8 RGB vloerlamp

Lampduino - een 8 x 8 RGB vloerlamp

Lampduino is een computergestuurde vrijstaande vloerlamp, bestaat uit een 8 x 8 LED van het RGB-matrix. De lamp staat 45" hoog en 18" breed.  Licht uitgaat van beide kanten.  Het heeft verschillende weergavemodi, evenals een opgenomen editor voo
Arduino UNO gebaseerd HUB75 LED DISPLAY DRIVER

Arduino UNO gebaseerd HUB75 LED DISPLAY DRIVER

Dit is aangepaste 5x5cm Arduino UNO bestuur waarmee eenvoudige aansluiting naar HUB75 interface LED displays.Als u niet bekend met dergelijke vertoningen bent kunt u één vanuit Adafruit 16 X 32 RGB LED MATRIX paneelof vanuit Aliexpress kopenHUB75 int
Arduino gebaseerde Bi-color LED Matrix Snake Game

Arduino gebaseerde Bi-color LED Matrix Snake Game

We laten zien hoe een Arduino gebaseerd Bi-color LED Matrix Tetris spel kan worden gebouwd in ons laatste instructable. We waren heel verrassing het werd gekenmerkt op de homepage van Instructables en vrij een handvol favorieten hebt opgeslaen gedure
Arduino Dot Matrix Game Console

Arduino Dot Matrix Game Console

Slimme telefoon & iPad gaming is groot en alle liefde Candy Crush & Angry Birds, maar niets kan aanraken van de charme van het maken van een game console door eigen en speel mee. Het was 2003, toen kreeg ik een Nokia 3310 mobiele telefoon en ik ge
Arduino aangedreven drie kleur 8 x 8 Led matrix

Arduino aangedreven drie kleur 8 x 8 Led matrix

aansluiten een drie kleur, zoals in rood, groen en blauw, rij 8 kolom door 8 LED matrix aan een Arduino.  Het modelnummer van de array in gebruik is CRM-2388ARGB-L.  Het kwam niet met alle bedrading instructies, zodat ik met een 9 volt-batterij en ee
Arduino gebaseerd Bi-color LED Matrix Audio Spectrum Visualizer

Arduino gebaseerd Bi-color LED Matrix Audio Spectrum Visualizer

Nadat we met de Bi-color LED Matrix Driver Module kit kwamen, we hebben ons gebogen rond voor interessante projecten te werken.Bent u wellicht geïnteresseerd in een aantal van de projecten die we hebben opgemaakt op instructables met behulp van deze
Grote 8 x 8 LED Matrix Display

Grote 8 x 8 LED Matrix Display

Heb je gewerkt met kant en klare 8 x 8 LED matrix als beeldschermen? Ze komen in verschillende maten en zijn erg interessant om mee te werken. De grootte van een grote beschikbaar is rond 60 x 60 mm. Als u op zoek bent voor een veel grotere kant en k