Forum: Mikrocontroller und Digitale Elektronik PIC 16F876 LCD Display ansteuern


von Flat K. (flat)


Angehängte Dateien:

Lesenswert?

Hi Leute,

hab nach langer Überlegung für eine einfache Spannungsmessung  mich für 
einen PIC 16F876 entschieden. Da die Spannungsmessung auch auf dem LCD 
angezeigt werden soll eignet sich dieser Mikrocontroller besonders gut.

Doch nun zu meinem Problem, ich Versuche schon seit einigen Tagen das
LC- Display ( 2 X 16 ) mit dem PIC anzusteuern, doch es zeigt nichts an, 
damit meine ich, die erste Zeile zeigt schwarze Balken und die zweite 
Zeile nichts. Ich hab schon mehrmals überprüft ob alles richtig 
angschlossen ist und es ist alles in Ordnung.
Ich vermute es ist irgendetwas mit dem Programm nicht in Ordnung.
Ich benutze den 'mikroPascal Pro for PIC' Compiler dieser erzeugt mir 
einen assembler File und ein hex file. Das Hex File brenne ich mit 
meinem selbgebauten Brenner von der Sprut Seite 'PIC Brenner 8'. Habe 
schon anderen PIC's damit gebrannt und es funktionierte alles in 
Ordnung.

Ich benutze nicht wie im Schaltbild einen 4MHz Quarz
sondern einen 7,68 MHz Quarz. Hat das einen Einfluss darauf oder ist das 
egal??

Es soll auf dem Display 2 Spannungswerte angezeigt werden, Diese 
Spannungswerte werden dann im Programm in Temperaturwerde umgewandelt

3V = 300°C
2,5V = 250°C

zB.:      SOLL     IST
          300°C    250°C

Hier der Quelltext:
1
// Autor: Flat
2
// Projekt: Temperaturregelung bis 300°C
3
4
program LCD;
5
6
var ad0 :word;
7
    ad1 :word;
8
    sum :real;
9
    sum1:string[23];
10
    sum2:real;
11
    sum3:string[23];
12
    
13
    LCD_RS : sbit at RB2_bit;
14
    LCD_EN : sbit at RB3_bit;
15
    LCD_D4 : sbit at RB4_bit;
16
    LCD_D5 : sbit at RB5_bit;
17
    LCD_D6 : sbit at RB6_bit;
18
    LCD_D7 : sbit at RB7_bit;
19
    
20
    LCD_RS_Direction : sbit at TRISB2_bit;
21
    LCD_EN_Direction : sbit at TRISB3_bit;
22
    LCD_D4_Direction : sbit at TRISB4_bit;
23
    LCD_D5_Direction : sbit at TRISB5_bit;
24
    LCD_D6_Direction : sbit at TRISB6_bit;
25
    LCD_D7_Direction : sbit at TRISB7_bit;
26
27
begin
28
29
     ADCON1 :=4;
30
     TRISA  :=1;
31
     TRISB  :=0;
32
     TRISC  :=0;
33
     PORTB := 0xFF;
34
     TRISB := 0xFF;
35
36
     Lcd_Init();
37
     Lcd_CMD(_LCD_CURSOR_OFF);
38
39
     LCD_Out(1,1,'Temp Regelung');
40
     LCD_OUT(2,1,'bis 300°C');
41
     Delay_ms(2000);
42
     Lcd_Cmd(_Lcd_Clear);
43
44
     while TRUE do
45
46
47
     LCD_Cmd(_Lcd_Clear);
48
     Lcd_Out(1,1,'SOLL-Temp.:');
49
     Lcd_Out(2,1,'IST-Temp.:');
50
51
       repeat
52
     
53
           ad0 := Adc_Read(0);
54
           ad1 := Adc_Read(1);
55
           sum := (ad0 * 100)/1023;
56
           sum2:= (ad1 * 100)/1023;
57
           FloatToStr(sum,sum1);
58
           FloatToStr(sum2,sum3);
59
           Lcd_Out(1,5,sum1);
60
           Lcd_Out(2,5,sum3);
61
    
62
        until false
