INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Temperaturmessung
02.02.2016, 09:15
Beitrag #1
Temperaturmessung
Hallo, ich arbeite gerade an einem Projekt, bei dem ich eine Temperatur mit dem Sensor TMP36 GZ steuern will.
Im Sketch verwende ich die Anweisungen:
temp[0]=map(analogRead(TMP36),0,410,-50,150);
.
.
.
temp[9]=map(analogRead(TMP36),0,410,-50,150);
sowie:
celsius=(temp[0]+temp[1]+temp[2]+temp[3]+temp[4]+temp[5]+temp[6]+temp[7]+temp[8]+temp[9])/10;

Serial.print("Temperatur-Messwert:");
Serial.println(celsius);

Die erste Messung ist korrekt, bei den weiteren wird etwa (unterschiedlich) doppelte Wert angezeigt. Auch bei ausgetauschtem Sensor keine Änderung.

Siehe auch angehängter Sketch.

Was mache ich falsch?

Danke für Eure Hilfe!


Angehängte Datei(en)
.ino  Pfalanz_Temp.ino (Größe: 1,35 KB / Downloads: 35)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.02.2016, 10:57 (Dieser Beitrag wurde zuletzt bearbeitet: 02.02.2016 10:57 von Scherheinz.)
Beitrag #2
RE: Temperaturmessung
Code:
//TMP36 Pin Variables
    int sensorPin = 0; //the analog pin the TMP36's Vout (sense) pin is connected to
                            //the resolution is 10 mV / degree centigrade with a
                            //500 mV offset to allow for negative temperatures
    
    /*
     * setup() - this function runs once when you turn your Arduino on
     * We initialize the serial connection with the computer
     */
    void setup()
    {
      Serial.begin(9600);  //Start the serial connection with the computer
                           //to view the result open the serial monitor
    }
    
    void loop()                     // run over and over again
    {
     //getting the voltage reading from the temperature sensor
     int reading = analogRead(sensorPin);  
    
     // converting that reading to voltage, for 3.3v arduino use 3.3
     float voltage = reading * 5.0;
     voltage /= 1024.0;
    
     // print out the voltage
     Serial.print(voltage); Serial.println(" volts");
    
     // now print out the temperature
     float temperatureC = (voltage - 0.5) * 100 ;  //converting from 10 mv per degree wit 500 mV offset
                                                   //to degrees ((voltage - 500mV) times 100)
     Serial.print(temperatureC); Serial.println(" degrees C");
    
     // now convert to Fahrenheit
     float temperatureF = (temperatureC * 9.0 / 5.0) + 32.0;
     Serial.print(temperatureF); Serial.println(" degrees F");
    
     delay(1000);                                     //waiting a second
    }

Hast du schonmal so einen Testsketch laufen lassen?
Deine Berechnung verstehe ich nicht so ganz, vorallem warum liest du 10 mal einzeln ein? Wenn das sein muss dann geht das auch in einer Schleife die du 10 laufen lässt. Außerdem stören die ganzen Delay den Ablauf deines Programms.

Gruß

Hier könnte ihre Werbung stehen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.02.2016, 18:18
Beitrag #3
RE: Temperaturmessung
Hallo Scherheinz,
danke für deine schnelle Hilfe.
Mit dem Testprogramm und Versorgung des TMP36 mit 3,6 Volt werden die richtigen Werte auf dem Versuchsaufbau gemessen.
Meinen Sketch habe ich auf die Berechnung des Test-Sketches umgestellt.
Trotzdem erhalte ich beim ersten Durchgang die richtigen Temperatur- und Feuchtigkeitswerte, aber beim zweiten Durchgang und den Folgenden ca doppelte Temperatur und höhere Feuchtigkeit. Die Werte bleiben dann in etwa so.
ich vermute einen Fehler in meinem Sketch. Ich wäre dir dankbar, wenn du mal drüberschauen könntest.
Gruß und vielen Dank im Voraus.

// hier beginnt der Sketch
include<Stepper.h>
int SPMU = 32;

Stepper myStepper (SPMU,2,3,4,5);
int TMP36 = A1;
int messwert = A0;


#define LED 12
#define BUTTON 7





