Forum: Mikrocontroller und Digitale Elektronik Negative Kontrastspannung am LCD per Atmega PWM regeln?


von Ghost R. (ghostrider1911)


Lesenswert?

Hallo,

ich habe ein kleines Projekt vor, bei dem ich ein großes 4x20 LCD per 
Atmega 16 (oder auch 32, je nach Programmgröße) ansteuern will.

Mit Displays allgemein hab ich schon einiges an Erfahrung, das Display 
das ich hier habe läuft auch gut, aktuell mit einem MAX 232, um die 
negative Spannung zu erzeugen und mit einem Poti die Kontrastspannung zu 
regeln.


Nun meine Frage: wie kann ich die negative Spannung mit dem Mega 16 
"dimmen" ?

am besten natürlich so das nichts flackert und der Schaltungsaufwand 
möglichst gering bleibt.


Für Displays die mit einer positiven Spannung auskommen hab ich bereits 
genügend Schaltungen im Netz gefunden.

Mfg

von Georg G. (df2au)


Lesenswert?

Wie hoch muss die negative Spannung sein?

von Falk B. (falk)


Lesenswert?

@ Ghost Rider (ghostrider1911)

>das ich hier habe läuft auch gut, aktuell mit einem MAX 232, um die
>negative Spannung zu erzeugen und mit einem Poti die Kontrastspannung zu

>Nun meine Frage: wie kann ich die negative Spannung mit dem Mega 16
>"dimmen" ?

Indem du eine möglichst hochfrequenze PWM auf einen der Senderkanäle des 
MAX232 gibst und dann an den Ausgang dort einen passenden RC-Filter 
klemmst. Mit dem Tastverhältnis kann man die mittlere Ausgangssspannung 
einstellen. Da das Kontrastpin relativ wenig Strom braucht, kann man das 
eher hochohmig machen. Ich würde mal mit 10kOhm + 10uF ins Rennen gehen 
und die PWM auf ca. 100-1000 Hz einstellen.

https://www.mikrocontroller.net/articles/Pulsweitenmodulation#DA-Wandlung_mit_PWM

von Thomas E. (picalic)


Lesenswert?

Wenn's nur eine kleine negative Spannung (2V oder so...) braucht, könnte 
man vielleicht auch was mit einer Ladungspumpe (ein Kondensator, zwei 
Dioden) machen.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

PWM geht schon, habe ich auch schon gemacht.  Man kommt aber nicht
drumrum, einen kleinen Lastwiderstand einigermaßen passend auszusuchen,
um die gewünschte Spannung zu erreichen.  Die PWM macht dann das
Finetuning.

Hier mal ein Stück Code auf einem Xmega:
1
  /* PF3 is output for VLCD charge pump (PWM on OC0D) */
2
  PORTF.DIRSET = _BV(3);
3
  TCF0.CTRLA = TC_CLKSEL_DIV1_gc; /* TCF0 @ 16 MHz */
4
  TCF0.CTRLB = TC0_CCDEN_bm | TC_WGMODE_SS_gc;
5
  TCF0.PER = 256;               /* 62.5 kHz PWM frequency */
6
  TCF0.CCD = 4;                 /* -> VLCD abt. -1.3 V */

sowie der zugehörige Schaltplanausschnitt im Anhang.  Ich glaube
mich zu erinnern, dass der tatsächliche Wert von R8 dann in der
Erprobung nochmal geändert worden ist.  Das Gerät ist aber ein Unikat,
den Schaltplan habe ich daher nicht nachgezogen.

: Bearbeitet durch Moderator
von lg (Gast)


Lesenswert?

Wieso was ändern,
Falk hat es doch schon erklährt. Habe ich auch schon so gemacht, 
funktioniert bestens.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Naja, einen MAX232 extra für die Kontrastspannung, wenn man ihn sonst
nicht braucht?  Halte ich für reichlich übertrieben.

von Stefan F. (Gast)


Angehängte Dateien:

Lesenswert?

Ich finde es wesentlich "natürlicher", wenn man den Kontrast an einem 
Poti einstellen kann. Erzeugen kannst du die Schaltung gemäß der 
angehängten Schaltung.

