Lektion 17: SPI LED Matrix

I detta enkla lektion använder vi oss av följande produkter:
ATMega328P R3 (kompatibelt med Arduino®) som finns i vårt kit.
MAX7219 8×8 Matrix med SPI anslutning

Förutom detta krävs lödning av stiftlist/hylslist på matrisen samt kablage.

I detta exempel använder Arduino® IDE version 1.8.5 samt det populära LEDMatrixDriver LIBet för LED-matriser, detta LIB måste installeras först, detta gör man via menyn: Sketch -> Include Library -> Manage Libraries…

När “Library Manager” fönstret är uppe, sök efter “LEDMatrixDriver”, välj sedan “LEDMatrixDriver by Bartoz Bielawski” och “install”. Man kan behöva starta om Arduino IDE efter detta. I detta exempel har vi installerat version 0.1.1. Arduino har en egen variant, men denna är bättre då den använder hårdvaru SPI istället för bitbangad mjukvaru SPI. Nackdelen kan vara att man måste använda SPI porten (MOSI/MISO/SCK) som finns på I/O 11-13, dock är LED-matrisen en utdata sett från Arduinokortet, så MISO används inte.

LEDMatrixDriver har sin github här och där finns även andra exempel, vi kommer inte gå in på hur de fungerar utan i detta exempel kommer vi bara “animera” 2 s.k. 8×8 Sprites för att verifiera att inkopplingen fungerar. Detta LIB fungerar även med fler 8×8 LED-matriser då kretsen (MAX7219) som styr LED-matrisen kan kaskadkopplas och LIBet stödjer fler än 8 matriser, det som begränsar hur många man kan ha är RAM minnet.

Vi har även en LED-matris med 4 segment, dvs. 32×8 pixlar, du hittar den här i vår webbutik.
Med den kan man göra coola “roterande text displayer”.

Inkoppling:
RÖD – VCC/5VDC
SVART -GND
LILA – I/O 11 från Arduino till DIN på LED-matrisen (MOSI)
GRÅ – I/O 9 från Arduino till CS på LED-matrisen
VIT – I/O 13 från Arduino till CLK på LED-matrisen

Ladda ner källkoden till projektet och öppna det i utvecklingsmiljön, ställ in det kort du använder (i vårt fall Arduino®/Genuino Uno) samt den port (i vårt fall COM38) som utvecklingskortet är anslutit till. Välj därefter “Upload” och om allt funkar som det skall skall spriten komma upp som bilden ovan och benen ändras med 500mS intervall. Vi har valt att fotografera projektet med en rökfärgad akrylplast så att bilden blir tydligare.

Nedan finns en film av projektet på vår Instagramsida.

Genom att rita dina egna sprites kan du lägga in fler och på så vis få en mer avancerad animering. Varje sprite är uppbyggd av 8 bytes och i källkoden matar vi in informationen binärt för varje rad (8 rader per sprite) så varje “1” i byten motsvarar en pixel som är tänd. Enkelt, eller hur?

Föregående Sida    –    Nästa Sida