Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-13 06:57
MAX7219 is een IC die wordt gebruikt voor het aansturen van 7-segments-LED's (tot 8 cijfers), blokweergaven (balkweergaven) en 64 afzonderlijke LED's die gemeenschappelijke kathodes zijn. Om met een microcontroller te communiceren, gebruikt de MAX7219 het SPI-communicatiesysteem. Dus om 64 LED's aan te sturen heb je maar 3 poorten van de microcontroller nodig.
In dit artikel laat ik je zien hoe je een 7-Segement module gebruikt die IC MAX7219 als driver gebruikt.
Benodigde componenten:
- MAX7219 7-segmentmodule
- Arduino Nano
- draad Jumper
- USB mini
Vereiste bibliotheek:
LedControl
In deze tutorial gebruik ik Arduino Nano board. Als je het nog nooit hebt gebruikt. Ik raad aan om mijn vorige artikel over "Hoe Arduino Nano te gebruiken" te lezen.
Stap 1: Monteer alle componenten
Sluit het Arduino-bord aan op de 7-segmentmodule. Zie de afbeelding of instructie die ik hieronder heb geschreven:
Arduino naar 7-segment
+5V => VCC
GND => GND
D12 => DIN
D11 => CLK
D10 => CS/LOAD
Stap 2: Bibliotheek toevoegen
Nadat het circuit is voltooid. Voeg de "LedControl"-bibliotheek toe aan de Arduino IDE.
Om een bibliotheek aan Arduino toe te voegen, kun je deze lezen in het artikel "Hoe een externe bibliotheek aan Arduino toe te voegen" dat ik eerder heb gemaakt".
Stap 3: Extra functies
Na het toevoegen van de LedControl-bibliotheek. U kunt extra functies gebruiken om de 7-Segment module aan te sturen.
Argument
addr - adres van het display
cijfer - de positie van het cijfer op het display (0..7)\ waarde - de weer te geven waarde. (0x0..0x0F)
dp stelt de komma in.
Functie
setChar(addr, cijfer, waarde.dp); // om de waarde van het char-type weer te geven voor 7-bits ASCII-codering
setDigit (addr, cijfer, waarde, bolean dp); //om cijfers en tekens in één functiereeks weer te geven (addr, digit, value, boolean dp); //om het object in het gewenste cijfer weer te geven
Lees hier voor meer informatie.
Stap 4: Schets uploaden
Ik heb geschetst voor de proef van deze 7-Segment module. U kunt de onderstaande code kopiëren en vervolgens in uw schets plakken.
//We moeten altijd de bibliotheek erbij betrekken
#include "LedControl.h"
/*
Nu hebben we een LedControl nodig om mee te werken. ***** Deze pincodes werken waarschijnlijk niet met uw hardware *****
pin 12 is verbonden met de DataIn
pin 11 is verbonden met de CLK
pin 10 is verbonden met LOAD
We hebben slechts een enkele MAX72XX.
*/
LedControl lc=LedControl (12, 11, 10, 1);
/* we wachten altijd een beetje tussen updates van het scherm */
unsigned lange vertragingstijd=500;
ongeldige setup() {
/* De MAX72XX staat in de energiebesparende modus bij het opstarten, we moeten een wake-up call doen */
lc.shutdown(0, false);
/* Stel de helderheid in op een gemiddelde waarde */
lc.setIntensity(0, 8);
/* en wis het scherm */
lc.clearDisplay(0);}
nietig hallo(){
lc.setChar (0, 7, 'H', onwaar);
lc.setChar (0, 6, 'E', onwaar);
lc.setChar (0, 5, 'L', onwaar);
lc.setChar (0, 4, 'L', onwaar);
lc.setChar (0, 3, '0', onwaar);
lc.setChar(0, 2, '.', onwaar);
lc.setChar(0, 1, '.', onwaar);
lc.setChar(0, 0, '.', onwaar);
vertraging (vertragingstijd+1000);
lc.clearDisplay(0);
vertraging (vertragingstijd);
lc.setDigit(0, 7, 1, onwaar);
vertraging (vertragingstijd);
lc.setDigit(0, 6, 2, onwaar);
vertraging (vertragingstijd);
lc.setDigit(0, 5, 3, false);
vertraging (vertragingstijd);
lc.setDigit(0, 4, 4, false);
vertraging (vertragingstijd);
lc.setDigit(0, 3, 5, false);
vertraging (vertragingstijd);
lc.setDigit(0, 2, 6, false);
vertraging (vertragingstijd);
lc.setDigit(0, 1, 7, onwaar);
vertraging (vertragingstijd);
lc.setDigit(0, 0, 8, false);
vertraging (1500);
lc.clearDisplay(0);
vertraging (vertragingstijd);
}
void loop() { hallo();
}
Of download onderstaand bestand:
Stap 5: Resultaat
Geniet van het resultaat.
Als er vragen zijn, schrijf ze dan gewoon in de opmerkingenkolom.
Tot ziens in het volgende artikel.