Elektronischer Würfel

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.
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.
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.