int reicht nicht, muss ein long sein. unsigned geht auch nicht, kann u.U. negatiiv werden, daher long
ja, das passt so!
Wunderbar, ich habe es angepasst: scale-adjust-hx711.ino. Über einen abschließenden Test von Euch beiden (@clemens und @Thias) würde ich mich sehr freuen, um die Änderungen in den master
branch mergen zu können. Am besten sowohl auf ESP8266 als auch auf AVR.
Danke!
Sollten wir beim Justierungssketch für den ADS auch ändern!
Hi Clemens,
die Firmware zur Justierung der Waage über den ADS1231 müsste bzgl. aller hier besprochenen Unzulänglichkeiten bereits auf dem selben Stand sein: scale-adjust-ads1231.ino.
Ich freue mich hier natürlich auch über Rückmeldungen von allen, die entsprechende Hardware im Haus haben.
Viele Grüße,
Andreas.
Weil Ostern vor der Tür steht und wir die Verbesserungen bei
nach abschließenden Tests bald mergen wollen, wäre es auch toll, hier nach einem kurzen Test von Euch zum Abschluss zu kommen. Kriegt Ihr das hin?
Danke schon im Voraus!
Viele Grüße,
Andreas.
Hallo @Andreas @clemens @Thias ,
da hat sich gerade etwas ganz doof überschnitten. Ich hab seit 4 Tagen einen Sketch in der Pipeline zwecks Kalibrierung, der fast alle benötigten Werte für meine Firmware ermittelt. Das wären:
-Tara
-kgDivider
-ADC zu Input-VCC Abweichungsanpassung
-Kalibrierungstemperatur (zur späteren Ermittlung der Abweichung)
Der Abweichungsfaktor Gramm pro Grad lässt sich in dem Sketch leider nicht ermitteln, da man natürlich längerfristige Messreihen mit Temperaturschwankungen benötigt.
Ich hoffe der Sketch wird heute noch fertig. Habe noch mit Kinderkrankheiten zu kämpfen.
Das ist super, wir haben ohnehin überall verschiedene Varianten von allem rumfliegen. Sobald Du Deine Firmware zur Justierung beiträgst, können wir schauen, ob da irgendwas irgendwann konvergieren kann. Gerade die Temperaturkompensationsaspekte wären neu im Vergleich dazu, was wir schon haben und da freuen wir uns tierisch drauf!
Basiert Deine Firmware ebenfalls auf Homie?
Jein, nicht wirklich. Homie ist zwar eingebunden, aber nur für den Stream Operator. Auf der anderen Seite Spuckt es alles node-wifi-mqtt-homie-(battery) kompatibel aus
So, erstes Release ist als PR raus. @clemens Ich hab mir auch mal deinen Code angeschaut. Was ich nicht verstanden habe: Warum ermittelst Du upper und lower Werte? Magst Du mir das kurz vermitteln?
-ADC zu Input-VCC Abweichungsanpassung
was soll das sein? 3,3 V vs. 5 V?
Für die Temperatur brauchen wir noch Daten, wir hatten hier ja schon mal was rumgeschickt bisher war das sehr individuell. Für mich gibt es da keinen Bedarf bevor da nicht handfeste Daten vorliegen.
VG Clemens
Mein Waage ist nicht sehr schwer und der 0-Punkt ist teilw. bei Wägezellen negativ. Im unteren Bereich - bis ca. 1 kg - ist das nicht linear, daher
- Nullpunkt bestimmen
- irgendein Gewicht drauflegen und unteren Punkt bestimmen
- mit einem bekannten Gewicht beschweren und Gewicht in g eingeben
- ermittelte Werte in sketch eintragen
Bei den schweren Gestellen kann 1 und 2 gleich sein.
VG Clemens
@clemens:
Zu 1:
Ich messe hinter dem HT7333A Spannungsregler mittels ADC_MODE(ADC_VCC);, also nicht die Eingangsspannung des/der Akkus/Solarzelle, sondern die geregelte Spannung. Da der HT7333A erst bei ~3,45 und bei entsprechender Leistungsabnahme einbricht, reicht das. Sackt der Wert unter 3.2 Volt hinter dem Regler ab, ist die Zelle zu schlapp und Solar zu wenig und messen tue ich eh nur noch Mist, da die Kalibrierung der Zelle bei 3.3 v auf der EXC+ stattgefunden hat.
Leider liegt der ADC_VCC bis zu 0.2V nebe n der Realität. Dazu dient dieser Wert.
Zu 2.
Im Gegensatz zum ADS1231(?) ist die Kombo aus HX711 + ESP8266 deutlich temperaturempfindlicher. Sehe ich ziemlich deutlich in der Graphen, ich schätze mal 100g auf 10 Grad. Muss ich aber mal durchrechnen. Also hab ich schon mal die Settings und Korrektur Code gebaut.
Einleitung: verstehe (Einschränkung siehe unten)
- verstehe
- verstehe ich immer noch nicht
3.-4 klar
Einleitung/2. verstehe ich doch nicht, da ich meinen Code immer mit Gestell-losen Zellen entwickelt habe. Ich habe immer positive Werte, es sei denn ich verwechsele SIG+/SIG- bzw. nachdem ich das TARA-Offset gesetzt habe, dann gibt es bei 0-Last schon mal leicht negative Werte a la -2,53g
Übersehe ich was?
wieder mit ‘soft WDT reset’?
jawoll, hätte ich erwähnen müssen
PS: im Terminal übersetzt
Dann ist das hier noch nicht rund:
@Andreas: Vllt doch eher die Logik für <=106
wie bei bogde? (müßte natürlich an andere Stelle; bzw. eine Kombi aus beiden)
https://github.com/bogde/HX711/blob/master/HX711.cpp#L4-L8
Kannst Du sagen, was die Variable ARDUINO_VERSION
bei Dir enthält?
error: 'ARDUINO_VERSION' was not declared in this scope
In der IDE übersetzt mag es bestimmt funktionieren.
Hmm. also sowas könnte gehen (ohne Gewähr):
#if ARDUINO_VERSION <=106
void yield(void) {};
#endif
yield();
Die entsprechende Variable heißt im makeEspArduino.mk
anders: ESP_ARDUINO_VERSION
, das paßt vllt besser in eine #ifdef-Konstruktion; oben einfach ein ..106 || !ESP_ARDUINO_VERSION
wird kaum gehen…