Hallo, wie kann ich mit einem PIC die Spannungsversorgung eines LCD-Displays schalten? Vor Sleep-Modus soll das Display abgeschaltet, nach dem Aufwachen eingeschaltet werden. Habe direkt über die Ports versucht, funktioniert aber leider nicht, das Display zeigt ein unvorhersagbares Verhalten. Mal gehts, mal nicht. Hat das schonmal jemand gemacht und kann eventuell einen Schaltplan hochladen? Wäre es mit MOSFET machbar, oder was würdet ihr empfehlen? Wünsche ein frohes Fest! Kostja
Kostia G. schrieb: > Mal gehts, mal nicht. Hast Du auch die Ansteuersignale (DB0-DB7,CS,RW) mit "0" vor dem Sleep initialisiert? oder Versorgt sich das Display aus den Datenleitungen? Gruß Anja
nein, die Datenleitungen hab ich nicht auf Null gesetzt. Ich muß gestehen, dass ich die nicht mal als Ausgänge initialisiert habe. Hab ich schlichtweg vergessen. Es funktioniert mit Versordung über den Spannungswandler aber einwandfrei. Nur wenn ich ich die Versorgung über den Pin laufen lasse geht es nicht richtig. Und ja, das Poti hängt auch am Pin.
Die Ausgänge werden in der lcd_init gesetzt. Die Versorgung erfolgt separat über die Standardanschlüsse. Werde morgen gleich mal das mit den Datenleitungen versuchen. Danke!
Du kannst das Display auch über einen Ausgangspin des PICs versorgen. Dieser wird im Sleep auf Tristate gesetzt. Das Display braucht ja nur ein paar mA ohne Beleuchtung. Mosfet wäre die andere Möglichkeit
So ich hab jetzt mal alle drei Eingänge des Displays separat an jeweils einen Ausgang gehangen. Vdd an RC6, LDA an RC5 und Vo an RC4. Das Problem ist jetzt, das RC6 mit Vdd nicht auf 5V schaltet wenn das Display dranhängt. Nur wenn Vdd nicht dranhängt geht es. Bei Vo und LDA klappt es problemlos. Woran könnte das liegen?
1 | PORTDbits.RD0 = 0; //Datenleitungen |
2 | PORTDbits.RD0 = 0; |
3 | PORTDbits.RD0 = 0; |
4 | PORTDbits.RD0 = 0; |
5 | |
6 | PORTAbits.RA1 = 0; //Steuerleitungen |
7 | PORTAbits.RA2 = 0; |
8 | PORTAbits.RA3 = 0; |
9 | |
10 | PORTCbits.RC4 = 0; //Vo |
11 | PORTCbits.RC5 = 0; //LEDA |
12 | PORTCbits.RC6 = 0; //Vdd |
13 | |
14 | Sleep(); |
15 | |
16 | _asm
|
17 | NOP
|
18 | NOP
|
19 | NOP
|
20 | NOP
|
21 | _endasm
|
22 | |
23 | |
24 | PORTCbits.RC6 = 1; |
25 | PORTCbits.RC5 = 1; |
26 | PORTCbits.RC4 = 1; |
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.