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:
  • 1 Bewertungen - 5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
DS18B20 Pool-Thermometer mit 7Seg.-Anzeige
22.06.2017, 12:35
Beitrag #17
RE: DS18B20 Pool-Thermometer mit 7Seg.-Anzeige
Habe direkt mal mein Oszi über meinen Sensor gehalten.
Ich messe positive Flanken von 44µs und negative Flanken von 25µs.

44µs+25µs=69µs*16Bit=1,104ms.
Also eine Messrate von 905,8Hz ?

Die Deays habe ich alle schon rausgenommen.
Im seriellen Monitor spuckt er mir auch mehr als genug in ganzschöner Geschwindigkeit aus.

Denke also das meiner keine Sekunde wartet zum messen wartet oder habe ich da grade nen ganzschönen Denkfehler?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.06.2017, 12:45
Beitrag #18
RE: DS18B20 Pool-Thermometer mit 7Seg.-Anzeige
(22.06.2017 12:35)Evilgnievel schrieb:  Habe direkt mal mein Oszi über meinen Sensor gehalten.
Ich messe positive Flanken von 44µs und negative Flanken von 25µs.

44µs+25µs=69µs*16Bit=1,104ms.
Also eine Messrate von 905,8Hz ?

Die Deays habe ich alle schon rausgenommen.
Im seriellen Monitor spuckt er mir auch mehr als genug in ganzschöner Geschwindigkeit aus.

Denke also das meiner keine Sekunde wartet zum messen wartet oder habe ich da grade nen ganzschönen Denkfehler?
Klingt gut, aber lass es Dir doch einfach ausgeben:
Code:
Serial.print("Wait for conversation: ");
  Serial.println(sensors.getWaitForConversion());
Wenn er nicht wartet, sollte Deine Anzeige ja jetzt funktionieren.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.06.2017, 08:58
Beitrag #19
RE: DS18B20 Pool-Thermometer mit 7Seg.-Anzeige
So....hab nun noch bissl abgespeckt, die Anzeige zeigt nun die Temperatur mit zwei Nachkommastellen an.
Allerdings flackert es noch ziemlich.

Wie könnte ich denn noch bissl was rausholen?
Bräuchte geschätzt noch 5-10Hz..

Code:
#include <OneWire.h>
#include <DallasTemperature.h>
#include "SevSeg.h"
SevSeg sevseg;

OneWire  ds(3); //pin für ds1820

//DeviceAdressen der einzelnen ds1820 Temperatursensoren angeben. (loop anpassen)
DeviceAddress sensor1 = { 0x28, 0xEE, 0xA8, 0xC5, 0x1A, 0x16, 0x02, 0x4B };
DeviceAddress sensor2 = { 0x28, 0xA3, 0xFF, 0xF2, 0x08, 0x00, 0x00, 0x81 };

char sensor1Name[] = "Wasserglas: ";
char sensor2Name[] = "Board: ";


void setup(void)
{
   //Serial.begin(9600);
  byte numDigits = 4; //Hier wird die Anzahl der Ziffern angegeben
byte digitPins[] = {2, 6, 4, 5}; //Die Pins zu den Ziffern werden festgelegt
byte segmentPins[] = {7, 8, 9, 10, 11, 12, 13,}; //Die Pins zu den Segmenten werden festgelegt Dezimalpunkt verachlässigbar da auch Dauerplus
sevseg.begin(COMMON_ANODE, numDigits, digitPins, segmentPins);

}
void writeTimeToScratchpad(byte* address)
{
  //Reset vom Bus
  ds.reset();
  //Suche vom Glas
  ds.select(address);
  
  ds.write(0x44,1);
  
// delay(5000);
}

void readTimeFromScratchpad(byte* address, byte* data)
{
  
  ds.reset();
  ds.select(address);
  
  ds.write(0xBE);
  for (byte i=0;i<9;i++){
    data[i] = ds.read();
  }
}

float getTemperature(byte* address)
{
int tr;
byte data[12];

writeTimeToScratchpad(address);

readTimeFromScratchpad(address,data);

//8Bits in Temp laden
tr = data[0];

if (address[0] == 0x10) // DS18S20
{
//negativ check
if (data[1] > 0x80)
{
tr = !tr + 1; //fehlerkorrektur um 0.25
tr = tr * -1; //wen negativ dann invertiert
}

//drop bit 0
tr = tr >> 1;
//Umrechnung auf Celsius
int cpc = data[7];

int cr = data[6];

return tr - (float)0.25 + (cpc - cr)/(float)cpc;
}
else
{
return ((data[1] << 8) + tr) * (float)0.0625;
}
}
void loop(void)
{
  
  float temp1 = getTemperature(sensor1);
  //float temp2 = getTemperature(sensor2);

  temp1 = constrain(temp1,0,temp1);
//  temp2 = constrain(temp2,!20,45);
                            //Abgleich beider Sensoren
  
  //Serial.print(sensor1Name);
   //Serial.print(temp1);
   //Serial.println(" Celsius");

   //Serial.print(sensor2Name);
   //Serial.print(temp2);
   //Serial.println(" Celsius");


  sevseg.setNumber(temp1,2);
  sevseg.refreshDisplay();
  sevseg.setBrightness(100);
// Serial.println();
// delay(5000);
}

Bei der Gelegenheit auch gleich ein riesiges Danke an dich Tommy ! Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.06.2017, 09:27 (Dieser Beitrag wurde zuletzt bearbeitet: 23.06.2017 09:32 von Tommy56.)
Beitrag #20
RE: DS18B20 Pool-Thermometer mit 7Seg.-Anzeige
Hast Du Dir mal ausgeben lassen, ob der Sensor wartet?

Gruß Tommy

Edit: Du misst die Temperatur in jedem Loop-Durchlauf. Da würde 1 Messung aller 60 Sehunden vollkommen ausreichen aber ohne delay, sondern mit Millis.

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  1.8 Zoll adafruit tft lcd mit bluetooth die Anzeige ändern JaimyS 8 334 24.01.2020 10:41
Letzter Beitrag: hotsystems
  Optische Anzeige auf dem Display ? Nicole 8 598 30.12.2019 12:00
Letzter Beitrag: hotsystems
  Spielstand Anzeige holzmichel 4 764 27.03.2019 15:51
Letzter Beitrag: holzmichel
  Oled 0.91 wechselnde Anzeige . Benötige hilfe MotD 6 1.385 24.03.2019 22:48
Letzter Beitrag: Bitklopfer
  DS18B20: ab 60 °C höhere Abweichung moehrle 2 679 02.03.2019 21:34
Letzter Beitrag: moehrle
  LCD Keypad unvollständige Anzeige MarioE 4 967 18.07.2018 15:16
Letzter Beitrag: MarioE
  Fehlerhafte Anzeige der LiquidCrystal und debug.h do1xxy 16 2.553 14.07.2018 17:29
Letzter Beitrag: Tommy56
  Problem mit TFT Display Anzeige wechseln Thor Wallhall 10 2.941 06.07.2018 20:51
Letzter Beitrag: Thor Wallhall
  Hilfe bei der Programmierung Digitaluhr ,mit Anzeige 32x8 Lora 1 1.241 10.03.2018 11:44
Letzter Beitrag: hotsystems
  NTC für LCD-Anzeige.Weiter bekomme ich nicht hin malsehen 17 3.112 09.03.2018 20:28
Letzter Beitrag: malsehen

Gehe zu:


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