Forum: Mikrocontroller und Digitale Elektronik Flüssigkristallanzeige wie ansteuern


von Servo3 (Gast)


Lesenswert?

Hallo !  Habe eine alte Flüssigkristallanzeige ( ohne Prozessor . Nur 
die Anzeige  )  mit der ich experimentieren will  ( 2 x 5 Anschlüsse ) 
. Erinnere mich , daß man zum Ansteuern eine Wechselspannung vollkommen 
ohne Gleichspannungsanteil benötigt um Elektrolyse zu verhindern . 
Stimmt das ? Wie groß sind sinnvolle Werte für U und f ?
M.f.G

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Servo3 schrieb:
> Wie groß sind sinnvolle Werte für U und f ?

Ich messe hier gerade an einem Schnurlostelefon, wobei Siemens mit etwa 
+/- 1,5V ansteuert und das ganze mit etwa 30 Hz taktet.
Ich erinnere mich an eine Appliction Note von AVR, bei dem die normalen 
Portpins per Spannungsteiler auf 1/2 Vcc vorgespannt wurden und dann 
entweder als Out- oder als Input konfigurierten. Zieht man auf Low, 
sieht das LCD -0,5Vcc und bei High sinds dann +0,5Vcc. Das ganze war 
dann recht idiotensicher und minimierte das Risiko von Elektrolyse.
Das geht natürlich auch mit PICs etc. Als erstes solltest du das Glas 
auf Belegung durchklingeln, falls noch nicht geschehen und entscheiden, 
ob du Multiplexen musst. Toggeln musst du aber in jedem Fall.

von Servo3 (Gast)


Lesenswert?

Perfekt . Herzlichen Dank ! Werde die 0,5Vcc über Kondensatoren machen 
um den Gleichspannungsanteil auszuschalten .

von Michael B. (laberkopp)


Lesenswert?

Servo3 schrieb:
> Habe eine alte Flüssigkristallanzeige ( ohne Prozessor . Nur
> die Anzeige  )  mit der ich experimentieren will  ( 2 x 5 Anschlüsse )

Eventuell 3 Backplanes a 7 Segmente oder 2 Backplanes a 2 Segmente
Musst du mal mit Rechtecksignal aus einem Funktionsgenerator 
durchtesten.

> . Erinnere mich , daß man zum Ansteuern eine Wechselspannung vollkommen
> ohne Gleichspannungsanteil benötigt um Elektrolyse zu verhindern .
> Stimmt das ?

Ja.

> Wie groß sind sinnvolle Werte für U und f ?

ca. 3V (es gibt LCD für 1.5V und welche für 5V) und ca. 2-4 
Millisekunden pro Digit/Backplane.

Ohne speziellen Ansteuerchip kannst du nur

a) 1/2 bias mit 1 uC-Ausgang pro LCD-Pin

https://www.nxp.com/docs/en/application-note/AN3219.pdf

