Sida 1 av 5

PIC och OLED

Postat: 17 januari 2008, 23:22:47
av Fredrick
Jag mäter temperaturen med en DS1820 och visar resultatet med en OLED (se bild) problemet är bara den att den visar rätt temperatur i en sekund sedan fylls hela displayen med treor ("3") och nästa sekund visar den rätt temperatur igen och så håller det på som det vore en loop.

Kör jag in "Hello World" programmet i PICen så är allt normalt, men inte med temperatur programmet och nu till det roliga.... om jag sätter mitt finger på OLED´ens Enable pin så blir allting normalt med temperatur programmet. Det är inte en dålig lödning för det spelar ingen roll på vilken av de tre anslutningarna på OLED´n som jag sätter fingret på sålänge jag sätter fingret på Enable.

Är det något som stör min OLED och som stabiliseras när jag sätter fingret på Enable?

Någon idé på vad jag kan göra åt saken, vill helst att det skall fungera utan finger? :D

Bild

Postat: 17 januari 2008, 23:31:41
av sodjan
Och vart är E kopplat ?

Postat: 17 januari 2008, 23:49:21
av Fredrick
Till PORTB.3 på en PIC16F872

OLED´n har en HD44780 kontroller krets

Postat: 18 januari 2008, 00:00:45
av peter555
Det kan inte vara så att du sätter PORTB.3 som ingång med jämna mellanrum ?

Postat: 18 januari 2008, 00:04:57
av sodjan
Programvarufel.
Lösning: Kolla programvaran... :roll:

Postat: 18 januari 2008, 00:46:57
av Fredrick
Koden är ok...

Jag kopplade in oscilloskopet men så fort jag sätter mätpinnen i mot Enable så fungerar displayen normal och det ser normalt ut, jag hinner alltså inte ansluta jord innan den fungerar??? :shock: :shock:

Postat: 18 januari 2008, 00:49:06
av peter555
Det tyder på att den är satt som ingång.

Postat: 18 januari 2008, 00:53:42
av Fredrick
Men den är inte satt som ingång.......

Postat: 18 januari 2008, 00:56:56
av peter555
Ett annat alternativ kan vara att du lägger ut för korta pulser.

Postat: 18 januari 2008, 01:07:50
av Fredrick
Har redan prövat den teorin...

Hur låga kablar kan man ha ifrån PIC´en till LCD´n och ställs det något krav på vad för kabel det skall vara?

Just nu är det vanlig flatkabel ifrån en gammal PC på 40cm

Postat: 18 januari 2008, 04:05:18
av peter555
Kabeln bör inte vara något problem, jag är 99% säker på att det är ett mjukvarufel.

Postat: 18 januari 2008, 04:32:36
av BJ
Jag hade problem med kablarna till en oled-skärm en gång. Inte så mycket som du, men lite i alla fall.
Jag hade lösa trådar till den. Det blev störningar från dataledningarna så att den skrev dubbelt ibland.
Störningarna påverkade tydligen E så att den trodde att den fick riktiga signaler.
Jag satte en ic-krets alldeles intill skärmen, och så fick styrsignalerna gå genom den. Då fungerade det.
Så dom verkar vara lite känsliga.

Postat: 18 januari 2008, 05:46:49
av Fredrick
peter555 skrev:Kabeln bör inte vara något problem, jag är 99% säker på att det är ett mjukvarufel.
Nej. tror inte det...


Kan en lösning vara att sätta ett motstånd på några megaohm mellan E och jord, för det behövs ju väldigt lite för att den skall fungera.

Postat: 18 januari 2008, 06:13:09
av Fredrick
Provade precis att dra en kort kabel direkt ifrån Enable till PORTB.3 pinnen på PIC´en och då fungerar det. har även provat att byta Enable pinne till en annan utgång för att utesluta glapp i kabel eller i någon lödning.

Detta utesluter väl mjukvarufel iallafall???

Så dessa OLED´s verkar vara mycket kännsliga. vad skall man göra för att köra med längre kabel, iallafall över 20 cm..

Kolla flanker

Postat: 18 januari 2008, 06:48:42
av Swech
Det kan ju vara inbördes förskjutning av sigalerna som spökar.
Alltså inte din längd av själva E signalen utan när den kommer i
förhållande till andra t.ex r/w ....
När du sätter på en lång kabel blir det fördröjningar och flankerna blir
lite sisådär, jordar du då med ditt finger försvinner säkert en del reflektioner
och displayen funkar igen.
Prova att justera tiderna MELLAN de olika signalerna :) lägg en paus
från det att du trixar med E tills dess att de övriga signalerna ändras...

Det kan alltså vara lömskt att signalerna kommer för fort inbördes trots att man har signaler som är flera millisekunder långa

Swech