Wir alle sind mit Würfeln vertraut und haben oft LUDO- oder SANP SIDI-Spiele (Snake & Ladders) mit Würfeln gespielt. Dice ist eine solide Box vom Typ Squire, die auf allen Seiten 6 verschiedene Zahlen enthält. Wir werfen Würfel auf eine Oberfläche, um beim Spielen eine Zufallszahl zu erhalten. In diesem Projekt haben wir versucht, es mit einem digitalen Würfel unter Verwendung von Arduino Uno Board zu replizieren. Anstatt die Würfel zu werfen, müssen wir hier einen Knopf drücken, um eine Zufallszahl zwischen 0 und 6 zu erhalten.
Erforderliche Komponenten
- Arduino UNO
- Sieben-Segment-Anzeige (Common Anode)
- Drück Knöpfe
- Kabel anschließen
- Brotbrett
- 1 k Widerstand
- Energieversorgung
Schaltplan und Erklärung
Wie in der obigen digitalen Würfelschaltung gezeigt, wird Arduino zur Steuerung des gesamten Prozesses verwendet. In der Schaltung werden zwei Drucktasten verwendet - eine zum Starten der Würfel und eine zum Zurücksetzen der Würfel. Arduino liest diese beiden Tasten und führt die Operation aus. Eine Sieben-Segment-Anzeige wird verwendet, um das Würfelergebnis anzuzeigen.
Arduino führt kontinuierlich die Funktion rand () aus und speichert seinen Wert in einer temporären Variablen. Wenn die Würfeltaste gedrückt wird, wird der gespeicherte Wert berechnet und mit der entsprechenden Methode auf sieben Segmenten angezeigt (siehe Programmierteil des Artikels).
Hier in dieser Würfelschaltung wird eine gemeinsame Anoden-Sieben-Segment-Anzeige zum Anzeigen von Würfelnummern verwendet, die direkt mit den digitalen Arduino-Pin-Nummern 6, 5, 4, 3, 2, 1, 0 verbunden ist. Und ein gemeinsamer Anoden-Pin mit sieben Segmenten ist verbunden mit +5 Volt 220 Ohm Widerstand. Es sind auch zwei Drucktasten verbunden, nämlich eine Würfeltaste und eine Rücksetztaste, die in Bezug auf Masse mit dem digitalen Pin 14 (A0) und 15 (A1) verbunden sind.
Code Erklärung
Der Programmierungsteil dieses Projekts spielt eine sehr wichtige Rolle bei der Anzeige der zufälligen digitalen Würfelnummer auf der Sieben-Segment-Anzeige. Arduino enthält keine Bibliothek für die Anzeige von sieben Segmenten. Deshalb haben wir den gesamten Code ohne Verwendung einer Bibliothek erstellt.
Zunächst wählen wir den digitalen Pin für die Sieben-Segment-Anzeige.
int pin = {6,5,4,3,2,1,0};
Danach erstellen wir ein Array mit 6 Würfelstellen, nämlich 1, 2, 3, 4, 5 und 6.
Zeichenziffer = {0x02, 0x79, 0x24, 0x30, 0x19, 0x12};
Jetzt gaben wir die Anweisung, den Arduino-Pin als Ausgang zu verwenden.
void setup () {for (int i = 0; i <7; i ++) pinMode (pin, OUTPUT); pinMode (Würfel, INPUT); pinMode (zurücksetzen, EINGABE); digitalWrite (Würfel, HOCH); digitalWrite (zurücksetzen, HOCH);
Wir senden standardmäßig einen Code für die Anzeige von Null auf der Sieben-Segment-Anzeige.
int temp = 0x40; für (int i = 0; i <7; i ++) {int temp1 = temp & 0x01; digitalWrite (Pin, Temp1); temp = temp >> 1; }}
Jetzt führen wir die Funktion rand () aus, um eine Zufallszahl zu erhalten.
int temp = rand ();
Und wenn wir das Würfeltastenprogramm drücken, ordnen Sie zuerst diese Zufallszahl zu und senden sie dann mit dem bitweisen Operator an die Sieben-Segment-Anzeige.
if (digitalRead (Würfel) == 0) {int k = temp% 6; temp = Ziffer; warten(); für (int i = 0; i <7; i ++) {int temp1 = temp & 0x01; digitalWrite (Pin, Temp1); temp = temp >> 1; } delay (200); }}
Gleiches gilt für die Reset-Taste.
In diesem Programm senden wir jeweils ein Bit. Hier wenden wir eine for-Schleife an, die sieben Mal ausgeführt wird, um Daten einzeln an jedes Segment zu senden.