void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
myStepper.setSpeed(250);
pinMode(13, OUTPUT);
pinMode(LED, OUTPUT);
pinMode(BUTTON, INPUT);
}

void loop() {
// put your main code here, to run repeatedly:
int reading = analogRead(TMP36);
float voltage = reading * 5;
voltage = voltage/1024;
Serial.print(voltage);
Serial.println("volts");
float temperaturC = (voltage -0.5)*100;
Serial.print(temperaturC);
Serial.println("degrees C");
delay(1000);

messwert = analogRead(A0); // Beginn Feuchtemessung
Serial.print("Feuchtigkeits-Messert:");
Serial.println(messwert);
delay(1000);

if (temperaturC > 10) // hier beginnt die Abfrage. Wenn der Sensorwert
{ // größer 200 ist, dann..
myStepper.step(512); // Stepper macht Klappe auf
delay(6000);
myStepper.step(-512); // Stepper macht Klappe wieder zu
if (messwert<80){
digitalWrite(13, HIGH);
delay(6000);
digitalWrite(13, LOW);
delay(1000);

if ( digitalRead(BUTTON) == HIGH ) // hier beginnt die Niveauüberwachung
{
digitalWrite(LED, HIGH);
delay(1000);
digitalWrite(LED, LOW);
}



}

}
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.02.2016, 11:05
Beitrag #4
RE: Temperaturmessung
Hallo Scherheinz,
das Problem liegt vermutlich an der Treiberplatine für den Stepper. Sobald ich diesen mit Spannung von anderer Stromquelle versorge, bleiben die Messwerte konstant.
Wenn ich weitere Ergebnisse habe, mit neuer Treiberplatine, melde ich mich.
Vorerst vielen Dank.
übrigens sind die Pausen im Moment noch nicht realistisch, sondern für den Testbetrieb.
Gruß Hermann
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.02.2016, 12:04
Beitrag #5
RE: Temperaturmessung
Das kann gut sein, ordentliche Spannungsversorgungen sind sehr wichtig vorallem wenn mit analogen Werten gearbeitet wird. Was manchmal auch noch Wunder bewirkt ist ein 100nF Keramikkondensator in der Versorungsspannung.
Einfacher zu händeln sind aber auch digitale Temperatursensoren, bei denen muss nichts umgerechnet werden und du weißt wenn eine Temperatur angezeigt wird ist sie auch richtig. Schonmal was von DS18S20 oder ähnlichem gehört?

Gruß

Hier könnte ihre Werbung stehen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.02.2016, 21:10
Beitrag #6
RE: Temperaturmessung
Danke für den Hinweis auf den digitalen Sensor DS18S20, den ich mir für das Projekt beschaffen werde.
Andere Frage: Gibt es eine Möglichkeit eine LED, sofern Bedingung erfüllt, über einen gesamten Programmablauf, der auch Pausen enthält, leuchten zu lassen? in meinem Fall soll die LED einen Füllstand anzeigen und wird über einen Readkontakt geschalten.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.02.2016, 21:44
Beitrag #7
RE: Temperaturmessung
(03.02.2016 21:10)Warmbronner schrieb:  Danke für den Hinweis auf den digitalen Sensor DS18S20, den ich mir für das Projekt beschaffen werde.
Andere Frage: Gibt es eine Möglichkeit eine LED, sofern Bedingung erfüllt, über einen gesamten Programmablauf, der auch Pausen enthält, leuchten zu lassen? in meinem Fall soll die LED einen Füllstand anzeigen und wird über einen Readkontakt geschalten.

Das wird bestimmt funktionieren, aber
Was meinst du mit Pausen?
Und wovon Füllstand?

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.02.2016, 21:57
Beitrag #8
RE: Temperaturmessung
Mit Pausen meine ich "delay". Nach meinem bescheidenen Kenntnisstand werden alle Programmabläufe dadurch unterbrochen.
Im besagten Programm will ich parallel zu den übrigen Abläufen einen Füllstand überwachen (Readschalter) und bei dessen Unterschreitung soll dauerhaft eine LED leuchten. Im Programm ist der Readschalter mit "BUTTON" dargestellt.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  PT100 Temperaturmessung Hilfe Black2009fox 12 2.892 15.05.2015 04:31
Letzter Beitrag: Scherheinz

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste