Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > Hallo Dieter, > > Rene und Krassos haben zwar bereits das wichtigste geschrieben, aber > ich gebe auchnoch meinen Senf dazu. ;-) > > Erstmal zur Hardware: > Durch das Meßverfahren des Controllers kann es zu Ungenauigkeiten kommen, > wenn das Eingangssignal nicht niederohmig genug ist. > Abhilfe schafft hier in den meisten Fällen bereits ein Kondensator am AD-Port. > Setze also einfach einmal einen 100nF-Kermik-Kondensator zwischen AD-Port und GND. > Das hat bereits oft Wunder bewirkt. ;-) > > Nun zur Software: > Die Interpolation von 10 Meßwerten, wie es Rene vorschlägt, bringt meist > eine Reduktion von Störeinflüssen. Allerdings erscheinen mir > 100ms Pause zwischen den Messungen etwas hoch. > Mit sehr viel kleineren Pausen sollten ebenso funktionieren > Gut, Temperaturmessung ist meist nichts zeitkritisches, womit das egal wäre. > > Was mir, aber auch Krassos schon etwas Spanisch vorkommt, sind > die "mal 0,35" in Deinem Code. Abgesehen von dem Problem, das Krassos schon > beschreibt, wie kommst Du auf die 0,35 ?? > Wenn Du die Spannung ausgeben willst, mußt Du den AD-Wert mit 4 multiplizieren > bzw. den AD-Wert um zwei Bit nach links schieben. > Du erhälst dann die Spannung in mV: > <code>Spannung /*in mV*/ =ports.adc(0) shl 2; > //alternativ: > Spannung /*in mV*/ =ports.adc(0) *4; > </code> > > Noch ein paar Anmerkungen/Tips zu Deinem Code: > - Du benötigst kein lcdext.clear() nach dem Init. Die Initialisierung beinhaltet bereits > das Löschen des LCD-Inhalts. > - Ähnlich ist das mit lcdext.line(1). Nach dem LCD-Init befindet sich der Cursor bereits > in der ersten Zeile. > - mit hwcom.print() kannst Du einen String einfacher ausgeben, da Du nicht die Länge angeben mußt. > - Mit hwcom.num() kannst Du direkt Zahlen ausgeben, und mußt nicht erst str.putint() benutzen. > > > MfG André H. > > > > Hallo, > > > > ich habe an die Station einen LM35DZ an folgende Anschlüsse > > GND an Klemme12 GND > > U-TEMP an Klemme 28 AD0 > > 5V an Klemme 14 5V > > > > Wenn ich mit dem Voltmeter zwischen GND und U-TEMP messe bekomme ich erwartungsgemäß eine stabile Spannung von 0,227 Volt > > Wenn die die AD0 auswerte bekomme ich wilde Sprünge > > > > AD0=27 > > AD0=23 > > AD0=25 > > AD0=26 > > AD0=23 > > AD0=25 > > AD0=26 > > > > Das Programm dazu sieht so aus: > > //------------ > > thread main > > //------------ > > { > > stports.init(); > > string s; > > int n,ad; > > lcdext.init(); > > lcdext.clear(); > > lcdext.line(1); > > lcdext.print("Terminal Ser1"); > > sleep 1000; > > hwcom.init (); > > hwcom.setspeed (hwcom.SPEED_9600); > > loop > > { > > > > s = "AD0="; > > ad=ports.adc(0)*0.35; > > str.putint (s,ad); > > hwcom.send(s,str.length(s)); > > hwcom.put(13); > > sleep 1000; > > } > > } > > > > wo kann mein Problem liegen? > > > > Gruss Dieter > >