Bemerkung
Hallo und willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft auf Facebook! Tauchen Sie tiefer ein in die Welt von Raspberry Pi, Arduino und ESP32 mit anderen Enthusiasten.
Warum beitreten?
Expertenunterstützung: Lösen Sie Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.
Lernen & Teilen: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu verbessern.
Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.
Spezialrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.
Festliche Aktionen und Gewinnspiele: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.
👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [hier] und treten Sie heute bei!
6.2 Digitaler Würfel¶
Hier verwenden wir einen Taster, ein 7-Segment-Display und den 74hc595, um einen elektronischen Würfel zu erstellen. Jedes Mal, wenn der Taster gedrückt wird, wird eine zufällige Zahl zwischen 1 und 6 erzeugt und auf dem 7-Segment-Display angezeigt.
Benötigte Komponenten
Für dieses Projekt benötigen wir die folgenden Komponenten.
Es ist definitiv praktisch, ein komplettes Set zu kaufen, hier ist der Link:
Name |
ARTIKEL IN DIESEM KIT |
LINK |
|---|---|---|
3 in 1 Starter Kit |
380+ |
Sie können sie auch einzeln über die untenstehenden Links kaufen.
KOMPONENTENBESCHREIBUNG |
KAUF-LINK |
|---|---|
- |
|
Schaltplan
Verdrahtung
Code
Bemerkung
Öffnen Sie die Datei
6.2.electronic_dice.inoim Pfad3in1-kit\learning_project\6.2.electronic_dice.Oder kopieren Sie diesen Code in die Arduino IDE.
Nachdem der Code erfolgreich hochgeladen wurde, zeigt das 7-Segment-Display schnell die Zahlen 0-7 an. Wenn Sie den Taster drücken, wird eine zufällige Zahl angezeigt und das schnelle Scrollen stoppt. Das schnelle Scrollen startet wieder, wenn Sie den Taster erneut drücken.
Wie funktioniert das?
Dieses Projekt basiert auf 5.10 ShiftOut(Segmentanzeige) mit einem Taster, um das Scroll-Display auf dem 7-Segment-Display zu starten/pausieren.
Initialisieren Sie jeden Pin und lesen Sie den Wert des Tasters.
void setup () { ... attachInterrupt(digitalPinToInterrupt(buttonPin), rollDice, FALLING); }
Das Interrupt wird hier verwendet, um den Zustand des Tasters zu lesen. Der Standardwert von
buttonPinist niedrig, der sich ändert, wenn der Taster gedrückt wird.rollDicestellt die Funktion dar, die aufgerufen wird, wenn das Interrupt ausgelöst wird. Sie dient dazu, den Wert der Variablenstateumzuschalten.FALLINGbedeutet, dass das Interrupt ausgelöst wird, wenn derbuttonPinvon niedrig auf hoch wechselt.
Wenn die Variable
state0 ist, wird die FunktionshowNumber()aufgerufen, um das 7-Segment-Display zufällig eine Zahl zwischen 1 und 7 anzeigen zu lassen.void loop() { if (state == 0) { showNumber((int)random(1, 7)); delay(50); } }
Über die Funktion
rollDice().void rollDice() { state = !state; }
Wenn diese Funktion aufgerufen wird, wechselt sie den Wert von state, zum Beispiel 1 beim letzten Mal und 0 diesmal.
Über die Funktion
showNumber().void showNumber(int num) { digitalWrite(STcp, LOW); //ground ST_CP and hold low for as long as you are transmitting shiftOut(DS, SHcp, MSBFIRST, datArray[num]); //return the latch pin high to signal chip that it //no longer needs to listen for information digitalWrite(STcp, HIGH); //pull the ST_CPST_CP to save the data }
Dies ist der Code innerhalb der
loop()im Projekt 5.10 ShiftOut(Segmentanzeige) in der FunktionshowNumber().