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!
Lektion 44: Digitales Würfelspiel
Dieses Programm simuliert das Würfeln mit einem OLED-Display. Die Simulation wird durch Schütteln des Erschütterungsschalters ausgelöst, was dazu führt, dass das Display die Zahlen 1 bis 6 durchläuft, ähnlich wie beim Würfeln mit einem Würfel. Das Display stoppt nach kurzer Zeit und zeigt eine zufällig ausgewählte Zahl an, die das Ergebnis des Würfelwurfs darstellt.
Benötigte Komponenten
Für dieses Projekt benötigen wir die folgenden Komponenten.
Es ist definitiv praktisch, ein ganzes Kit zu kaufen. Hier ist der Link:
Name |
ITEMS IN THIS KIT |
LINK |
|---|---|---|
Universal Maker Sensor Kit |
94 |
Sie können sie auch separat von den untenstehenden Links kaufen.
Component Introduction |
Purchase Link |
|---|---|
Arduino UNO R3 or R4 |
|
- |
|
Verkabelung
Code
Bemerkung
Um die Bibliothek zu installieren, verwenden Sie den Arduino Library Manager und suchen nach „LiquidCrystal I2C“ und installieren diese.
Code-Analyse
Eine umfassende Analyse des Codes:
Initialisierung von Variablen:
vibPin: Digitaler Pin, der mit dem Erschütterungssensor verbunden ist.Volatile Variablen:
rolling: Eine volatile Flagge, die den Würfelstatus anzeigt. Sie ist als volatile gekennzeichnet, da sie sowohl im Interrupt-Service-Routine als auch im Hauptprogramm verwendet wird.setup():Konfiguriert den Eingangsmodus des Erschütterungssensors. Weist dem Sensor einen Interrupt zu, um die Funktion rollDice bei Zustandsänderung auszulösen. Initialisiert das OLED-Display.
loop():Überprüft kontinuierlich, ob
rollingwahr ist, und zeigt während dieses Zustands eine zufällige Zahl zwischen 1 und 6 an. Das Würfeln endet, wenn der Sensor länger als 500 Millisekunden geschüttelt wurde.rollDice():Die Interrupt-Service-Routine für den Erschütterungssensor. Sie initiiert den Würfelwurf, wenn der Sensor geschüttelt wird, indem sie die aktuelle Zeit aufzeichnet.
displayNumber():Zeigt eine ausgewählte Zahl auf dem OLED-Bildschirm an.