Du kannst die Spannung per Software beeinflussen, indem du die Frequenz 
oder die Pulsweise des Rechtecksignals änderst (geht beides). Dann würde 
ich allerdings den 1µF Kondensator auf 10µF erhöhen.

Je niedriger die Frequenz, umso niedriger ist die Ausgangsspannung. 
Oder: Je unsymmetrischer das Tastverhältnis der PWM, desto niedriger ist 
die Ausgangsspannung. Also bei 50% High/50% Low erhälst du die maximale 
Spannung von ca. -2V.

Nachtrag: Ich sehe gerade dass mein Schaltungsvorschlag praktisch mit 
dem von Jörg identisch ist.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Stefan U. schrieb:
> praktisch mit dem von Jörg identisch ist.

Bis auf das Poti. ;-)  OK, das hätte mir das Aussuchen des Widerstands
gespart.

Vorteil der Einstellung über die Pulsbreite ist, dass man das halt
rein in Software machen kann.  Hab' ich am Ende aber doch nicht getan
(wie man sieht, ist ja hart codiert).

von Stefan F. (Gast)


Lesenswert?

> Vorteil der Einstellung über die Pulsbreite ist, dass man das
> halt rein in Software machen kann.

Ja, aber die Software weiss nicht, welche Kontrastspannung optimal ist. 
Dazu bräuchtest du noch eine Kamera, die auf das Display schaut. Oder 
etwas, wo der Benutzer die Helligkeit einstellen kann. Dann doch lieber 
gleich ein Trimmpoti, oder nicht? Keep it simple.

Ich hatte was vergessen zu schreiben: Die Frequenz des Rechtecksignals 
muss 10kHz oder mehr sein, um die maximale Ausgangsspannung (ca. -2V) zu 
erreichen. Bei weniger als 10kHz wird die Spannung geringer.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Stefan U. schrieb:
> Oder etwas, wo der Benutzer die Helligkeit einstellen kann.

Yep, wenn ich aber sonst schon eine Bedienerführung am Gerät habe,
ist das für den Benutzer am Ende einfacher, als die Kiste zu öffnen
und am Poti zu fummeln.

Aber wie ich schon schrieb: am Ende habe ich's doch über den Widerstand
eingestellt, und eine feste Spannung genügt, zur Laufzeit muss man das
nicht mehr ändern.

Ja, das Trimmpoti wäre einfacher gewesen als das Umlöten des Rs :),
hab' ich vorher nicht dran gedacht.  SMD-Trimmer habe ich aber auch
kaum vorrätig, Widerstände dagegen genügend (und großartig Platz war
nicht in der Schachtel für ein THT-Trimmpoti).

: Bearbeitet durch Moderator
von stromtuner (Gast)


Lesenswert?

mit dem 100nF und der doppeldiode am Timer2 ist "gang und gebe", 
speziell wenn die Displays an 3.3V betreiben werden sollen.

von Ghost R. (ghostrider1911)


Lesenswert?

Wow! Da sind ja einige super Vorschläge dabei.

Falls ich den MAX232 woanders auch noch brauche, werde ich die erste 
vorgeschlagene Lösung wählen / zuerst probieren, und dann mal schauen 
wie das klappt.

Ich danke euch für die zahlreichen Antworten und berichte wenn ich dazu 
gekommen bin das auszutesten!

Mfg

von Joachim B. (jar)


Lesenswert?

Thomas E. schrieb:
> Wenn's nur eine kleine negative Spannung (2V oder so...) braucht, könnte
> man vielleicht auch was mit einer Ladungspumpe (ein Kondensator, zwei
> Dioden) machen.

genauso habe ich den Kontrast am HD44xxx oder KS0066 LCD gestellt:

geht auch mit AVR und einem PWM Ausgang, der Kontrast lässt sich schön 
einstellen, man kann ja die Spannung per R und C voreinstellen und den 
PWM Bereich begrenzen.

http://www.holger-klabunde.de/dcdc/picdcdc.htm

Jörg W. schrieb:
> Stefan U. schrieb:
>> Oder etwas, wo der Benutzer die Helligkeit einstellen kann.

das macht der 2te PWM Kanal für die HG LED

: Bearbeitet durch User
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.