Forum: Analoge Elektronik und Schaltungstechnik Pi-Cell Shutterdriver


von numu (Gast)


Angehängte Dateien:

Lesenswert?

Hallo!

Ich hatte einen ähnlichen Beitrag bereits im µC-Forum gepostet, wird 
aber wohl wegen Themenverfehlung nicht beantwortet worden sein, daher in 
diesem Forum nochmals die Frage. Falls dies nicht erlaubt ist, einfach 
löschen. Danke.



Nun zu meinem Anliegen, ich versuche einen Pi-Cell / OCB-Cell 
LCD-Shuttertreiber bzw. das angehängte Oszibild nachzubauen.

Es handelt sich hierbei um einen Treiber für 3D-Shutterbrillen, dh. 2 
Gläser -> ist ein Glas abgedunkelt (zb. +14V) muss das andere 
durchsichtig sein (-2V). Ich würde die Gläser gerne mit 1 kHz ansteuern.

Wie würdet ihr an die Sache herangehen?

Als blutiger Anfänger machen mir vorallem die Negativspannung und die 
synchrone Ansteuerung der beiden Gläser zu schaffen.

Danke
numu


Pi-Technologie erklärt:
http://www.liquidcrystaltechnologies.com/tech_supp...

3D-Gläser reverse-engineered:
http://www.mtbs3d.com/phpBB/viewtopic.php?f=26&t=10169
Bilder kommen von diesem Forumsbeitrag (c)Petrus

Post im µC-Forum:
Beitrag "Pi-Cell / OCB-Cell Treiber -> Oszibild nachbauen"

von Max D. (max_d)


Lesenswert?

AFAIK werden LCDs mit DC-freier Wechselspannung angesteuert. Bist du dir 
sicher, dass deine Werte so stimmen?

von numu (Gast)


Lesenswert?

Laut dem MTBS-Forumpost sollte das so passen.
Wenn es Wechselspannung wäre, dann würde der Shutter ja faden (oder?).

von Mark W. (kram) Benutzerseite


Lesenswert?

Ich habe keine Ahnung von diesen Brillen, aber selber machen ist immer 
einfacher als kopieren. :-)
Geht es darum, die Spannung auf dem Bild zu erzeugen? Muessen die Level 
einstellbar sein? Wenn das bei A die Nullinie ist, sehe ich da eine 
Wechselspannung. Sowas kann man generieren.

von numu (Gast)


Lesenswert?

Mark W. schrieb:
> Ich habe keine Ahnung von diesen Brillen, aber selber machen ist
> immer
> einfacher als kopieren. :-)
> Geht es darum, die Spannung auf dem Bild zu erzeugen? Muessen die Level
> einstellbar sein? Wenn das bei A die Nullinie ist, sehe ich da eine
> Wechselspannung. Sowas kann man generieren.

:) in dem Fall ist es eine Wechselspannung (tut mir Leid, wie gesagt.. 
blutiger Anfänger).

Genau. Würde gerne dieses Bild erzeugen. Es wäre natürlich sehr fein 
wenn man die Level noch verschieben könnte, da bei höherer Spannung die 
Abdunkelung noch stärker wird, muss aber nicht sein. Bin froh wenn es 
ich es überhaupt zum laufen kriege.
Wichtig ist jedoch, dass ich dieses Signalbild nicht nur einmal 
produziere. Brauche zwei und um eine Phase verschoben (das eine Glas 
durchsichtig - das andere schwarz dann viceversa).

Im anderen Beitrag hatte ich meinen Ansatz gepostet, hier nochmal:
Arduino liefert ein 5V Rechteck-Signal
16V werden einmal mit einem Buck-Boost-converter auf 14V-xV und einmal 
mit einem
Cuk-converter auf -2V transformiert - Ground wird mit dem Arduino
verbunden.
die 14V und -2V gehen an eine H-Brücke, die ebenfalls mit dem Arduino
angesteuert wird.
Mit dem Ausgang der H-Brücke wird dann ein OpAmp versorgt.. und dieser
OpAmp bekommt das 5V/1kHz Signal vom Arduino - Der Ausgang des OpAmps
versorgt dann ein LCD-Shutter-Glas.
Für das versetzte Signal - wird das 5V Signal zum OpAmp am
invertierenden anstatt dem nicht-invertierenden Eingang angelegt.

Aber da ich hier bei der H-Brücke ein Signal brauche das EXAKT  halb so 
schnell osziliert wie das ~1kHz Signal des Arduinos habe ich die 
Befürchtung, dass dies alles viel zu instabil ist.

