Hallo zusammen,
an einigen Stellen bin ich an der Frage vorbeigekommen, ob es möglich ist, mehrere HX711 mit nur einem Clock Pin (SCK_PIN) zu betreiben. Die Antwort: ja, es funktioniert (erprobt mit drei HX711, ESP8266 und folgender Bibliothek: GitHub - bogde/HX711: An Arduino library to interface the Avia Semiconductor HX711 24-Bit Analog-to-Digital Converter (ADC) for Weight Scales.).
Deshalb hier zur Doku ein kleines “How To” in Form von etwas Pseudo-Code.
Initialisierung im Code:
#include <HX711.h> // https://github.com/bogde/HX711
HX711 loadcell[3];
const int LOADCELL_SCK_PIN = 0; // D3/GPIO0
const int LOADCELL_DOUT_PIN[3] = {4, 5, 14}; // D2/GPIO4, D1/GPIO5, D5/GPIO14
Waagen “benutzen” geht dann bequem per Schleife:
for (i=0;i<3;i++) {
loadcell[i].begin(LOADCELL_DOUT_PIN[i], LOADCELL_SCK_PIN);
//.set_scale(), .set_offset(), .get_units(), .power_up() etc. funktionieren analog.
}
Hoffe das erspart die ein oder andere Suche.
Grundsätzlich ginge es auch noch etwas schneller (genauer gesagt simultan), siehe: GitHub - compugician/HX711-multi: An Arduino library to interface multiple HX711 units simultaneously. Diesem Fork fehlen jedoch ein paar andere Verbesserungen (u.a. ESP32 issue, clock speed too fast · Issue #75 · bogde/HX711 · GitHub), deswegen habe ich ihn nicht getestet.