63
64
end.

Ich lade euch die Sachen hoch, vielleicht könnt ihr mir weiter helfen.
Ich danke schonmal im Voraus.

Gruss

flat

von Flat K. (flat)


Lesenswert?

Hi,

ich bins nochmal.
Kann mir den keiner helfen??
Ich weiß die Lösung ist trivial aber irgendwie krieg ich es nicht 
gebacken

Gruss

flat

von sf1 (Gast)


Lesenswert?

Hallo flat,

der Oszillator schwingt nicht. Schalte an OSC1 und OSC2 jeweils einen 
Kondensator 20pF gegen Masse (siehe Datenblatt).
Ich kenne mich mit mikroPascal nicht gut aus, aber das Programm könnte 
so laufen.

P.S.
TRISC  :=0; PORTB := 0xFF; kann entfallen


Gruß
sf1

von Flat K. (flat)


Lesenswert?

Hi sf1,

es lag an den Kondensatoren, ich weiß nicht woran es lag aber nachdem 
ich sie ausgetauscht habe geht es jetzt, doch nicht mit meinem Programm 
sondern mit dem Programm von der Sprut Seite.

Kann mir einer vielleicht sagen warum es nicht mit diesem Programm geht.
Habe Beispiele in Youtube gesehen mit denenen es funktioniert hat, doch 
bei mir funkt es nicht.

Die Frage geht an die mikroPascal Experten, help please .....

Gruss

Flat

von Flat K. (flat)


Lesenswert?

Hi,

hat einer vielleicht ein C Programm für den Pic Typen womit ich zwei 
Analoge Spannungen Messen und am Display anzeigen kann.
Wäre sehr dankbar, wenn ihr mir sowas hochladen könntet

Gruss
flat

von Stefan (Gast)


Lesenswert?

Zeig mal die Fuse.

von ich (Gast)


Lesenswert?

Flat K. schrieb:
> es lag an den Kondensatoren, ich weiß nicht woran es lag aber...

Schöner Satz ;)

Flat K. schrieb:
> TRISB  :=0;
> TRISC  :=0;
> PORTB := 0xFF;
> TRISB := 0xFF;

Ansich sollte es nicht daran liegen, aber zuerst machst du TRISB auf 0 
und danach auf FF... Vergessen in PORTB zu ändern?

Flat K. schrieb:
> Lcd_Out(1,5,sum1);
> Lcd_Out(2,5,sum3);

Daran sollte es auch nicht liegen, aber sollen die Werte nicht ab Spalte 
12 oder sogar 13 (mit Leerzeichen nach dem Doppelpunkt) angezeigt 
werden?


Hast du mal Probiert einfach einen Text anzuzeigen?
Oder weißt du welcher Teil nicht funktioniert (ADC oder LCD)?

Ich taste mich meistens an mein Ziel und teste somit das Layout/den 
Aufbau und das Programm. Also in deinem Fall ein Simples Programm, dass 
2 Zeilen beschreibt. Wenn das geht, kommt der AD-Wandler, dessen Werte 
aufs Display geschrieben werden. Das kann man gleich mit der Berechnung 
machen, oder ohne.

von ich (Gast)


Lesenswert?

Ich hab ansich nichts mit Pascal zutun, aber das "while TRUE do" so 
alleine sieht komisch aus. Kann das sein, dass das sowas ist, wie 
"while(1);" in C? Das wäre dann eine Endlosschleife auf der Stelle und 
er würde nichts machen bzw nicht im Programm weiter gehen. Google sagt, 
dass in Pascal nach while 'condition' do ein gebin und end kommt. Bei 
dir aber nicht.

von Manfred G. (magroma)


Lesenswert?

Hallo,

