Elektronischer Würfel
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:
- Betriebsspannung : c.a. 2,4 Volt (z.b. 2 NIMH Accus)
- 7 LEDs mit entsprechenden Vorwiderständen
- Taster
- ATMEL AT90S2343 oder ATMEL ATiny22 Mikrocontroller
- Lötzubehör, Kabel usw.
Der Schaltplan
|
Die aufgebaute
Schaltung
|
 |
|
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.
zuletzt aktualisiert: 21.04.2006