Inhaltsverzeichnis:

Zähler mit dem MAX7221 - Gunook
Zähler mit dem MAX7221 - Gunook

Video: Zähler mit dem MAX7221 - Gunook

Video: Zähler mit dem MAX7221 - Gunook
Video: simple counter using AVR and MAX7221 2024, Juli
Anonim
Zähler mit dem MAX7221
Zähler mit dem MAX7221

Erstellen eines Zählers, der beim Drücken einer Taste mit dem MAX7221 inkrementiert wird.

Schritt 1: Teile

MAX7221 oder MAX7219

Schalter

4 7-Segment-Anzeige (gemeinsame Kathode)

2 Widerstände: 10k und 9,53k (ich habe 9,1k verwendet und es funktioniert immer noch)

Arduino

Schritt 2: Aufbau der Schaltung

Aufbau der Schaltung
Aufbau der Schaltung
Aufbau der Schaltung
Aufbau der Schaltung
Aufbau der Schaltung
Aufbau der Schaltung

Ich habe nur die verwendeten Pins aufgeschrieben, das komplette Pin-Layout findest du auf dem Datenblatt oder ich habe es angehängt. Stellen Sie sicher, dass Sie Ihre 7-Segment-Anzeige nachschlagen, da sie sich wahrscheinlich von meiner unterscheidet, aber die Vorgehensweise ist dieselbe.

1. Verbinden Sie die Ziffern 0 - 3 des MAX7221 mit den Ziffern 1 - 4 des Displays. Die MAX-Ziffer 0 verbindet sich mit der Anzeigeziffer 1 usw. Anzeigen sind einfach unkonventionell und beginnen bei 1 statt bei 0.

2. Verbinden Sie die Segmente A - G des MAX7221 mit den Segmenten A - G des Displays.

3. Versorgen Sie den MAX mit Strom und Masse. VCC geht an Pin 19. Der 10k-Widerstand ist auch an Pin 19 und 18 angeschlossen. Masse geht an Pin 4 und 9.

4. Der MAX7221 kommuniziert mit dem Arduino über SPI (Serial Peripheral Interface). In diesem Fall werden nur 3 Drähte benötigt, da ich kein MISO (Master In Slave Out) verwende. Verbinden Sie auf dem MAX7221 Pin 1 (Din) mit dem Arduino, in meinem Fall habe ich Pin 12 verwendet. Dies ist Ihr MOSI (Master Out Slave In) oder die Daten. Pin 12 auf dem MAX ist CS (Chip Select Input) und so werden die Daten in das Schieberegister geladen, ich habe dies mit Pin 9 auf dem Arduino verbunden. Die letzte Verbindung ist CLK, das ist Pin 13 auf dem MAX, ich habe dies mit Pin 10 auf dem Arduino verbunden.

Stellen Sie sicher, dass Strom und Masse über den Arduino mit 5 Volt geliefert werden. Ich stieß auf das Problem, bei dem mein Arduino meinem Board nicht genug Leistung gab.

Dies ist für das MAX7221 Datenblatt. Auch woher die Bilder kamen.

www.mouser.com/datenblatt/2/256/max7219-max…

Schritt 3: Der Schalter

Der Schalter
Der Schalter

Ich habe den Schalter aus dem obigen Schema verdrahtet. Gefunden unter

Ich habe Pin 8 auf dem Arduino verwendet, um den Schalter zu steuern, und einen 10k-Widerstand.

Schritt 4: Code

Ich habe die LedControl.h-Bibliothek auf GitHub und ihren Basiscode verwendet, um den MAX7221 einzuschalten. Ich habe dann den Code geändert, um von 0 - 9999 zu zählen, wenn die Taste gedrückt wird.

#include "LedControl.h"

int-Taste = 8;

LedControl lc=LedControl(12, 10, 9, 1);

Leere Einrichtung () {

pinMode (Taste, EINGANG);

lc.shutdown(0, falsch); // MAX7221 ist im Energiesparmodus, also müssen wir es aufwecken

lc.setIntensity(0, 15); // Helligkeit einstellen, max 15

lc.clearDisplay(0); // Anzeige löschen

}

Leere Schleife () {

int-Zustand = digitalRead (Schaltfläche);

int i = 0;

intj = 0;

intk = 0;

intl = 0;

während(1){

Zustand = digitalRead (Schaltfläche);

während(Zustand == 1){

Zustand = digitalRead (Schaltfläche);

lc.setDigit(0, 3, ich, falsch);

i++;

Verzögerung (100); // damit kannst du rumspielen

wenn(ich == 10){

ich = 0;

j++;

wenn(j == 10){

j = 0;

k++;

wenn(k == 10){

k = 0;

l++;

wenn(l == 10){

während(1){

lc.setRow(0, 0, 0x3E); // Wenn die Anzeige 9999 erreicht hat, wird U angezeigt - 1

lc.setRow(0, 1, 0x1); // In Hexi-Dezimalwert

lc.setRow(0, 2, 0x1);

lc.setDigit(0, 3, 1, falsch);

}

}

lc.setDigit(0, 0, l, falsch);

}

lc.setDigit(0, 1, k, falsch);

}

lc.setDigit(0, 2, j, falsch);

}

}

}

}

Empfohlen: