2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
Loenduri loomine, mis suureneb nupu vajutamisel MAX7221 abil.
Samm: osad
MAX7221 või MAX7219
Lüliti
4 7-segmendiline kuva (tavaline katood)
2 takisti: 10k ja 9.53k (kasutasin 9,1k ja see töötab siiani)
Arduino
2. etapp: vooluringi ehitamine
Panin kirja ainult nööpnõelad, mida kasutasin, täieliku tihvtide paigutuse leiate andmelehelt või lisasin selle. Otsige kindlasti üles oma 7-segmendiline kuva, sest see erineb tõenäoliselt minu omast, kuid protseduur on sama.
1. Ühendage MAX7221 numbrid 0–3 kuvari numbritega 1–4. MAX number 0 ühendub kuvari numbriga 1 jne. Ekraanid on lihtsalt ebatavalised ja algavad 0 asemel 1 -st.
2. Ühendage segmendid A - G seadmel MAX7221 kuvari segmentidega A - G.
3. Toite ja maandage MAX. VCC läheb tihvtile 19. 10k takisti on ühendatud ka tihvtidega 19 ja 18. Maandus läheb tihvtidele 4 ja 9.
4. MAX7221 suhtleb Arduinoga SPI (Serial Peripheral Interface) kaudu. Sel juhul on vaja ainult 3 juhet, sest ma ei kasuta MISO -d (Master In Slave Out). MAX7221 ühendage tihvt 1 (Din) Arduinoga, minu puhul kasutasin tihvti 12. See on teie MOSI (Master Out Slave In) või andmed. MAX -i tihvt 12 on CS (kiibi valimise sisend) ja see, kuidas andmed laaditakse nihkeregistrisse, ühendasin selle Arduino tihvtiga 9. Viimane ühendus on CLK, mis on MAX -i tihvt 13, ühendasin selle Arduino tihvtiga 10.
Veenduge, et toiteksite ja maandaksite Arduino kaudu 5 volti. Mul tekkis probleem, kus mu Arduino ei andnud mu tahvlile piisavalt jõudu.
See on andmelehe MAX7221 jaoks. Samuti kust pildid tulid.
www.mouser.com/datasheet/2/256/max7219-max…
Samm: lüliti
Ühendasin lüliti ülaltoodud skeemilt. Leitud aadressilt
Lüliti juhtimiseks kasutasin Arduino tihvti 8 ja 10k takistit.
4. samm: kood
MAX7221 sisselülitamiseks kasutasin GitHubist leitud LedControl.h raamatukogu ja nende põhikoodi. Seejärel muutsin koodi nii, et see loeks 0–9999, kui nuppu vajutatakse.
#include "LedControl.h"
int nupp = 8;
LedControl lc = LedControl (12, 10, 9, 1);
tühine seadistus () {
pinMode (nupp, INPUT);
lc.sulgemine (0, vale); // MAX7221 on energiasäästurežiimis, seega peame selle äratama
lc.setIntensity (0, 15); // heleduse seadistamine, max 15
lc.clearDisplay (0); // ekraani puhastamine
}
void loop () {
int olek = digitalRead (nupp);
int i = 0;
int j = 0;
int k = 0;
int l = 0;
samas (1) {
olek = digitalRead (nupp);
samas (osariik == 1) {
olek = digitalRead (nupp);
lc.setDigit (0, 3, i, vale);
i ++;
viivitus (100); // sellega saad jama
kui (i == 10) {
i = 0;
j ++;
kui (j == 10) {
j = 0;
k ++;
kui (k == 10) {
k = 0;
l ++;
kui (l == 10) {
samas (1) {
lc.setRow (0, 0, 0x3E); // kui ekraan on jõudnud 9999, kuvatakse see U - 1
lc.setRow (0, 1, 0x1); // Hexi kümnendväärtus
lc.setRow (0, 2, 0x1);
lc.setDigit (0, 3, 1, vale);
}
}
lc.setDigit (0, 0, l, vale);
}
lc.setDigit (0, 1, k, vale);
}
lc.setDigit (0, 2, j, vale);
}
}
}
}