versuch es doch mal mit dieser Software 
[http://gcbasic.sourceforge.net/].
Ich benutze GCGB schon einige Zeit erfolgreich. Da werden fast alle Pic 
und auch welche von  Atmel AVR unterstützt.
Die fertigen Routinen für AD Wandler und PWM sowie Augabe auf LCD 
Display vereinfachen das Programieren erheblich und man muß sich nicht 
mit Assembler rumschlagen. Der erzeugte Hexcode kann dann mit Sprut 8 
gebrannt werden. Und es läuft (wenn das Programm richtig war). Die 
Datenblätter der Pic sollte man immer lesen. Schon die Innenbeschaltung 
der Ports ist sehr unterschiedlich und hilft bei Denkfehlern weiter.
Einfach mal anschauen.

Gruß Manfred

von Flat K. (flat)


Lesenswert?

HI,

Danke für euren Feedback.
Ich hab es jetzt entlich geschafft einen Text anzuzeigen.
Die größte Hürde ist schonmal geschafft :).
Doch nun geht es weiter.

@ ich

du hast recht mit dem begin, das hab ich extra weggelassen mit der 
Hoffnung das er das compilieren tut, denn wenn ich es rein schreibe sagt 
der mikropascal compiler zumir, das das demo limit erreicht ist und ohne 
zeigt der mir nichts im Display an.

Also an euch wieder, kann man das Programm irgendwie noch weiter 
verkleinern sodass man das kompilieren kann oder geht da nix mehr.
Oder kennt ihr ein anderes Programm womit man das kompilieren kann.

Gruss
Flat

von Flat K. (flat)


Lesenswert?

hab das Programm soweit ferig, nur das der ADC mir falsche Werte für 
jeweilige Spannung liefert.

z.B. bei 1V zeigt es mir 000021

es soll bei 3V am Eingang 300 am Display zeigen. Eine Stelle hinter dem 
Komma wäre auch nicht schlecht aber muss nicht sein.

Kann mir vielleicht einer Helfen das in die Reihe zu bekommen
1
// Projekt: Temperaturregelung bis 300°C
2
3
program lcdneuerVersuch;
4
5
var ad0 : word;
6
    ad1 : word;
7
    sum :real;
8
    sum1 :real;
9
    sum2:string[10];
10
    sum3:string[10];
11
12
    LCD_RS : sbit at RB2_bit;
13
    LCD_EN : sbit at RB0_bit;
14
    LCD_D4 : sbit at RB4_bit;
15
    LCD_D5 : sbit at RB5_bit;
16
    LCD_D6 : sbit at RB6_bit;
17
    LCD_D7 : sbit at RB7_bit;
18
19
    LCD_RS_Direction : sbit at TRISB2_bit;
20
    LCD_EN_Direction : sbit at TRISB0_bit;
21
    LCD_D4_Direction : sbit at TRISB4_bit;
22
    LCD_D5_Direction : sbit at TRISB5_bit;
23
    LCD_D6_Direction : sbit at TRISB6_bit;
24
    LCD_D7_Direction : sbit at TRISB7_bit;
25
26
begin
27
28
     ADCON1 :=4;
29
     TRISA  :=255;
30
     TRISB  :=0;
31
     TRISC  :=0;
32
33
     Lcd_Init();
34
     Lcd_CMD(_LCD_CURSOR_OFF);
35
     Lcd_Out(1,1,'Temp.-Regelung');
36
     Lcd_Out(2,1,'bis 300°C @Ali K');
37
     Delay_ms(2000);
38
     Lcd_Cmd(_Lcd_Clear);
39
40
       while TRUE do
41
42
     begin
43
44
     LCD_Cmd(_Lcd_Clear);
45
     Lcd_Out(1,1,'SOLL:');
46
     Lcd_Out(2,1,'IST:');
47
48
           repeat
49
50
           ad0 := Adc_Read(0);
51
           ad1 := Adc_Read(1);
52
           sum := (ad0 * 100)/1023;
53
           sum1:= (ad1 * 100)/1023;
54
           IntToStrWithZeros(sum,sum2);
55
           IntToStrWithZeros(sum1,sum3);
56
           Lcd_Out(1,7,sum2);
57
           Lcd_Out(2,7,sum3);
58
           until false
59
60
end;
61
end.

Wenn ich FloatToStr benutze sagt das Programm das das eine Demo Version 
ist und es Kompiliert nicht.

Bin in Sachen Programmieren ein Noop, deswegen habt verständnis.
Danke.

