![Hogyan csatlakoztassunk egy MAX7219 meghajtású LED -mátrixot 8x8 ATtiny85 mikrokontrollerrel: 7 lépés Hogyan csatlakoztassunk egy MAX7219 meghajtású LED -mátrixot 8x8 ATtiny85 mikrokontrollerrel: 7 lépés](https://i.howwhatproduce.com/images/002/image-3944-19-j.webp)
Tartalomjegyzék:
2025 Szerző: John Day | [email protected]. Utoljára módosítva: 2025-01-23 14:47
![Hogyan kell csatlakoztatni egy MAX7219 meghajtású LED mátrixot 8x8 ATtiny85 mikrokontrollerrel Hogyan kell csatlakoztatni egy MAX7219 meghajtású LED mátrixot 8x8 ATtiny85 mikrokontrollerrel](https://i.howwhatproduce.com/images/002/image-3944-20-j.webp)
A MAX7219 vezérlőt a Maxim gyártja. Integrált, kompakt, soros bemeneti/kimeneti közös katódos megjelenítő-illesztőprogram, amely a mikrovezérlőket 64 egyedi LED-hez, 7 szegmenses, legfeljebb 8 számjegyű LED-kijelzőhöz, oszlopdiagramos kijelzőhöz stb. Csatlakoztathatja. -chip egy BCD kód-B dekódoló, multiplex szkennelési áramkör, szegmens- és számjegy-illesztőprogramok, valamint egy 8 × 8-as statikus RAM, amely minden számjegyet tárol.
A MAX7219 modulok nagyon kényelmesen használhatók olyan mikrovezérlőkkel, mint az ATtiny85, vagy esetünkben a Tinusaur Board.
1. lépés: A hardver
![A hardver A hardver](https://i.howwhatproduce.com/images/002/image-3944-21-j.webp)
![A hardver A hardver](https://i.howwhatproduce.com/images/002/image-3944-22-j.webp)
A MAX7219 modulok általában így néznek ki. Az egyik oldalon bemeneti busz, a másikon kimeneti busz van. Ez lehetővé teszi a 2 vagy több modul láncának szétválasztását, azaz egymás után, bonyolultabb beállítások létrehozása érdekében.
Az általunk használt modulok 5 kis jumper segítségével láncba köthetők. Lásd az alábbi képet.
2. lépés: Pinout és jelek
A MAX7219 modul 5 tűvel rendelkezik:
- VCC - teljesítmény (+)
- GND-föld (-)
- DIN - Adatbevitel
- CS - Chip select
- CLK - Óra
Ez azt jelenti, hogy a modul vezérléséhez 3 csapra van szükségünk az ATtiny85 mikrokontroller oldalán. Ezek lesznek:
- PB0 - csatlakozik a CLK -hoz
- PB1 - csatlakozik a CS -hez
- PB2 - csatlakozik a DIN -hez
Ez elegendő a MAX7219 modulhoz való csatlakozáshoz és programozásához.
3. lépés: A protokoll
![A jegyzőkönyv A jegyzőkönyv](https://i.howwhatproduce.com/images/002/image-3944-23-j.webp)
A MAX7219 kommunikációja viszonylag egyszerű - szinkron protokollt használ, ami azt jelenti, hogy minden küldött adatbithez van egy órajel, amely jelzi az adott bit jelenlétét.
Más szóval, 2 párhuzamos sorozatot küldünk bitekre - egyet az órára, a másikat az adatokra. Ezt teszi a szoftver.
4. lépés: A szoftver
![A szoftver A szoftver](https://i.howwhatproduce.com/images/002/image-3944-24-j.webp)
Ez a MAX7219 modul így működik:
- Bájtokat írunk a belső regiszterébe.
- A MAX7219 értelmezi az adatokat.
- A MAX7219 vezérli a mátrix LED -jeit.
Ez azt is jelenti, hogy nem kell folyamatosan körbejárnunk a LED -ek tömbjét, hogy felgyújtsuk őket - a MAX7219 vezérlő gondoskodik erről. Ez is kezelheti a LED -ek intenzitását.
Tehát a MAX7219 modulok kényelmes használatához szükségünk van egy függvénykönyvtárra, amely ezt a célt szolgálja.
Először is szükségünk van néhány alapvető funkcióra ahhoz, hogy írjunk a MAX7219 regiszterekhez.
- Bájt írása a MAX7219 -be.
- Egy szó (2 bájt) írása a MAX7219 -be.
A függvény, amely egy bájtot ír a vezérlőhöz, így néz ki:
void max7219_byte (uint8_t data) {for (uint8_t i = 8; i> = 1; i--) {PORTB & = ~ (1 << MAX7219_CLK); // Állítsa a CLK -t LOW -ra, ha (data & 0x80) // Maszkolja az adatok MSB -jét PORTB | = (1 << MAX7219_DIN); // A DIN beállítása HIGH else PORTB & = ~ (1 << MAX7219_DIN); // Állítsa a DIN értéket LOW PORTB | = (1 << MAX7219_CLK) értékre; // A CLK beállítása HIGH data << = 1; // Shift balra}}
Most, hogy bájtokat tudunk küldeni a MAX7219 -re, elkezdhetjük a parancsok küldését. Ez 2 bájt elküldésével történik - az első a belső regiszter címe, a második pedig az elküldeni kívánt adatok.
A MAX7219 vezérlőben több mint egy tucat regiszter található.
Egy parancs vagy szó küldése alapvetően 2 egymást követő bájt küldését jelenti. A funkció megvalósítása nagyon egyszerű.
void max7219_word (uint8_t cím, uint8_t adatok) {PORTB & = ~ (1 << MAX7219_CS); // A CS beállítása LOW max7219_byte (cím); // A cím küldése max7219_byte (adatok); // Az adatok küldése PORTB | = = (1 << MAX7219_CS); // A CS beállítása HIGH PORTB & = ~ (1 << MAX7219_CLK); // A CLK beállítása LOW értékre}
Itt fontos megjegyezni azt a sort, ahol visszahelyezzük a CS jelet a HIGH -ba - ez jelzi a sorozat végét - jelen esetben a parancs végét. Hasonló technikát alkalmaznak, ha egynél több láncba kapcsolt mátrixot vezérelnek. A következő lépés, mielőtt elkezdjük be- és kikapcsolni a LED -eket, a MAX7219 vezérlő inicializálása. Ez úgy történik, hogy bizonyos értékeket bizonyos regiszterekbe ír. A kényelem érdekében kódolás közben az inicializálási sorrendet egy tömbbe helyezhetjük.
uint8_t initseq = {0x09, 0x00, // Decode-Mode Register, 00 = No decode 0x0a, 0x01, // Intensity Register, 0x00.. 0x0f 0x0b, 0x07, // Scan-Limit Register, 0x07 az összes sor megjelenítéséhez 0x0c, 0x01, // Leállítási regiszter, 0x01 = Normál működés 0x0f, 0x00, // Kijelző-teszt regiszter, 0x00 = Normál működés};
Csak el kell küldenünk a fenti 5 parancsot sorrendben cím/adat párként. Következő lépés - egy sor LED világítása.
Ez nagyon egyszerű - csak egy parancsot írunk, ahol az első bájt a cím (0 -tól 7 -ig), a második bájt pedig a 8 bit, amely a sor 8 LED -jét képviseli.
void max7219_row (uint8_t cím, uint8_t adatok) {if (cím> = 1 && cím <= 8) max7219_word (cím, adat); }
Fontos megjegyezni, hogy ez csak 1 mátrix esetén fog működni. Ha több mátrixot kapcsolunk össze egy láncban, akkor mind ugyanazokat az adatokat jeleníti meg. Ennek az az oka, hogy a parancs elküldése után visszaállítjuk a CS jelet a HIGH -ra, ami a lánc összes MAX7219 vezérlőjét reteszeli, és azt mutatja, hogy mi volt az utolsó parancs.
Ajánlott:
Hogyan készítsünk Arduino meghajtású közlekedési lámpákat: 4 lépés
![Hogyan készítsünk Arduino meghajtású közlekedési lámpákat: 4 lépés Hogyan készítsünk Arduino meghajtású közlekedési lámpákat: 4 lépés](https://i.howwhatproduce.com/images/001/image-716-44-j.webp)
Hogyan készítsünk Arduino hajtású közlekedési lámpákat: Ebben a bejegyzésben egy Arduino projektről fogunk beszélni, azaz az Arduino Traffic Pedestrians Lights Systemről. Ez a projekt valóban érdekes kipróbálni, és néhány művészet és kézművesség segítségével létrehozhat egy egész jelenetet a közlekedési lámpákról és pedálokról
Hogyan építsünk egy 8x8x8 LED -es kockát és vezéreljük egy Arduino segítségével: 7 lépés (képekkel)
![Hogyan építsünk egy 8x8x8 LED -es kockát és vezéreljük egy Arduino segítségével: 7 lépés (képekkel) Hogyan építsünk egy 8x8x8 LED -es kockát és vezéreljük egy Arduino segítségével: 7 lépés (képekkel)](https://i.howwhatproduce.com/images/003/image-6458-j.webp)
Hogyan készítsünk 8x8x8 LED -es kockát és vezéreljük azt egy Arduino -val: 2020. január szerkesztés: Hagyom, ha valaki ötletek generálására szeretné használni, de már nincs értelme kocka építeni ezen utasítások alapján. A LED -illesztőprogram -IC -k már nem készülnek, és mindkét vázlatot a régi verzióban írták
Hogyan használjunk egy while ciklust egy tömb iterálására Java -ban: 9 lépés
![Hogyan használjunk egy while ciklust egy tömb iterálására Java -ban: 9 lépés Hogyan használjunk egy while ciklust egy tömb iterálására Java -ban: 9 lépés](https://i.howwhatproduce.com/preview/how-to/10411555-how-to-use-a-while-loop-to-iterate-an-array-in-java-9-steps-0.webp)
Hogyan használjunk egy while ciklust egy tömb megismétléséhez a Java -ban: Ma megmutatom, hogyan használhatja a Java -t egy ciklus létrehozásához, amely használható számok vagy szavak listájának iterálására. Ez a koncepció belépő szintű programozók és azok számára készült, akik gyorsan szeretnének felfrissülni a Java hurkokról és tömbökről
Hogyan állítsuk be a Pi-Hole-t egy Raspberry Pi-n, egy hálózati széles hirdetésblokkolón !!: 25 lépés
![Hogyan állítsuk be a Pi-Hole-t egy Raspberry Pi-n, egy hálózati széles hirdetésblokkolón !!: 25 lépés Hogyan állítsuk be a Pi-Hole-t egy Raspberry Pi-n, egy hálózati széles hirdetésblokkolón !!: 25 lépés](https://i.howwhatproduce.com/images/012/image-33560-j.webp)
A Pi-Hole beállítása Raspberry Pi-n, hálózati széles hirdetésblokkolón !!: Ehhez a projekthez szüksége lesz: egy Raspberry Pi-re, amely képes csatlakozni az internethez Egy Micro SD-kártya, amelyen Raspbian LiteA billentyűzet fut (SSH beállításához) Eszköz (A webportál eléréséhez) Alapvető ismeretek a UNIX -ról, valamint az interfész navigáció a
Építs egy Arduino-meghajtású beszélő robotfejet!: 26 lépés (képekkel)
![Építs egy Arduino-meghajtású beszélő robotfejet!: 26 lépés (képekkel) Építs egy Arduino-meghajtású beszélő robotfejet!: 26 lépés (képekkel)](https://i.howwhatproduce.com/preview/how-and-what-to-produce/11125095-build-an-arduino-powered-talking-robot-head-26-steps-with-pictures-j.webp)
Építs egy Arduino-meghajtású beszélő robotfejet !: Ez a robotfej eredetileg az év végi projektként készült a fizikai számítástechnikai osztályom számára, de a nyár folyamán " megtanulta " hogyan kell beszélni. A fejet két Freeduino, 3 TLC5940NT chip és egy Adafruit Industries hajtja