(eine etwas einfachere und stromsparendere Schaltung wäre:
1
------+                  +-----------
2
uC-Pin|-----+------------| Backplane1
3
      |     |            |
4
uC-Pin|-----(--+---------| Backplane2
5
      |     |  |         | LCD-Glas
6
uC-Pin|-----(--(--+------| Backplane3
7
      |     |  |  |      |
8
uC-Pin|-----(--(--(--+---| Backplane4
9
------+     |  |  |  |   +-----------
10
     100k   R  R  R  R   
11
            |  |  |  |
12
GND --100n--+--+--+--+
b) 1/3 bias mit 2 uC-Ausgängen pro LCD-Pin
1
------+
2
uC-Pin|--100k--+
3
      |        |
4
uC-Pin|--47k---+---|LCD Pin (jeder, nicht nur Backplanes)
5
------+
c) 1/5 bias mit 2 uC-Ausgängen pro LCD-Pin
1
              VCC
2
               |
3
             100k
4
------+        |
5
uC-Pin|--100k--+
6
      |        |
7
uC-Pin|--33k---+---|LCD Pin (jeder, nicht nur Backplanes)
8
------+        |      
9
             100k
10
               |
11
              GND
machen.

Die AVR AppNote
http://ww1.microchip.com/downloads/en/AppNotes/doc8103.pdf
funktioniert MEISTENS NICHT weil die nur 100% Spannung an das LCD gibt, 
es würden nur solche funktionieren deren threshold zufällig zwischen VCC 
und VCC/2 liegt, meistens sind LCD aber empfindlicher und alles wird 
schwarz. Man MUSS die (programmierbare, versorgungsspannungsabhängige 
und temperatureinfluesskorrigierte) Pause nach einer Segmentansteuerung 
machen.

Am einfachsten beim AVR:

Nimm dir einen Timer, z.B. Timer0. Lass ihn in 2ms rumlaufen, also bis 
256 mit Vorteiler von 8 bei 1MHz internem Takt.
Nimm den Overflow Interrupt um eine neue Phase für eine neue Backplane 
zu beginnen,
und nimm den Counter Interrupt um die Phase zu beenden und alle Pins auf 
HIGH (oder LOW, je nach Phjase) zu legen.
Nur so kannst du eine mittlere RMS Spannung bekommen, die auch mal den 
Threashold der LCD trifft.
Und nach jedem Interrupt kann er wieder in sleep gehen um Strom zu 
sparen, schliesslich sollen (und können) uC mit nacktem LCD-Glas von 
Knopfzellen jahrelang laufen.

Grob zusammenkopiert (muss also nicht funktionieren) für eine 
4-backplane LCD:
1
#define SEGMENTS 11
2
#define BACKPLANES 4
3
uint8_t phase;
4
uint8_t bp; // current backplane
5
int segbits[BACKPLANES]; // which segments are ON on a certain backplane
6
uint8_t plane;
7
uint8_t bppin[BACKPLANES]={A0,A1,A2,A3}; // backplane-pin
8
uint8_t segpin[SEGMENTS]={2,3,4,5,6,7,8,9,10,11,12}; // segment-pin
9
10
ISR (TIMER0_COMPA_vect) // timer 0 compare, clear display to reduce rms voltage
11
{
12
  for(uint8_t i=0;i<SEGMENTS;i++) digitalWrite(segpin[i],phase);
13
}
14
15
ISR (TIMER0_OVF_vect) // timer 0 overflow, setup next phase
16
{
17
  pinMode(bppin[bp],INPUT);
18
  bp+=phase;
19
  bp&=3;
20
  phase=!phase;
21
  digitalWrite(bppin[bp],phase);
22
  uint8_t i=0;
23
  for(int segs=segbits[bp];i<SEGMENTS;i++,segs>>=1) digitalWrite(segpin[i],(segs&1)^phase);
24
  pinMode(bppin[bp],OUTPUT);
25
}

: Bearbeitet durch User
von Servo3 (Gast)


Lesenswert?

Ganz herzlichen Dank

von Manfred (Gast)


Lesenswert?

Servo3 schrieb:
> Werde die 0,5Vcc über Kondensatoren machen
> um den Gleichspannungsanteil auszuschalten.

Das ist grober Unfug.

von Servo3 (Gast)


Lesenswert?

Warum ?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Servo3 schrieb:
> Warum ?

Es ist einfach unnötig und du kämpfst dann mit den Ladungen in den 
Kondensatoren. Das niemand in der LCD Welt sowas macht, sollte dir auch 
zu Denken geben. So ein LCD verhält sich auch schon in guter Näherung 
wie ein Kondensator, da hier praktisch nur umgeladen wird.
Finde jetzt erstmal raus, wie dein LCD belegt ist und mach dir dann ein 
sinnvolles Portschema für den gewählten MC. (z.B. Segmente auf einen 
Port, Backplanes auf einen anderen).

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