Gruss
flat

von Stefan (Gast)


Lesenswert?

So kannst du nicht rechnen. 5Volt entsprechen einen Digitalemwert
von 1023. 2,5Volt sind 500 und 3 Vollt 600. Schau dir mal in den
Demos die Temperaturateuerrung an, wie die da rechnen.

von Stefan (Gast)


Lesenswert?

Du könntest dann natürlich durch 2 teilen. Aber du sagtest ja das
du an die Demo kommst wenn du einen anderen Variablentyp nimmst.
Probier es mal aus.

von Flat K. (flat)


Lesenswert?

Danke für deine Antwort aber habs jetzt doch alleine geschafft
:) Freu :)

Statt FloatToStr habe ich jetzt WordToStr benutzt
und da der PIC die Versorgungsspannung als Referenzspannung benutzt
muss man bei der Rechnung mit 500 multiplizieren. Und man bekommt bei 3V
am Eingang 300.

So da ich jetzt soweit gekommen bin, wollte ich jetzt noch ein gimmik 
reinbauen, sowas wie eine Lade Balkenanzeige, dass der Pic erst mal Warm 
wird und mir dann die Analogwerte ausspuckt.

Kann mir vielleicht einer einen quellcode zukommen lassen, wie man sowas 
realisiert, hab im Internet mich umgeschaut aber nichts gefunden was bei 
mir passt. Wäre nett wenn ihr sowas rein posten würdet.

Danke nochmals

Viele Grüsse
Flat

von ich (Gast)


Lesenswert?

Flat K. schrieb:
> denn wenn ich es rein schreibe sagt
> der mikropascal compiler zumir, das das demo limit erreicht ist und ohne
> zeigt der mir nichts im Display an.

Das ist aber seltsam, denn das Programm ist, so wie es hier steht, 
winzig. Der C-Compiler mikroC hat eine Beschrenkung auf 2KB, die 
erreichst du damit ansich nicht. Hast du die aktuelle Version vom 
Compiler??


Flat K. schrieb:
> So da ich jetzt soweit gekommen bin, wollte ich jetzt noch ein gimmik
> reinbauen, sowas wie eine Lade Balkenanzeige, dass der Pic erst mal Warm
> wird und mir dann die Analogwerte ausspuckt.

Ansich musst du da nur eine Schleife aufrufen, in der jede x 
Millisekunden ein Balkenteil dazu kommt. Wenn das letzte Teil da ist, 
wechselst du in den normalen Betrieb... Du weißt aber schon, dass ein 
PIC nicht warm werden sollte. Zumindest nicht so ein PIC und auch nicht 
bei so einer Pille-Palle-Anwendung ;) Damit wäre es halt was fürs Auge, 
aber Sinnvoll ist es nicht^^

von Flat K. (flat)


Lesenswert?

ich weiß das der Pic nicht warm werden sollte aber ist ja nur just for 
fun,
dass man das mit schliefen realisiert ist mir auch schon klar nur wie 
bekomme ich die balken auf dem display angezeigt.

Gruss
flat

von ich (Gast)


Lesenswert?

Du kannst im DB vom LCD gucken, ob es ein Zeichen gibt, dass jeden Pixel 
ausfüllt und davon machst du dann 10 hintereinander. Oder du benutzt das 
LCD-Tool von mikroElektronika, mit dem du selbsterstellte Zeichen machen 
kannst.

von Flat K. (flat)


Lesenswert?

achso cool das wusste ich nicht
okey danke werde mich mal dann an die arbeit machen

Gruss
flat

von Flat K. (flat)


Lesenswert?

Hallo,

das mit dem Gimmick hab ich jetzt doch weggelassen, da ich eingesehen 
habe das es doch nichts bringt und nur ein haufen arbeit ist.

Ich wollte nochmal auf was anderes kommen, mein PIC macht das was ich 
möchte im großen und ganzen, es zeigt mir bei einer Spannungsquelle von 
5V VDD(Betriebsspannung) genau diese 300 an wenn es am Eingang auch 3V 
anliegen,
doch wenn die Spannung von einem Spannungsregler 7805 kommt das nicht 
ganz Präzise ist, habs schon gemessen es sind 5,04V , dann zeigt der mir 
bei einer Eingangsspannung von 3V nur 296 an .

