Negative Kontrastspannung am LCD per Atmega PWM regeln?

OP #4622726
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
#4622749
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
Moderator Persönliche Seite #4622831
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.
Angehängte Dateien:
Gast #4622848
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.
Angehängte Dateien:
Gast #4622861
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.
Moderator Persönliche Seite #4622876
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).
#4623900
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren