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
Temperaturwerte mitteln
03.09.2015, 10:25 (Dieser Beitrag wurde zuletzt bearbeitet: 03.09.2015 11:23 von Erbsenhirn.)
Beitrag #1
Temperaturwerte mitteln
Hi Smile

Ich betreibe mit dem Arduino Uno die Temperatursensoren DS18B20, deren Anzahl von 1-8 variieren kann.

Die Werte werden gemittelt und ein Servo dient als Permamentanzeige der mittleren Temperatur.

Nun möchte ich aber nur die Endsumme der Temperaturen der XY- Sensoren (rot markiert) aber keine Zwischensummen(gelb).

Eine for-schleife spuckt mir das selbe Resultat aus.

Wie kann ich das realisieren?

Dankeschön Smile


CODE: http://pastebin.com/W1Lu7XBD

Vielen Dank, hat sich erledigt!


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.09.2015, 13:45
Beitrag #2
RE: Temperaturwerte mitteln
Hallo,

so wie ich das verstehe summierst du die Messwerte (24+24+24 = 72). Der Mittelwert wäre hier 24.

Möchtest du jetzt den Mittelwert ausgeben oder die Summe?

Gruß
Torsten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.09.2015, 13:49
Beitrag #3
RE: Temperaturwerte mitteln
(03.09.2015 13:45)torsten_156 schrieb:  Hallo,

so wie ich das verstehe summierst du die Messwerte (24+24+24 = 72). Der Mittelwert wäre hier 24.

Möchtest du jetzt den Mittelwert ausgeben oder die Summe?

Gruß
Torsten

Thorsten Danke, ich habe es schon hinbekommen. Trotzdem Vielen Dank!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.09.2015, 14:09
Beitrag #4
RE: Temperaturwerte mitteln
...könntest du uns bitte auch zeigen wie? Denn die Lösung könnte später für andere nützlich sein. Undecided

Gruß
Torsten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.09.2015, 14:14
Beitrag #5
RE: Temperaturwerte mitteln
(03.09.2015 14:09)torsten_156 schrieb:  ...könntest du uns bitte auch zeigen wie? Denn die Lösung könnte später für andere nützlich sein. Undecided

Gruß
Torsten

Hast recht. Ich habe lediglich die "Summen-abfrage" erst ein paar Schleifen später gestartet, dh. wenn sie komplett aufsummiert wurde und nicht direkt in der Schleife während der Aufsummierung Smile.

Dies Temperaturwerte wurden gemittelt und an den Servo in int value übergeben.

Code: http://pastebin.com/nnR3u9Js

Gruß
Sergej
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.09.2015, 14:28
Beitrag #6
RE: Temperaturwerte mitteln
Du kannst den Code auch direkt hier einstellen, das ist für uns einfacher zu lesen. Rolleyes

Code:
#include <OneWire.h>
#include <DallasTemperature.h>
#include <Servo.h>

Servo myservo;

int val;
int summe;
int Anzeige;

// Data wire is plugged into port 2 on the Arduino
#define ONE_WIRE_BUS 9//
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
void setup(void)
{
  myservo.attach(5);
  // start serial port
  Serial.begin(9600);
}
void loop(void)
{
summe=0;
int numberOfDevices; // Number of temperature devices found
  DeviceAddress tempDeviceAddress; // We'll use this variable to store a found device address    

  sensors.begin();
  // Grab a count of devices on the wire
  numberOfDevices = sensors.getDeviceCount();
  Serial.print("Parasit:");
  if (sensors.isParasitePowerMode()) Serial.print("ON ");
  else Serial.print("OFF ");
  
  Serial.print("  Anzahl:");
  Serial.print(numberOfDevices, DEC);
// report parasite power requirements
  sensors.requestTemperatures(); // Send the command to get temperatures

  // Loop through each device, print out temperature data
  for(int i=0;i<numberOfDevices; i++)
  {
    // Search the wire for address
    if(sensors.getAddress(tempDeviceAddress, i))
        {
                // Output the device ID
                Serial.print(" Sensor");
                Serial.print(i+1,DEC);
                Serial.print(" =");
            
                float tempC = sensors.getTempC(tempDeviceAddress);
                Serial.print(tempC,4);
                 Serial.print(" Grad Celsius");
               {  
                
              
                 {
                
                 summe=((summe+=tempC)/i);
                 Anzeige= summe+1;
                 }
                 }          
               }
       }
   val= Anzeige;
                
   val= map(val, 24, 30, 0, 180);
                 myservo.write(val);
                 delay(15);
  
  Serial.print ("  Anzeige = ");
  Serial.print(Anzeige);

Serial.println("");

delay(1000);
}

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Min- Max Temperaturwerte im EEPROM speichern und auslesen VTEP17_hoehmann 1 910 03.04.2015 17:37
Letzter Beitrag: Thorsten Pferdekämper

Gehe zu:


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