![Kaip sujungti MAX7219 varomą LED matricą 8x8 su ATtiny85 mikrovaldikliu: 7 žingsniai Kaip sujungti MAX7219 varomą LED matricą 8x8 su ATtiny85 mikrovaldikliu: 7 žingsniai](https://i.howwhatproduce.com/images/002/image-3944-19-j.webp)
Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-23 14:59
![Kaip prijungti MAX7219 varomą LED matricą 8x8 su ATtiny85 mikrovaldikliu Kaip prijungti MAX7219 varomą LED matricą 8x8 su ATtiny85 mikrovaldikliu](https://i.howwhatproduce.com/images/002/image-3944-20-j.webp)
MAX7219 valdiklį gamina „Maxim Integrated“yra kompaktiška, nuoseklaus įvesties/išvesties bendrojo katodo ekrano tvarkyklė, galinti prijungti mikrovaldiklius prie 64 atskirų šviesos diodų, 7 segmentų skaitmeniniai LED ekranai iki 8 skaitmenų, juostiniai grafikai ir kt. -mikroschema yra BCD kodo B dekoderis, daugybinio nuskaitymo grandinė, segmentų ir skaitmenų tvarkyklės ir 8 × 8 statinė RAM, kurioje saugomi kiekvienas skaitmuo.
MAX7219 modulius labai patogu naudoti su tokiais mikrovaldikliais kaip ATtiny85 arba, mūsų atveju, su Tinusaur Board.
1 žingsnis: Aparatūra
![Aparatūra Aparatūra](https://i.howwhatproduce.com/images/002/image-3944-21-j.webp)
![Aparatūra Aparatūra](https://i.howwhatproduce.com/images/002/image-3944-22-j.webp)
MAX7219 moduliai paprastai atrodo taip. Jie turi įvesties magistralę vienoje pusėje ir išvesties magistralę kitoje. Tai leidžia sujungti 2 ar daugiau modulių grandinę, t. Y. Vieną po kitos, kad būtų sukurtos sudėtingesnės sąrankos.
Mūsų naudojami moduliai gali būti sujungti grandine naudojant 5 mažus trumpiklius. Žiūrėkite paveikslėlį žemiau.
2 žingsnis: „Pinout“ir signalai
MAX7219 modulis turi 5 kaiščius:
- VCC - galia (+)
- GND-žemė (-)
- DIN - duomenų įvedimas
- CS - lusto pasirinkimas
- CLK - laikrodis
Tai reiškia, kad moduliui valdyti mums reikia 3 kaiščių ATtiny85 mikrovaldiklio pusėje. Tai bus:
- PB0 - prijungtas prie CLK
- PB1 - prijungtas prie CS
- PB2 - prijungtas prie DIN
To pakanka norint prisijungti prie MAX7219 modulio ir jį užprogramuoti.
3 žingsnis: protokolas
![Protokolas Protokolas](https://i.howwhatproduce.com/images/002/image-3944-23-j.webp)
Bendravimas su MAX7219 yra gana lengvas - jame naudojamas sinchroninis protokolas, o tai reiškia, kad kiekvienam siunčiamam duomenų bitui yra nustatytas laikrodžio ciklas, kuris reiškia, kad yra tas duomenų bitas.
Kitaip tariant, bitams siunčiame 2 lygiagrečias sekas - vieną laikrodžiui, kitą - duomenims. Tai daro programinė įranga.
4 žingsnis: programinė įranga
![Programinė įranga Programinė įranga](https://i.howwhatproduce.com/images/002/image-3944-24-j.webp)
Šis MAX7219 modulis veikia taip:
- Į vidinį registrą įrašome baitus.
- MAX7219 interpretuoja duomenis.
- MAX7219 valdo matricos šviesos diodus.
Tai taip pat reiškia, kad mums nereikia visą laiką sukti šviesos diodų masyvo, kad juos užsidegtume - MAX7219 valdiklis tuo rūpinasi. Tai taip pat galėtų valdyti šviesos diodų intensyvumą.
Taigi, norėdami patogiai naudoti MAX7219 modulius, mums reikia tam reikalingų funkcijų bibliotekos.
Pirma, mums reikia kai kurių pagrindinių funkcijų, kad galėtume rašyti į MAX7219 registrus.
- Įrašomas baitas į MAX7219.
- Žodžio (2 baitų) įrašymas į MAX7219.
Funkcija, kuri valdikliui rašo vieną baitą, atrodo taip:
void max7219_byte (uint8_t data) {for (uint8_t i = 8; i> = 1; i--) {PORTB & = ~ (1 << MAX7219_CLK); // Nustatykite CLK į LOW, jei (duomenys & 0x80) // Užmaskuokite duomenų MSB PORTB | = (1 << MAX7219_DIN); // Nustatykite DIN į HIGH else PORTB & = ~ (1 << MAX7219_DIN); // Nustatykite DIN į LOW PORTB | = (1 << MAX7219_CLK); // Nustatykite CLK į HIGH data << = 1; // Perkelti į kairę}}
Dabar, kai galime siųsti baitus į MAX7219, galime pradėti siųsti komandas. Tai daroma siunčiant 2 byes - 1 - vidinio registro adresas ir 2 - duomenys, kuriuos norėtume siųsti.
MAX7219 valdiklyje yra daugiau nei keliolika registrų.
Komandos ar žodžio siuntimas iš esmės yra 2 baitų iš eilės siuntimas. Funkcijos įgyvendinimas yra labai paprastas.
void max7219_word (uint8_t adresas, uint8_t duomenys) {PORTB & = ~ (1 << MAX7219_CS); // Nustatykite CS į LOW max7219_byte (adresas); // Siunčiamas adresas max7219_byte (duomenys); // Duomenų siuntimas PORTB | = (1 << MAX7219_CS); // Nustatykite CS į HIGH PORTB & = ~ (1 << MAX7219_CLK); // Nustatyti CLK kaip LOW}
Čia svarbu pažymėti eilutę, kurioje CS signalas grąžinamas į HIGH - tai žymi sekos pabaigą - šiuo atveju komandos pabaigą. Panaši technika naudojama valdant daugiau nei vieną grandinę sujungtą matricą. Kitas žingsnis, prieš pradedant įjungti ir išjungti šviesos diodus, yra inicijuoti MAX7219 valdiklį. Tai daroma įrašant tam tikras vertes į tam tikrus registrus. Kad būtų patogiau, koduojant galėtume įdėti inicijavimo seką į masyvą.
uint8_t initseq = {0x09, 0x00, // Dekodavimo režimo registras, 00 = Nėra dekodavimo 0x0a, 0x01, // Intensity Register, 0x00.. 0x0f 0x0b, 0x07, // Scan-Limit Register, 0x07, kad būtų rodomos visos eilutės 0x0c, 0x01, // Išjungimo registras, 0x01 = Įprastas veikimas 0x0f, 0x00, // Rodymo testų registras, 0x00 = Įprastas veikimas};
Mes tiesiog turime išsiųsti 5 aukščiau pateiktas komandas iš eilės kaip adreso/duomenų poros. Kitas žingsnis - apšviesti šviesos diodų eilutę.
Tai labai paprasta - mes tiesiog parašome vieną komandą, kurioje 1 baitas yra adresas (nuo 0 iki 7), o antrasis baitas yra 8 bitai, vaizduojantys 8 šviesos diodus iš eilės.
void max7219_row (uint8_t adresas, uint8_t duomenys) {if (adresas> = 1 && adresas <= 8) max7219_word (adresas, duomenys); }
Svarbu pažymėti, kad tai veiks tik 1 matricai. Jei grandinėje sujungsime daugiau matricų, jos visos rodys tuos pačius duomenis. Priežastis ta, kad išsiuntę komandą CS signalą grąžiname į HIGH, todėl visi grandinės MAX7219 valdikliai užsifiksuoja ir parodo paskutinę komandą.
Rekomenduojamas:
Kaip sukurti 8x8 BIG LED matricą (MAX7219 LED 10mm): 9 žingsniai (su paveikslėliais)
![Kaip sukurti 8x8 BIG LED matricą (MAX7219 LED 10mm): 9 žingsniai (su paveikslėliais) Kaip sukurti 8x8 BIG LED matricą (MAX7219 LED 10mm): 9 žingsniai (su paveikslėliais)](https://i.howwhatproduce.com/images/011/image-30624-j.webp)
Kaip sukurti 8x8 BIG LED matricą (MAX7219 LED 10mm): ar dirbote su paruošta 8x8 LED matrica kaip ekranai? Jie būna įvairių dydžių ir yra gana įdomūs dirbti. Didelis lengvai prieinamas dydis yra apie 60 mm x 60 mm. Tačiau, jei ieškote daug didesnės paruoštos LED matricos
Kaip sujungti dviejų ašių vairasvirtę su „Arduino Uno“: 5 žingsniai
![Kaip sujungti dviejų ašių vairasvirtę su „Arduino Uno“: 5 žingsniai Kaip sujungti dviejų ašių vairasvirtę su „Arduino Uno“: 5 žingsniai](https://i.howwhatproduce.com/images/011/image-30959-j.webp)
Kaip sujungti dviejų ašių vairasvirtę su „Arduino Uno“: Čia mes sujungsime vieną dvikovos ašies vairasvirtę su arduino uno. Ši vairasvirtė turi du analoginius kaiščius x ašiai ir y ašiai ir vieną skaitmeninį kaištį jungikliui
Kaip sujungti GPS modulį (NEO-6m) su „Arduino“: 7 žingsniai (su nuotraukomis)
![Kaip sujungti GPS modulį (NEO-6m) su „Arduino“: 7 žingsniai (su nuotraukomis) Kaip sujungti GPS modulį (NEO-6m) su „Arduino“: 7 žingsniai (su nuotraukomis)](https://i.howwhatproduce.com/images/003/image-7953-13-j.webp)
Kaip prijungti GPS modulį (NEO-6m) su „Arduino“: Šiame projekte parodžiau, kaip sujungti GPS modulį su „Arduino UNO“. Ilgumos ir platumos duomenys rodomi LCD ekrane, o vietą galima peržiūrėti programoje. Medžiagos sąrašas Arduino Uno == > 8 USD vertės „Ublox NEO-6m“GPS modulis == > 15 USD 16x
Kaip sujungti 4x3 colių TFT ekraną su „Arduino“: 4 žingsniai
![Kaip sujungti 4x3 colių TFT ekraną su „Arduino“: 4 žingsniai Kaip sujungti 4x3 colių TFT ekraną su „Arduino“: 4 žingsniai](https://i.howwhatproduce.com/images/002/image-4257-57-j.webp)
Kaip prijungti 4x3 colių TFT ekraną su „Arduino“: „FocusLCDs.com“atsiuntė man nemokamą 4x3 colių TFT LCD pavyzdį (P/N: E43RG34827LW2M300-R) išbandyti. Tai spalvotas aktyviosios matricos TFT (plonasluoksnis tranzistorius) skystųjų kristalų ekranas (skystųjų kristalų ekranas), kuriame kaip perjungimo įrenginys naudojamas amorfinis silicio TFT. Šis modelis yra c
Kaip sujungti 16x4 skystųjų kristalų ekraną su „Arduino“: 6 žingsniai
![Kaip sujungti 16x4 skystųjų kristalų ekraną su „Arduino“: 6 žingsniai Kaip sujungti 16x4 skystųjų kristalų ekraną su „Arduino“: 6 žingsniai](https://i.howwhatproduce.com/images/001/image-919-72-j.webp)
Kaip sujungti 16x4 LCD su „Arduino“: Įvadas Neseniai iš draugų iš „FocusLCDs.com“gavau nemokamų LCD pavyzdžių. Vienas iš jų yra 16x4 LCD; P/N: C164AXBSYLY6WT. Jis naudoja ST7066U valdiklį (žr. Čia pateiktą duomenų lapą), o ne HD44780, dažniausiai sutinkamą skystųjų kristalų ekranuose. Aš ne