Ich weiß jetzt sagt ihr bestimmt dann muss du das halt mit 504 
multiplizieren bei der Berechnung, aber das habe ich gemacht dann kommt 
zwar bei 300 auch 300 raus doch bei sagen wir 100 kommt dann nicht 100 
sonder wieder was anderes raus.

Ich weiß das ist ein bisschen Tricky, aber wie kann man den Fehler 
korrigieren. Also an eine anderen präziseren Spannungsregler habe ich 
auch schon gedacht doch ich möchte jetzt nichts großartiges an der 
Harware ändern.
Kann man das irgendwie Software technisch realisieren??

Danke schonmal für euere Antworten

Gruss
flat

von Flat K. (flat)


Lesenswert?

kann mir denn keiner Helfen?? :(

von ich (Gast)


Lesenswert?

Also Hardwareseitig könntest du eine hochgenaue Spannungsreferenz 
anschließen, was ansich ne gute Lösung ist. Ansonsten könntest du das 
Ding kalibrieren. D.h. du schließt einmal Masse an und einmal 3V. Dann 
hast du 2 Punkte und kannst dir den Rest errechnen.

Angenommen, wenn du Masse anschließt ist ein Wert von 1 im ADC und bei 
3V hast du 615. Also hättest du ((ADC-Wert - 1) / (615 - 1) ) * 3V.

Ist der Wert also 615, deine 3V, hast du 614/614 = 1 * 3V. Hast du die 
Hälfte, also die Mitte von 615 und 1 -> 308, sind das 307/614 = 0,5 * 3V 
= 1,5V.

Somit kannst du auch, wenn Masse den Wert 100 hat und 3V den Wert 200, 
errechnen, was Anliegt. Genau mit der gleichen Rechnung.

((ADC-Wert - 100) / (200 - 100) ) * 3V. -> Mit dem Wert 150 hast du also 
50/100 = 0,5 * 3V = 1,5V

Oder, wenn du mehr als 3V hast -> Angenommener Wert 256, dann ist deine 
Rechnung 156/100 = 1,56 * 3V = 4,68V.

Also Allgemein:
(("aktueller ADC-Wert" - "Untergrenze ADC-Wert") / ("wählbarer Punkt 
ADC-Wert" - "Untergrenze ADC-Wert")) * "wählbarer Punkt Messwert".

Dazu musst du halt 2 feste, genaue Punkte kalibrieren und deren Wert 
speichern.

Die Frage ist nur, wie stabil die Eingangsspannung ist und wie konstant 
die Ungenauigkeit ist. Es nützt nichts, den Fehler rauszurechnen, wenn 
aber deine 5V schwanken und du immer andere Werte bekommst. Daher würde 
ich raten, doch Hardwaremäßig und evtl. auch Layouttechnisch genauer und 
störungsfreier/-unempflindlicher zu werden. Auch doof ist, wenn die 5V 
Stromabhängig sind. Dann schaltest du z.B. ein Relais an oder eine LED 
und die 5,004V gehen auf 5,001V runter. Kannst ja mal im Datenblatt 
deines Reglers gucken.

von Flat K. (flat)


Lesenswert?

Danke für deine Antwort.
Du hast recht, ich muss doch einen anderen Regler nehmen, dieser hier 
schwankt zu viel.
Kannst du mir einen günstigen empfehlen der Hochkonstant ist und 5V 
ausgibt?

Bin bei Einkaufen von neuen Bauteilen sehr schludrig, also kaufe immer 
das falsche ein :(

Hab noch ne frage, also bei dem Übergang vom Wer am LCD Display schwankt 
der Wert sehr wenn es z.B. von 100 auf 101 übergeht.
Kann man diesen Übergang flüssiger gestalten.
Ich weis, dass das was mit der Auflösung zu tun hat, aber der Controller 
hat nur 10 Bit.
Kann man das irgendiwe programmieren, das der Übergang nicht schwankt?

von ich (Gast)


Lesenswert?

Ich hätte noch nen anderen Vorschlag. Du kannst z.b. den LT 1029 CZ 
(http://www.reichelt.de/ICs-LT-LTC-/LT-1029-CZ/index.html?ACTION=3&GROUPID=2913&ARTICLE=10871&SHOW=1&START=0&OFFSET=500&;PROVID=2402)
nehmen. Das ist eine 5V Referenz. Die kann/soll/will man nicht belasten, 
dadurch ist sie aber auch gleich genauer. Der PIC hat einen 
Extra-Anschluss für die Vref. Der LT 1029 hat eine Genauigkeit von 0,2% 
-> bei 5V sind das also 10mV. Du kannst dir den/so einen auch als 3,3V 
Version holen. Dann musst du aber aufpassen, dass auch nicht mehr in den 
AD-WAndler geht. Da musst du gucken, wieviel mehr der aushält. Aber bei 
3,3V Referenz und 0,2% -> 6,6mV Genauigkeit.

ABER (es gibt doch immer ein Aber):
-Dein Temp-Sensor wird eine Toleranz bzw Genauigkeit haben
-Der AD-Wandler hat auch einen Fehler (1-3 LSB also kann bei berechneten 
Wert 500 auch 503 kommen).

Dir bringt es also nichts, wenn du auf 1µV genau messen könntest, dein 
Temperatursensor aber total ungenau ist. Ein ungenaues Signal hochgenau 
gemessen ist immernoch ungenau;) -> Fehlerfortpflanzung. Dennoch würde 
ich eine Referenz nehmen, denn dann ist der Fehler durch die Stromquelle 
schonmal weg. Auf die beiden oben genannten hast du ja keinen Einfluss.

Bei einer Differenz von 500 zu 505(mal angenommen), ist das ein 
Unterschied von ((5V/1024)*5) von 0,0244140625V -> ca. 2,4°C.. Das mag 
viel klingen, doch bei messbaren 500°C sind das 0,48% Genauigkeit.
Das gleiche bei 3,3V Referenz: ((3,3V/1024)*5) -> 0,01611328125V -> ca. 
1,6°C. Das sind bei messbaren 330°C (is weniger) aber immernoch 0,48% 
Genauigkeit. Also heißt: Kleinerer Messbereich -> Bessere Auflösung aber 
prozentual gleiche Genauigkeit.

Ich kenne jetzt nicht deine Anwendung, aber wenn du eine Temperatur 
kontrollieren willst, die zwischen 280°C und 320°C (also 300°C+-20°C) 
sein muss/soll, kannst du auch mit ein paar OPs den Bereich selektieren. 
So dass 280°C = 0V und 320°C = 5V sind. Dann hast du nämlich eine 
theoretische Genauigkeit von 0,039°C. Dann könntest du auch prüfen, wenn 
die Temperatur unter 280°C ist, soll ein High-Signal an einen Eingang 
gehen und wenn die Temperatur über 320°C sind, soll ein High-Signal an 
einen anderen Eingang gehen. Da dann nur nicht vergessen, die Eingänge 
(Digital UND Analog) gegen Über- und Unterspannung zu schützen.
Wenn das nicht deine Anwendung ist, kannste das natürlich vergessen ;) 
Du könntest dann aber Verraten, was genau du messen willst, also ein 
paar Infos. Vielleicht weiß jemand dann noch ein paar Kniffe oder hat 
Tipps.

von ich (Gast)


Lesenswert?

Noch schnell hinterher:
Eine genauere Referenz: 
http://www.reichelt.de/ICs-AD-BUF-/AD-586-JN/index.html?ACTION=3&GROUPID=2909&ARTICLE=3821&SHOW=1&START=0&OFFSET=500&;PROVID=2402

Dennoch sei gesagt, du kannst eine Ideale Referenzspannung haben, deine 
Fehler von ADC und Sensor bleiben. Zudem, 2mV sind schon nicht soo 
schlecht, aber denk auch dran, dass deine Leiterbahnen kleine Antennchen 
sind ;) Die holst dir also auch Spannungen von außen rein. Damit kenne 
ich mich nich so gut aus, aber ein paar milliVolt sind da bestimmt 
möglich.

Was ich noch gesehen habe. An jedem µC gehört ein Kondensator an die 
Spannungsversorgung. Du hast nur einen an deinem Regler (vor dem Regler 
sollte auch noch einer sein). Den Kondensator dann auch in µC-Nähe 
plazieren.

Wenn du das mit den OPs machst (selektieren), denk dran, dass deine OPs 
auch Fehler und unlinearitäten haben. Doch da wirkt sich so eine 
Ungenauigkeit nicht soo aus.. wenn du mit 0,5°C anzeigen willst, 
brauchst du 1,25% Genauigkeit, was machbar sein sollte.

von Flat K. (flat)


Lesenswert?

Hmm da steckt ja viel Arbeit drin,
ich glaube ich lass es so, ob es jetzt 1 °C mehr oder weniger einzeigt 
sei es drum.

Aber die zweite Frage würde mich noch interessieren, ob der Übergang 
zwischen den Werten flüssger ist, hab sowas schon auf youtube gesehen 
aber bei mir geht es nicht, liegt es am LCD Display??
Ist aus China :)
Oder muss ich bei der Programmierung noch was einfügen, z.B bei der 
Berechnung??

Danke nochmals für deine ausführlichen Antworten, wenn ich Zeit hätte 
würde ich es so machen, aber bald ist der Abgabetermin da.

von ich (Gast)


Lesenswert?

hmm.. Ich weiß nich was du meinst. Meinst du, dass es nicht von 200,3 
auf 201,1 springen soll, sondern quasi jeden Zwischenwert einmal kurz 
einzeigen soll?

Das Video wär mal interessant zu sehen.

von Flat K. (flat)


Lesenswert?

So soll das sein :
Hier sieht man das der Übergang z.B 6 > 7 > 8 >9 > 10 flüssiger ist.
Ab der 1:06 min laufen lassen

[[http://www.youtube.com/watch?v=zFPFE-3VSRc]]

Hab jetzt kein Video gefunden, wo es das gleich wie bei mir ist.
Ich erläutere es mal so. Es sieht beim übergang z.B. von 8 auf 9 etwas 
durchsichtig und wenn es genau 9°C ist dann normal.
Meine Frage kann man diesen Übergang flüssiger machen wie auf dem Video 
??

Oder woran kann das liegen??

Hoffe ihr habt mich verstanden, ich weiß sonst nicht wie ich es anders 
erklären soll :)

von ich (Gast)


Lesenswert?

Hmm... Vielleicht über PWM. Dass die 1 in die 2 übergefadet wird. Ich 
weiß aber nicht, in wie fern du dir das zutraust. Siehe LED-Fading bei 
dem LED Arikel

von Jens (Gast)


Lesenswert?

Mir fallen folgende Punkte auf:
Der Kontrast-Pin C: muss da nicht 0-1V über Poti ran, bei anderen 
Displays brauchen negative Spannung. Steht den in der Anleitung deines 
Displays das da +5Volt drauf müssen?

RW_Pin: ist es richtig das der RW_Pin fest auf +5V kommen? Du willst 
also das Display nur mit dem PIC auslesen und nichts auf das Dispaly 
schreiben?

Backligth: Hier sind ein oder mehrer LEDs geschaltet, sicher hast Du 
schon mal was davon gehört das man LEDs nie ohne Vorwiderstand betreiben 
darf, aber sicher ist entweder schon die LED oder die Leiterbahn 
durchgebrannt.

Sicher weißt Du auch welcher Controller dauf ist und wie man ihn 
ansteuert

Hättest du vor dem Anschluss des Displays das Datenblatt gelesen, 
bräuchstest du hier keine Fragen stellen...

von Paul2 (Gast)


Lesenswert?

Hi Jens,
auf deinen Beitrag hat
>ich (Gast)
ganz dringend gewartet !
Schade nur, daß das 3 Jahre, 3 Monate, 2 Tage und etliche Stunden
gedauert hat.

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.