Danke für Eure Antworten Mark und Max!

von Mark W. (kram) Benutzerseite


Lesenswert?

numu schrieb:
> Arduino liefert ein 5V Rechteck-Signal...

Na dann lass doch den Arduino gleich das signal generieren. Hat der 
DAC's? Eventuell musst Du das Signal dann noch verstärken, das wars 
dann.

von Kundendienst (Gast)


Lesenswert?

numu schrieb:
> Wie würdet ihr an die Sache herangehen?
Zu Fuß.

Ich hoffe, ich konnte Ihnen weiterhelfen.

von Torsten W. (wirehead)


Lesenswert?

Kann man die LCD Zellen nicht einfach mit einem Signal ansteuern und die 
Dinger einfach mit unterschiedlicher polarität anschließen?

von numu (Gast)


Angehängte Dateien:

Lesenswert?

Danke für eure Antworten!

Torsten W. schrieb:
> Kann man die LCD Zellen nicht einfach mit einem Signal ansteuern
> und die
> Dinger einfach mit unterschiedlicher polarität anschließen?

Dieses Oszibild ist für ein Glas gedacht, nicht für beide.
Ich muss aber ehrlicherweise zugeben, dass ich noch nicht versucht habe 
nur ein +14V / -2V Signal an das Glas zu schicken...

Mark W. schrieb:
> Na dann lass doch den Arduino gleich das signal generieren. Hat der
> DAC's? Eventuell musst Du das Signal dann noch verstärken, das wars
> dann.

Sehr gute Idee, Danke! Habe mir gestern sofort zwei DAC-Breakoutboards 
für den Arduino gecheckt.
Das Signal bekomme ich sauber heraus, nur leider ist ein Delay von 425µs 
zwischen den zwei Signalen (sie sollten um eine Periode versetzt sein, 
überlappen aber) --> siehe Anhang.

Ich habe mit DelayMicroseconds herumgespielt, ändert aber gar nichts.. 
verringert nur die Frequenz und die ist mir eh schon fast zu knapp 
bemessen.

Habt ihr eine Idee?


Code:
1
int lookup1 = 0;
2
int lookup2 = 0;
3
4
int sigtab1[8] = 
5
{
6
  4095, 1756, 0000, 2340, 4095, 1756, 0000, 2340
7
};
8
9
int sigtab2[8] = 
10
{
11
  1756, 0000, 2340, 4095, 1756, 0000, 2340, 4095
12
};
13
14
void setup()
15
{
16
  Wire.begin();
17
18
  // Set A2 and A3 as Outputs to make them our GND and Vcc,
19
  // which will power the MCP4725
20
  pinMode(A2, OUTPUT);
21
  pinMode(A3, OUTPUT);
22
23
  digitalWrite(A2, LOW);          //Set A2 as GND
24
  digitalWrite(A3, HIGH);         //Set A3 as Vcc
25
}
26
//---------------------------------------------------
27
void loop()
28
{
29
  Wire.beginTransmission(MCP4725_ADDR1);
30
  Wire.write(64);                       // cmd to update the DAC
31
  Wire.write(sigtab1[lookup1] >> 4);         // the 8 most significant bits...
32
  Wire.write((sigtab1[lookup1] & 15) << 4);  // the 4 least significant bits...
33
  Wire.endTransmission();
34
  
35
  Wire.beginTransmission(MCP4725_ADDR2);
36
  Wire.write(64);                       // cmd to update the DAC
37
  Wire.write(sigtab2[lookup2] >> 4);         // the 8 most significant bits...
38
  Wire.write((sigtab2[lookup2] & 15) << 4);  // the 4 least significant bits...
39
  Wire.endTransmission();
40
  
41
  lookup1 = (lookup1 + 1) & 7;
42
  lookup2 = (lookup2 + 1) & 7;
43
}

von numu (Gast)


Angehängte Dateien:

Lesenswert?

Das Problem mit der Verzögerung werde ich wohl nicht lösen können, I2C 
zwei Slaves.. eh klar.

Habe nun das Ganze per PWM und einem simplen RC-LowPassFilter 
zusammengestöpselt und es sieht für den Anfang gar nicht mal so schlecht 
aus. Jetzt nur noch eine gute aktive Filterarchitektur dran :)

Danke nochmals! Manchmal brauchts nur ein Schlagwort und dann gehts eh 
weiter, auch über Umwege ;)

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.