Pages: [1]   Go Down
Author Topic: Probleme bei Temperatur messung  (Read 848 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Jr. Member
**
Karma: 1
Posts: 61
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo ich bin momentan dabei mein erstes Projekt fertig zu stellen

Das ganze soll eine Aquarienkühlung ergeben

nun zu meinem Problem
ich möchte gerne einmal die Externe (Wasser) und einmal die Wasser Temperatur messen und das ganze auf einem LCD  ausgeben

das Funktioniert auch alles soweit im Einzelnen

Jetzt habe ich mir eine Platine geätzt alles zusammen gelötet und siehe da es klappt nicht smiley-sad

Wenn ich die externe Temp messen will schließe ich über 2 pins mein thermofühler ein für die Raum temp benutze ich einen lm 35

zu erst wird die RT gemessen und ausgegeben und dann die Ext Temp
die externe temp scheint zu stimmen doch die RT spinnt die springt von oben nach unten und hin und her

aber wenn ich nur die Raumtemperatur messe und das externe thermometer abziehe klappt alles wunderbar??

hier mal mein Code eventuell ist da ja was falsch denn anscheinend wenn nur ein Analoger port geschaltet ist klappt ja alles mhh

Code:
#include <LiquidCrystal.h>
#include <math.h>


LiquidCrystal lcd(12, 11, 9, 10, 8, 7);

float minext =0;
float maxext =0;
float minint =0;
float maxint =0;
float temp1;
float temp2;
int Analogw;
float mv;
float Temp;

float extTemp(int rawadc)
// Hilfsfunktion zur Umrechnung auf Grad Celsius
{
int r1 = 1200000; // Wert des Festen Wiederstandes des sabbungsteiler
int r2 = 22000; // Wiederstand des Thermristors bei 25grad
int b = 3950;  // Fixwert aus Datenblatt
float r_akt; // Aktueller Wiederstand
float temp; //Temporäre Variable
float ergebnis; //
float tn = 25; //Basistemperatur in Grad Celsius
// Wiederstand Therm ausrechnen
//Widerstand auf Temperatur umrechnen
tn = tn+273.15; // Basitemperatur auf Kelvin umrechnen
r_akt = ((4.64/(4.64/1023*rawadc))*r1)-r2; //Aktuellen Widerstand ermitteln
temp = b*tn/(b+log10((r_akt/r2))*tn);
temp = temp - 273.15; //Ergebnis in Grad Celsius umwandeln
ergebnis =temp;
return ergebnis;
}

void showrt(int pause)
{  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Raum Temperatur:");
  lcd.setCursor(0, 1);
 
Analogw = analogRead(A2);
mv = map(Analogw,0,1023,0,5000);
        mv=mv+1;
Temp = mv/10;
temp1=Temp;
  lcd.print(temp1);
  minmaxint(temp1);
  delay(pause);}
  
void showext (int pause){  
lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("EXT Temperatur:");
  lcd.setCursor(0, 1);
  temp2= extTemp(analogRead(A1));
  lcd.print(temp2);
  minmaxext(temp2);
  delay(pause);}

 

void setup() {

  lcd.begin(16, 2);
  lcd.print("Willkommen zur");
  lcd.setCursor(0, 1);
  lcd.print("Temperaturmesung");
  delay(5000);
  
}

void loop() {
showrt(1000);
showext(1000);


}

edit:
hier mal ein Bild der Platine



Uploaded with ImageShack.us

« Last Edit: October 14, 2012, 04:38:54 am by melmann » Logged

Mit freundlichem Gruß melmann

Offline Offline
Jr. Member
**
Karma: 1
Posts: 61
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

niemand eine idee??
Logged

Mit freundlichem Gruß melmann

Offline Offline
Full Member
***
Karma: 1
Posts: 118
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Moin,

erst mal Respekt für die Eigenbau- Platine, ein kleines 'aber' habe ich doch. Ich kenne eigentlich die Regel gerade und symetrische Leitungsführung zu bevorzuge. Bei Dir sehe ich da einige Schwachpunkte, zudem die Beschaltung auch nicht identisch/ symetrisch erscheint.

Lass die Sachen doch mal auf nem Steckbrett mit nem kompletten Ardruino laufen, wenn die Fehler dort genauso auftreten, dann muss woanders gesucht werden.

Greetz, Linpo
Logged

العشب أخضر، أن الكرة مستديرة،

Offline Offline
Jr. Member
**
Karma: 1
Posts: 61
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Danke erst mal für das Lob aber so schwer ist das gar nicht smiley-wink

Naja zum Layout muss ich sagen das ich bis heute die Einstellung für die Rastergröße bei Fritzing nicht gefunden hatte und ich mir dann mit den schrägen Leiterbahnen beholfen hatte.

nach etwas suchen konnte ich die Einstellung jetzt auch finden und werde sie demnächst benutzen.

Momentan versuche ich den Sketch etwas zu ändern und bei dem LM 35 eventuell bei jeder Abfrage nicht nur einen Messpunkt abzufragen sondern z.b. 100 und das ganze zu mitteln ich meine in 3 von 4 fällen ist bis jetzt auch noch ein vernünftiges Ergebnis zu sehen und eventuell reicht das ja schon die RT muss ja nicht 100% perfekt sein die Externe Temp ist mir da schon sehr viel Wichtiger.

Dazu ist mir gerade beim Schreiben eingefallen das ganze mal anstatt mit dem Thermometer mit einem fest Widerstand zu versuchen um den Fehler einzugrenzen.



Edit: Also das Problem besteht auch mit Festwiderstand mhhh
Eventuell könnte ein NPN Transistor helfen und bei der Messung des LM 35 den Stromfluss des Externen Thermometers stoppen und somit die Störung beseitigen was meint ihr?
« Last Edit: October 14, 2012, 01:57:46 pm by melmann » Logged

Mit freundlichem Gruß melmann

Pages: [1]   Go Up
Jump to: