Forum: Projekte & Code LED DOT MATRIX DISPLAY TA07-11SRWA 5x7 5x14 ATmega8 Assembler


von Bernhard S. (bernhard)


Angehängte Dateien:

Lesenswert?

Ein kleines Beispiel und eine kleine Spielerei, um ein
14x5, 2x 5x7, LED-DOT-Matrix-Display, TA07-11SRWA, mit einem ATmega8 im 
Multiplexverfahren anzusteuern.

Die Windstärke, also die Impulse pro Sekunde (Frequenz) am Eingang wird 
in Anbhängigkeit der Zeit angezeigt, der ADC wäre mit etwas 
Programmieraufwand  auch nutzbar.

Der 32kHz getaktete 8Bit Timer2 arbeitet im Asyncronmodus (ASSR), 
dadurch beträgt die Stromaufnahme im 1 Sekunden "Blinkbetrieb" nur ca. 
200µA, geeignet für Batteriebetrieb.

Im Beispiel ist der "Dauerbetrieb" aktiviert.

Für Blinkbetrieb einfach das "REM" in der "LED_BLINKEN:" entfernen.

Nach 1ms erzeugt der Timer2 ein Interrupt, dieser steuert die interne 
Uhr, sowie MUX und startet die LOOP-Schleife, dann schläft der µC wieder 
ein, bis zum nächsten Interruptaufruf.

Erstaunlicherweise, ich wundere mich heute noch, ist die Stromaufnahme 
bei 2MHz interner RC-Takt am geringsten und nicht bei 1MHz.

Der interne RC-Takt kann 1, 2, 4 oder 8MHz betragen, die Taktfrequenz 
spielt bei der Programmabarbeitung keine Rolle, nur beim ADC etwas 
aufpassen.

Kurzzeitig, für 1ms, schaltet der AVR seine Ausgänge auf Eingänge um, 
aktiviert die Pull-Up-Widerstände und fragt die Taste(n) ab.

Nach jeder Stunde speichert der ATmega vorsichtshalber seine 
Messergebnisse im EEPROM ab.

Menue:
- Diagramm 1h pro Spalte
- Diagramm 3h pro Spalte
- Diagramm 6h pro Spalte
- Diagramm 12h pro Spalte
- Diagramm 24h pro Spalte
- Betriebsspannung
- Frequenz am Einang

Einen kleinen 4x7 Zeichensatz habe ich mit erstellt, lässt sich 
wunderschön in der Tabelle per Hand editieren und bei Bedarf anpassen.

Die Betriebsspannung...
https://www.mikrocontroller.net/attachment/473002/A.jpg

Die Referenz auf Betriebsspannung, VBG aktivieren, ADC-Messung und etwas 
rechnen, die nervige Umrechnerei wurde durch eine Tabelle gelöst^^

Vor einigen Stunden frischte der Wind doch mal etwas auf:
https://www.mikrocontroller.net/attachment/473003/B.jpg

Anmerkung: Die Matrix kann, bei diesem Zeichensatz, bis maximal 3 ASCII 
Zeichen darstellen.

Für Hinweise und konstruktive Kritik bin ich sehr dankbar.

Bernhard

: Bearbeitet durch User
von MaWin (Gast)


Lesenswert?

Man sieht an A.jpg natürlich an der unterschiedlichen Helligkeit der 
Pixel deutlich, dass der ATmega mit 14-fach Multiplex drastisch 
überfordert ist und den Strom ohne Verstärkung durch Transistoren nicht 
liefern kann. Mit 14 Widerständen statt 5 wäre bei gleicher Pinanzahl 
das Multiplexverhältnis mit 1:5 besser, aber auch dann sollte man 
Transistoren für 50mA/700mA nutzen.

von Bernhard S. (bernhard)


Angehängte Dateien:

Lesenswert?

> an der unterschiedlichen Helligkeit der Pixel deutlich...

Sorry, die Fotos hätten besser sein können.

Hier ein erneuter Versuch mit Bild und Video, in Farbe und Bunt,

bei 3V Betriebsspannung, mit bloßem Auge nichts erkennbar ;-)

: Bearbeitet durch User
von Bernhard S. (bernhard)


Angehängte Dateien:

Lesenswert?

..der Prototyp im Binkbetrieb,

geschätzte Batterielebensdauer größer 1Jahr.

Im Video blinkt nur ein Punkt, das Lebenslicht,
die letzten 14h war es windstill...

: Bearbeitet durch User
von Patrick C. (pcrom)


Angehängte Dateien:

Lesenswert?

Bemerkung zum mesz-genaugkeit.

Aufgepasst mit diese art von windgeber. Wie du auf dem impulse.png von 
deinen anderen thread sehen kannst, ist der impuls-ausgang nicht 
symetrisch. Eine viel groszere genaugigkeit bekommst du durch die 
haelfte der Pulsen weg zu lassen aus die messung.
Ursache ist wahrscheinlich das der magnet oder magnetschalter im rotor 
nicht ganz im mitten positioniert ist.

von Bernhard S. (bernhard)


Angehängte Dateien:

Lesenswert?

> ist der impuls-ausgang nicht symetrisch

Das ist zweifelsohne korrekt,
das Tastverhältnis muss auch nicht exakt 50% betragen,
denn das Eingangssignal wird 1000 Mal pro Sekunde abgetastet,
also jede ms.

Wenn ein high/low Wechsel in dieser Zeitspanne erfolgt, werden alle
Impulse zuverlässig erkannt und somit die Frequenz korrekt gemessen.

Übrigens, bei 100 km/h Windgeschwindigkeit liegt bei diesem Modell eine
Frequenz von nur 160Hz an.... da lanweilt sich der µC noch ^^

Nachtrag: Dieses kleine Projekt ist auf extrem Stromsparen ausgelegt,
die Batterien sollen lange halten.

https://www.mikrocontroller.net/attachment/473751/IMG_2679.JPG
Meine bessere Hälfte litt sehr bei der 
Windmesserehzahl-Geschwindigkeitsmessung, 100km/h und offenes 
Autofenster...  ;-)

: Bearbeitet durch User
von MaWin (Gast)


Lesenswert?

Bernhard S. schrieb:
> Dieses kleine Projekt ist auf extrem Stromsparen ausgelegt, die
> Batterien sollen lange halten

Wieso dann LED und gar noch als Matrix mit Schummerlicht ? Ein 
3-stelliges LCD kann doch auch Zahlen anzeigen und kostet quasi 0 Strom. 
Das zeigt doch nur, dass du dich mit LCD nicht auskennst und deren 
Benutzung scheust.
Jeder kleine Chinese beherrscht es aber und liefert Uhren, Thermometer, 
Taschenrechner die über ein Jahr lang auf Batterie arbeiten.
Es ist also dringendst Zeit es zu lernen.

https://dse-faq.elektronik-kompendium.de/dse-faq.htm#F.11

von Bernhard S. (bernhard)


Lesenswert?

Vorteil der LED Variante:

Im Dunkeln, auch bei größerer Entfernung gut ablesbar.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.