Elektronischer Würfel

Schaltung im Gehäuse Bei dem Elektronischen 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 Akkus betragen die Materialkosten knapp 10€.

Benötigte Teile

  • Betriebsspannung: c.a. 2,4Volt (z.b. 2 NiMH Akkus)
  • 7 LEDs mit entsprechenden Vorwiderständen
  • Taster
  • ATMEL AT90S2343 oder ATMEL ATiny22 Mikrocontroller
  • Lötzubehör, Kabel usw.

Downloads

Wie immer, Verwendung auf eigenes Risiko und ohne Gewähr.
wuerfel.png Schaltplan
wuerfel.bas Software

Funktionsweise der Schaltung

Der Controller läuft mit einem internen 1MHz 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 (4MHz Version). Nach eigener Erfahrungen reichen mit dem 1MHz Oszillator jedoch auch 2,4V. 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 10kΩ Vorwiderstand schalten. Dann ist die obige Situation kein Problem mehr.

Programmierung des Controllers

Das Beispielprogramm ist für BASCOM-AVR. 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. Eine etwas ausführlichere Beschreibung gibt es hier.
Der interne Oszillator scheint Betriebsspannungs abhängig zu sein, so dass in dem Programmierbeispiel von eine Taktfrequenz von 500kHz verwendet wird. 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 für die erste Programmierung des Controllers einen externen Takt benötigt wurde. Dieser lässt sich zum Beispiel mit einem zweiten AVR Controller (z.b. AT90S2313) realisieren. Es reicht einen Ausgang mit hoher Geschwindigkeit ein und aus zu schalten. Diesen Ausgang kann man dann mit dem Takt Eingang(Clock) des AT90S2343 verbinden.

Das Beispielprogramm

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 Schleife 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, wird nach einer Minute ohne Tastendruck auf LEDs ein Lauflicht angezeigt. Zwischen den zwei möglichen Darstellungsweisen der Zahlen 2 und 3 wird ebenfalls zufällig ausgewählt.