Pfad:
Home =>
AVR-Übersicht =>
Anwendungen =>
Laufschrift 16x8 => Schaltungen
Laufschrift mit 16*8 LEDs und ATtiny- oder ATmega-Controller
Wer mit dem 4094-CMOS-Schieberegister nicht vertraut ist, kann
hier mehr darüber finden.
Dort sind auch Angaben darüber zu finden, welche Ströme
der 4094 liefert, wenn er mit 5V im Source- oder Sink-Modus direkt
angeschlossene LEDs antreibt. Bitte immer die CMOS-Variante des 4094
und niemals 74HC4094 oder 74HCT4094 verwenden, wenn Dir Deine LEDs
lieb und teuer sind.
Die dargestellten Schaltungen arbeiten nur mit 2mA-LED-Typen korrekt.
Andere LED-Typen leuchten bei den niedrigen Strömen zu gering.
Bitte für höhere LED-Ströme die Booster-Variante
verwender.
In allen vier Schaltungen sind ISP6-Schnittstellen zur Programmierung
in der Schaltung vorgesehen, so dass die Anzeigen leicht umstellbar
sind. Über die ISP6-Schnittstelle kann auch das 5V-Netzteil
angeschlossen werden.
Das hier ist die erste Schaltung: der ATtiny24 schiebt hier jeweils
acht mal hintereinander ein Bit über PA7 in das niedrigste
Schieberegister (Pin DATA des 4094).
Mit jedem Schieben wird das oberste Bit aus dem ersten Schieberegister
in das nachfolgende zweite Schieberegister eingeschoben (Ausgang QS
an den nächsten DATA-Eingang). Da alle CLOCK-Eingänge aller
Schieberegister vom I/O-Port PB1 gleichzeitig betätigt werden,
werden alle gespeicherten Bits in allen 16 4094s um eins nach links
geschoben.
Sind alle achts Bits der ersten LED-Spalte eingeschoben, wird mit dem
STROBE-Eingang der Schieberegister der Inhalt der Schieberegister in
das Latch der 4094 kopiert (I/O-Pin PB0).
Das an ADC0 angeschlossene Potenziometer stellt die LED-Helligkeit
ein. Das geschieht über den PWM-Ausgang OC0A des TC0, der alle
ENABLE-Eingänge der 4094 schaltet.
Das am ADC1 angeschlossene Potenziometer wählt den Text aus, der
angezeigt wird. Der Text ist als Bytefolge im Flash des ATtiny
gespeichert, alle Texte können beliebig programmiert werden.
Reicht der Flashspeicherplatz nicht aus, steigt man auf einen ATtiny44
oder ATtiny84 um.
Das am ADC2 angeschlossene Potenziometer bestimmt über die
Geschwindigkeit, mit der die Anzeige die nächste Spalte anzeigt.
Beim Programmieren ist zu beachten, dass nach acht Schiebeoperationen
der Inhalt des rechtesten Schieberegisters ausgetauscht ist und die
Inhalte aller 4094s links davon um eine Spalte nach links gerückt
sind.
Das ist die zweite Variante mit dem ATtiny24. Bei ihr werden jeweils
acht Bits gleichzeitig ,it jedem Taktimpuls in die ungeradzahligen
Schieberegister eingeschoben. Der Inhalt der ungeradzahligen
Schieberegister wird dabei in die geradzahligen mit verschoben.
Bei dieser Variante sind jeweils 16 Schiebevorgänge zu
absolvieren und mit jedem 16-er-Pack ist der gesamte Inhalt der
LED-Kombination ausgetauscht. Die Schaltung eignet sich daher zum
Anzaigen beliebiger Kombinationen und Folgen, nicht nur als Laufschrift.
Da hier alle AD-Wandler-Pins belegt sind, hat die Schaltung keine
Regler. Nur die Helligkeit lässt sich fest programmieren, da die
ENABLE-Pins aller 4094 an den PWM-Ausgang OC0A angeschlossen sind.
Ein fester Ablauf lässt sich programmieren, keine weiteren Texte
sind anwählbar.
Mit dieser Variante geht das Textanzeigen etwas schneller, denn der
ATmega48 kann 16 Bits auf einmal in alle 16 4094s transferieren.
Die schon von der ATtiny24-Variante-1 bekannten drei Regler für
die Geschwindigkeit, die Textauswahl und die Helligkeit sind in dieser
Schaltung ebenfalls vorhanden.
Nur mit der Helligkeitsregelung hapert es etwas, weil kein PWM-Ausgang
mehr verfügbar ist. Die muss man mit zwei Interrupts (Overflow
und Compare Match) zu Fuss programmieren und den PC5-Ausgang High
und Low schalten lassen.
Die zweite Schaltung mit dem ATtiny24 und die dritte mit dem
ATmega48 haben den Nachteil, dass kein Pin dafür übrig
bleibt, um eine Helligkeitsregelung der LEDs mit einem PWM-Kanal
daran anzuschließen. Der hier verwendete ATmega324 hat alles
dies im Überfluss, und das Poti ist an ADC0 angeschlossen und
ENABLE am 8-Bit-PWM-Ausgang OC0A.
Da an Port B noch viele Pins frei sind, kommt auch eine
Tastensteuerung infrage. Das kann bei einer Uhr das Einstellen der
Uhrzeit sein, oder man ersetzt einen der Regler durch Tasten, oder
... oder ... oder. Der eigenen Kreativität sind keine Grenzen
gesetzt.
Und noch ein Übriges ist damit möglich: An die beiden
Quarzanschlüsse XTAL1 und XTAL2 kann ein Quarz den Takt vorgeben,
falls man eine Uhr mit Laufschriftanzeige programmieren will. Dann
kann man die Zeichenfolge "Dienstag, 15.Feb.22, 13:29:59"
über die Laufanzeige schicken. Und INT2 an PB2 als auch ein
PCINT an PB0 oder PB1 zum Stellen der Uhr und des Kalenders mittels
Tasten sind auch noch frei.
Da die serielle Ausgabe an die 4094 hier besonders schnell geht (siehe
die Assembler-Abteilung),
kann der Quarz auch ohne Probleme ein 32,768kHz-Uhrenquarz sein, falls
Dein Programmiergerät ISP-Takte unter 4kHz kann.
Damit bleibt die Auswahl aus den vier Varianten Dir überlassen.
Die gedruckte Schaltung kann alle diese Varianten, wenn Du mit isoliertem
Kupferdraht etwas nachhilfst.
1.5 Verdrahtung für alle vier Varianten
Bei den gedruckten Schaltungen, die hierfür entwickelt wurden, sowie
beim Eigenbau auf Lochrasterplatinen müssen die vier Varianten mit
lötbarem Kupferlackdraht verbunden werden. Diese Tabelle hier zeigt,
welche Leitungen mit welcher Prozessorfassung und mit welchen Pins jeweils
verdrahtet werden müssen.
Damit beliebige Varianten gebaut und betrieben werden können, sind
alle Prozessorfassungen bis auf die 4094-DATA-Anschlüsse parallel zu
verdrahten. Der gesteckte Prozessor und die DATA-Verdrahtung entscheiden
dann über die realisierte Variante.
©2022 by http://www.avr-asm-tutorial.net