Elektronischer Würfel

(<-- links kein Menü? Hier klicken)
Bei dem Elektronischem Würfel wird ein Taster gedrückt, und nach dem Loslassen erscheint eine Zufällige Zahl (1-6), die mittels LEDs angezeigt wird. Ohne Chip Programmer und Accus betragen die Materialkosten knapp 10 €.

Die für die Schaltung benötigten Teile:

Der Schaltplan
Die aufgebaute Schaltung
Schaltplan Schaltung im Gehäuse

Funktionsweise der Schaltung
Der Controller läuft mit einem internen 1 MHZ Oszillator, somit werden keinen externen Bauteile wie Taktgenerator, Quarz oder Kondensatoren benötigt. Laut Spezifikationen funktioniert der AT 90S2343 Mikrocontroller mit einer Betriebsspannung von 2,7-6Volt (4 MHZ Version) meine Erfahrungen zeigen jedoch dass er mit dem 1 MHZ Oszillator auch bei 2,4 Volt noch zuverlässig läuft (auch die 10 MHZ Version). Prinzipiell sind höhere Betriebsspannungen möglich, dabei müssen jedoch eventuell die Vorwiderstände der LEDs entsprechend angepasst werden. Achtung: Den Port BP4 bei der obigen Schaltung auf keinen Fall als Ausgang programmieren! Würde der Port PB4 eine 0 (-) Ausgeben und gleichzeitig der Taster gedrückt werden (+) würde ein Kurzschluss entstehen und der Controller eventuell zerstört werden.  Wem dies zu riskant ist, kann direkt vor den Port PB4 einen 10Kilo Ohm Vorwiderstand schalten. Dann stellt die obige Situation keine Gefahr mehr da.

Programmierung des Controllers

Ich benutze die Software Bascom AVR zum Programmieren. Zum Programmieren müssten die Anschlüsse Reset, SCK, MISO und MOSI mit der Programmierumgebung verbunden werden. Eine Schaltung hierfür befindet sich in der Hilfedatei von Bascom AVR. ( Die Programmierung erfolgt in Bascom AVR über den Parallelport, es müssen legendlich die oben genannten Anschlüsse über Widerstände direkt mit dem Parallelport verbunden werden.) Ich habe die Schaltung mit dem AT90S2343 Controller (10 MHZ Version) gebaut. Seltsamer weise erkennt Bascom AVR den Controller bei mir als ATiny22 - die Ursache hierfür ist mir nicht bekannt. Ein Programmierbeispiel für den Würfel für AVR-Basic gib es hier . Der interne Oszillator scheint Betriebsspannungs abhängig zu sein, so dass ich in dem Programmierbeispiel von eine Taktfrequenz von 500 KHZ ausgehe. Im Prinzip kann der Controller auch einen externen Takt benutzen, ob ein externer Takt oder der interne Oszillator verwendet wird, lässt sich per Software einstellen- wobei für diese Konfiguration bereits ein Takt benötigt wird. Dies hatte bei mir zur Folge, dass ich für die erste Programmierung des Controllers einen externen Takt benötigte. Ich habe das gelöst, indem ich einen zweiten AVR Controller (z.b. AT90S2313) so programmiert habe, dass ein Ausgang im 1 MHZ Takt ein und ausgeschaltet wird. Diesen Ausgang habe ich dann mit dem Takt Eingang(Clock) des AT90S2343 verbunden.

Funktionsweise des Beispielprogramms

Das Programm wartet in einer Endlosschleife, bis der Taster gedrückt wird. Nach dem Drücken des Tasters werden alle LEDs eingeschaltet und das Programm zählt in einer weiteren Endlosschleife von 1-6. Wird die Taste losgelassen, so wird die gerade aktuelle Zahl als Zufallszahl benutzt und angezeigt. Das Programm geht zurück in die erste Schleife und wartet dort auf einen erneuten Tastendruck. Prinzipiell kann durch die Länge des Tastendrucks die gewürfelte Zahl bestimmt werden, dies ist in der Praxis jedoch nicht möglich, das der Controller so schnell zählt, dass die Hand den Taster mit einer Länge von einigen tausendstel Sekunden genau drücken müsste. Da noch Speicher frei war, habe ich das Programm so geschrieben, dass nach c.a. 1 Min ohne Tastendruck die LEDs ein Lauflicht zeigen. Auch wird eine der zwei möglichen Darstellungsweisen der Zahlen 2 und 3 zufällig ausgewählt.

Der Nachbau erfolgt auf eigene Gefahr. Ich garantiere nicht, dass die Schaltung und das Beispielprogramm fehlerfrei sind.

Zur Startseite

Projekt aus dem Jahr: 2002
Beschreibung zuletzt aktualisiert: 11.10.2012