Πίνακας περιεχομένων:

Μετρητής χρησιμοποιώντας το MAX7221: 4 βήματα
Μετρητής χρησιμοποιώντας το MAX7221: 4 βήματα

Βίντεο: Μετρητής χρησιμοποιώντας το MAX7221: 4 βήματα

Βίντεο: Μετρητής χρησιμοποιώντας το MAX7221: 4 βήματα
Βίντεο: Χρησιμοποιώντας το Second-Chance Sampling | CONTOUR NEXT (συνδεδεμένος) | mgdL | Ελλάδα (gr_GR) 2024, Ιούλιος
Anonim
Μετρητής χρησιμοποιώντας το MAX7221
Μετρητής χρησιμοποιώντας το MAX7221

Δημιουργία μετρητή που αυξάνεται όταν πατάτε ένα κουμπί χρησιμοποιώντας το MAX7221.

Βήμα 1: Μέρη

MAX7221 ή MAX7219

Διακόπτης

4 Οθόνη 7 τμημάτων (κοινή κάθοδος)

2 αντιστάσεις: 10k και 9,53k (χρησιμοποίησα 9,1k και εξακολουθεί να λειτουργεί)

Arduino

Βήμα 2: Δημιουργία κυκλώματος

Χτίζοντας το κύκλωμα
Χτίζοντας το κύκλωμα
Χτίζοντας το κύκλωμα
Χτίζοντας το κύκλωμα
Χτίζοντας το κύκλωμα
Χτίζοντας το κύκλωμα

Έγραψα μόνο τις καρφίτσες που χρησιμοποίησα, μπορείτε να βρείτε την πλήρη διάταξη καρφιτσών στο φύλλο δεδομένων ή το επισυνάπτω. Βεβαιωθείτε ότι έχετε αναζητήσει την οθόνη 7 τμημάτων, επειδή πιθανότατα θα διαφέρει από τη δική μου, αλλά η διαδικασία είναι η ίδια.

1. Συνδέστε ψηφία 0 - 3 στο MAX7221 με ψηφία 1 - 4 στην οθόνη. Το MAX ψηφίο 0 συνδέεται με το ψηφίο οθονών 1 κ.λπ. Οι οθόνες είναι απλά αντισυμβατικές και ξεκινούν από 1 αντί για 0.

2. Συνδέστε τα τμήματα A - G στο MAX7221 με τα τμήματα A - G στην οθόνη.

3. Παροχή ισχύος και γείωσης στο MAX. Το VCC πηγαίνει στον πείρο 19. Η αντίσταση 10k συνδέεται επίσης με τους ακροδέκτες 19 και 18. Η γείωση πηγαίνει στις ακίδες 4 και 9.

4. Το MAX7221 επικοινωνεί με το Arduino μέσω SPI (Serial Peripheral Interface). Σε αυτήν την περίπτωση χρειάζονται μόνο 3 καλώδια επειδή δεν χρησιμοποιώ το MISO (Master In Slave Out). Στο MAX7221 συνδέστε τον πείρο 1 (Din) στο Arduino, στην περίπτωσή μου χρησιμοποίησα τον πείρο 12. Αυτό είναι το δικό σας MOSI (Master Out Slave In) ή τα δεδομένα. Το pin 12 στο MAX είναι CS (Chip Select Input) και είναι ο τρόπος φόρτωσης των δεδομένων στο Shift Register, το συνέδεσα με το pin 9 στο Arduino. Η τελευταία σύνδεση είναι το CLK που είναι το pin 13 στο MAX, το ένωσα με το pin 10 στο Arduino.

Βεβαιωθείτε ότι έχετε τροφοδοτήσει ρεύμα και γείωση μέσω του Arduino χρησιμοποιώντας 5 βολτ. Αντιμετώπισα το πρόβλημα όπου το Arduino μου δεν έδινε αρκετή ισχύ στον πίνακα μου.

Αυτό είναι για το φύλλο δεδομένων MAX7221. Επίσης από πού προέρχονται οι εικόνες.

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

Βήμα 3: Ο διακόπτης

Ο διακόπτης
Ο διακόπτης

Συνδέω τον διακόπτη από το παραπάνω Σχήμα. Βρέθηκε στη διεύθυνση

Χρησιμοποίησα τον πείρο 8 στο Arduino για τον έλεγχο του διακόπτη και μια αντίσταση 10k.

Βήμα 4: Κωδικός

Χρησιμοποίησα τη βιβλιοθήκη LedControl.h που βρέθηκε στο GitHub και τον βασικό κωδικό τους για να ενεργοποιήσω το MAX7221. Τότε τροποποίησα τον κωδικό για να μετρά από 0 - 9999 όταν πατάτε το κουμπί.

#include "LedControl.h"

κουμπί int = 8;

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

void setup () {

pinMode (κουμπί, ΕΙΣΟΔΟΣ);

lc. τερματισμός λειτουργίας (0, false); // Το MAX7221 βρίσκεται σε λειτουργία εξοικονόμησης ενέργειας, οπότε πρέπει να το ξυπνήσουμε

lc.setIntensity (0, 15); // Ρύθμιση φωτεινότητας, μέγιστο 15

lc.clearDisplay (0); // εκκαθάριση οθόνης

}

void loop () {

int κατάσταση = digitalRead (κουμπί);

int i = 0;

int j = 0;

int k = 0;

int l = 0;

ενώ (1) {

κατάσταση = digitalRead (κουμπί);

ενώ (κατάσταση == 1) {

κατάσταση = digitalRead (κουμπί);

lc.setDigit (0, 3, i, false);

i ++?

καθυστέρηση (100)? // μπορείτε να μπλέξετε με αυτό

αν (i == 10) {

i = 0;

j ++;

αν (j == 10) {

j = 0;

k ++;

αν (k == 10) {

k = 0;

l ++;

αν (l == 10) {

ενώ (1) {

lc.setRow (0, 0, 0x3E); // όταν η οθόνη φτάσει το 9999 θα εμφανίσει U - 1

lc.setRow (0, 1, 0x1); // Σε δεκαδική τιμή Hexi

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

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

}

}

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

}

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

}

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

}

}

}

}

Συνιστάται: