Kurze Frage zu der Relais Ansteuerung

Pin 0 hat immer wild Relais 1 geschaltet beim anschalten. Pin 1 soll ich ja nicht nehmen.....also 2-9.

Ihr seit hier viel zu schnell. Bin noch an der Steuerung der Verflüssigerregelung (extern, kein Arduino). Der Arduino soll die MV´s der Flüssigkeitsleitung nach Außentemperatur, die Pumpen und Lüfter steuern. Verdichter wird über Pump-Down über den Niederdruck geschaltet.

Oder du zu langsam. :wink: :wink:

Naja, wenn eine Frage gestellt wird, dann folgen Antworten und Tipps.
Du hast es aber noch nicht verstanden.
Pin D0 und D1 sollten frei bleiben.
Deine Sensoren liegen aber immer noch auf D0. Das kann beim Upload Probleme machen. Also auch die auf einen anderen Pin legen.

Sorry hab es oben vergesen zu ändern. Sensoren sind auf Pin 10.

Ok, alles klar.

Kurze Frage die hier eigentlich nicht wirklich reinpasst : Macht es Sinn die Temperatursensoren einzeln anzuschließen Zwecks Störungssicherheit. Habe das Gefühl das der OneWireBus sich da ab und zu mal vertut und einen falschen Wert liefert.

Ist def. besser, einen neuen Tread aufzumachen.
Da kann man besser drauf eingehen.

Und nein, es geht auch, wenn alle an einem Pin sind.

Der vertut sich nicht.
Falsche Werte gibt es eher nur, wenn der Sensor nicht ready ist oder neu gestartet wurde.
Wichtig ist, das es ein Bus und kein Stern wird. Und je länger die Leitung desto störanfälliger.
Ggfls. mit den Pullups experimentieren.

Im Sketch ist weiterhin keine Verzögerung zwischen den Messungen.
Der DS hat zwa in der Bibliothek Verzögerung eingebaut aber nix gegen "bombardieren " von der seite der Steuerung, gib dem 300 Millisek dann ist ruhe im Kasten, und Du hast dafür vernünftige Ergebnisse

 }
  
  delay(200);    
 
}

steht drin
Im Übrigen geht das flooden nicht, da die Abfrage in der lib als nicht blockierend gemacht ist.
Ist halt nen typischer millis/lastmills/interval.
(in der lib u.a.:

uint16_t DallasTemperature::millisToWaitForConversion(uint8_t bitResolution) {

)

Genau um das geht mir
der erster DS sendet Daten und der zweiter fragt nach, Bus ist LOW, geht der dritter dran usw. OneWire Bus ist nicht total Kollisionen frei so wie I2C.
die 200 Millis nach jeder Messung rein und nicht am ende der Kette

Oder man fährt die Genauigkeit runter.
Er benutz nur einer Schritte nicht die Nachkommastellen

Warum?

Um schneller zu sein?
DS

nein.
Ich frage auf einem Bus 25 DS18B20 (in 12Bit Resolution) in jedem loop()-Umlauf, der zwischen 1 und 7ms braucht, ab.
Es gibt nur dann keine vernünftigen Werte, wenn der Bus es nicht hergibt. Das habe ich gelöst mit der Anpassung der Pullup - siehe auch #27 .

Warum so kompliziert?
setWaitForConversation(false); setzen.
Dann im Loop requestTemperatures(); // Das gilt für alle
750 ms danach alle nacheinander in einer Schleife abfragen, danach wieder requestTemperatures();

Gruß Tommy

Damit wäre eine Mischbelegung 9bit / 9-12bit zwar möglich, das Abfrageintervall aber auf die 12bit-Sensoren beschränkt.

Welchen Sinn macht eine Mischung von Auflösungen?

Gruß Tommy

Ich hab mal durch Deinen Code geschaut....
Dein Problem ist nicht der Sensorwert, sondern eher seine Darstellung...

Du solltest dringend den Seriellen Monitor benutzen um das aufgelöst zu bekommen.

Nur vergisst Du dazu schreiben "Nach den Ersten 750ms",
sonst bist Du besser als Einstein

Was hast Du denn nicht verstanden?