Hallo,
Ich habe mir aus der Bucht ein Arduino LCD-Keypad shield [0] gekauft.
Im großen und ganzen ist es ein LC-Display und ein paar Taster die über
eine Widerstandskaskade mit einem AD-Pin verbunden sind.
Die Hintergundbeleuchtung des LCD sollte über ein Transistor zwischen
der Kathode und GND dimmbar sein. Nach längerer Recherche nach dem
genauen Schaltplan habe ich herausgefunden, dass die lieben Hersteller
an der Basis dieses Transistors einen Widerstand vergessen haben. Siehe
Schaltplan im Anhang. (Bei der Beschriftung D10 ist der PWM Pin
angeschlossen) Wegen dem vergessenen Widerstand wird der Mikrocontroller
Pin wenn er auf High ist über die Basis-Emitter Diode des Transistors
kurz geschlossen.
Das hab ich festgestellt indem ich den Pin des µC als Ausgang auf high
gesetzt habe und dann wieder zurück eingelesen habe. Wenn hier nicht
high anliegt, ist der interne Spannungsabfall zu hoch -> Pin ist
kurzgeschlossen.
Hier [1] ist alles noch mal beschrieben, das ganze ist mir nicht selbst
eingefallen. Das Testprogramm finden man auf Seite 4, letzter Post.
(LCDKeypadCheck.pde.zip)
Die beste Lösung für dieses Problem wäre,an der Basis des Transistors
einen Widerstand an zu bringen, das geht aber nicht, weil über der
betreffenden Leiterbahn das LCD liegt und ich es nicht schaffe es aus zu
löten.
Anderer Lösungsvorschlag, eine Diode (mit U_f kleiner als U_f der
BE-Diode des Transtors) zwischen dem µC Pin und der Basis des
Transistors anbringen. Ich hab nur leider keine Schottky oder
Germaniumdiode herumliegen. (Ich kann an dieser Stelle auftrennen.)
Dritte Lösung: An der Betreffenden stelle eine Basis-Schaltung einbauen,
wie im zweitem Anhang skizziert. (Einen BC47 hab ich ich gefunden.)
Jetzt das eigentliche Problem: Die Methode um nach zu schauen ob der Pin
kurzgeschlossen ist oder nicht, gibt mir noch immer an, dass der Pin
kurzgeschlossen ist. Jedoch müsste die Basisschaltung ja bei High am Pin
sperren, und damit dürft kein Strom fließen, oder hab ich hier einen
Denkfehler?
lg
Ulrich
[0]
Ebay-Artikel Nr. 170928504704
[1] http://forum.arduino.cc/index.php?topic=96747.0