Dies ist mein erster Post, somit bitte ich um Verständnis bei Fehlern
Folgendes Problem:
Ich möchte Füllstände von Gläsern mit Hilfe einer Wägezelle und einem Verstärker Hx711 erfassen. Allerdings stoße ich bereits beim testen meines Aufbaus auf ein Hindernis und zwar bekomme ich im Serial Monitor nur etwa alle 3 sec. ein Messergebnis
Ich bin Neuling in sachen Arduino, allerdings habe ich bereits einige andere Versuche mit Analogen Eingängen gemacht und hatte nie solche Probleme. Auch das Weglassen des delays am ende des Codes oder das Verändern der Baudrate hat nichts gebessert. Kann mir da einer weiter helfen?
Willkommen im Forum!
Weiß ja nicht welche Library du benutzt (ein Link könnte nicht schaden), aber falls es diese sein sollte:
Dann sieh dir dort das Beispiel an und den Hinweis:
See the example in examples/HX711SerialBegin. Please don't use examples/HX711Serial anymore. It is deprecated because the pin definition within the constructor is not timing safe.
Vielleicht hat das etwas mit deinem Problem zu tun...
Aber ich habe deine Hardware nicht und kann deshalb nicht viel mehr dazu sagen.
Habe jetzt aber mal die Library, die du verlinkt hast mit dem Beispiel probiert.. Leider bekomme ich da direkt massig Fehlermeldungen beim kompilieren.
Folgende:
HX711SerialBegin.ino:1:19: error: HX711.h: No such file or directory
HX711SerialBegin:3: error: 'HX711' does not name a type
HX711SerialBegin.ino: In function 'void setup()':
HX711SerialBegin:13: error: 'scale' was not declared in this scope
HX711SerialBegin.ino: In function 'void loop()':
HX711SerialBegin:52: error: 'scale' was not declared in this scope
Der Code des Beispiels:
#include "HX711.h"
HX711 scale;
void setup() {
Serial.begin(38400);
Serial.println("HX711 Demo");
Serial.println("Initializing the scale");
// parameter "gain" is ommited; the default value 128 is used by the library
// HX711.DOUT - pin #A1
// HX711.PD_SCK - pin #A0
scale.begin(A1, A0);
Serial.println("Before setting up the scale:");
Serial.print("read: \t\t");
Serial.println(scale.read()); // print a raw reading from the ADC
Serial.print("read average: \t\t");
Serial.println(scale.read_average(20)); // print the average of 20 readings from the ADC
Serial.print("get value: \t\t");
Serial.println(scale.get_value(5)); // print the average of 5 readings from the ADC minus the tare weight (not set yet)
Serial.print("get units: \t\t");
Serial.println(scale.get_units(5), 1); // print the average of 5 readings from the ADC minus tare weight (not set) divided
// by the SCALE parameter (not set yet)
scale.set_scale(2280.f); // this value is obtained by calibrating the scale with known weights; see the README for details
scale.tare(); // reset the scale to 0
Serial.println("After setting up the scale:");
Serial.print("read: \t\t");
Serial.println(scale.read()); // print a raw reading from the ADC
Serial.print("read average: \t\t");
Serial.println(scale.read_average(20)); // print the average of 20 readings from the ADC
Serial.print("get value: \t\t");
Serial.println(scale.get_value(5)); // print the average of 5 readings from the ADC minus the tare weight, set with tare()
Serial.print("get units: \t\t");
Serial.println(scale.get_units(5), 1); // print the average of 5 readings from the ADC minus tare weight, divided
// by the SCALE parameter set with set_scale
Serial.println("Readings:");
}
void loop() {
Serial.print("one reading:\t");
Serial.print(scale.get_units(), 1);
Serial.print("\t| average:\t");
Serial.println(scale.get_units(10), 1);
scale.power_down(); // put the ADC in sleep mode
delay(5000);
scale.power_up();
}
in spitzen klammern bedeutet, das die library im library-verzeichnis gesucht wird (oder in einem davon, wenn mehrere definiert sind).
in anführungszeichen: die library wird im sketch-verzeichnis erwartet. das kann praktisch sein, wenn man die library speziell für diesen sketch verändert.
in spitzen klammern bedeutet, das die library im library-verzeichnis gesucht wird (oder in einem davon, wenn mehrere definiert sind).
in anführungszeichen: die library wird im sketch-verzeichnis erwartet. das kann praktisch sein, wenn man die library speziell für diesen sketch verändert.
gruß stefan
Fast richtig.
In spitzen Klammern bedeutet, das die Library nur im library-Verzeichnis gesucht wird.
In Anführungszeichen: die Library wird erst im Sketch-Verzeichnis gesucht, und wenn dort nicht gefunden, im library-Verzeichnis.
Gibt es im Sketchverzeichnis das .h-File nicht, führen beide Varianten zum gleichen Ergebnis.
Nachdem das Offtopic Thema #include nun wohl erledigt ist:
Wenn etwas langsam (mehrere Sekunden ?) ist, kann es wohl nur der Aufruf der Methode scale.getGram() und nicht die Methode Serial.print oder gar der SerialMonitor sein.
Richtig? Kannst du das bestätigen, und evtl. das Thema dieses Threads anpassen (nachträglich editieren des ersten Post...) ?
sehe ich nicht so offtopic, wenn man wegen des problems eine andere library verwendet. vor allem kann das thema nicht erledigt sein.
In Anführungszeichen: die Library wird erst im Sketch-Verzeichnis gesucht, und wenn dort nicht gefunden, im library-Verzeichnis.
Gibt es im Sketchverzeichnis das .h-File nicht, führen beide Varianten zum gleichen Ergebnis.
falls das stimmt (und ich glaube es Dir gern), dann hilft das ändern auf spitze klammern auch nicht. weil die library dann falsch reinkopiert bzw. importiert wurde.
das mit dem laaaangen delay ist ja nur das beispielprogramm für die alternativ-library, das er garnicht zum laufen gebracht hat.
gruß stefan
Richtig, es geht eigentlich um den Code aus meinem ersten Post. Der ja an für sich funktioniert, nur eben extrem langsam.
Das mit den Spitzen Klammern werde ich natürlich noch ausprobieren, das war mir nicht bewusst.
michael_x:
Wenn etwas langsam (mehrere Sekunden ?) ist, kann es wohl nur der Aufruf der Methode scale.getGram() und nicht die Methode Serial.print oder gar der SerialMonitor sein.
Erstmal keine Ahnung, aber du könntest mit einem passenderen Titel die Leser nicht so sehr in die Irre führen. Dann könntest du dich mehr auf deine Hx711 Library konzentrieren und dort rauskriegen, wie/ob du (evtl. nach einer relativ lang dauernden Initialisierung ?) fortlaufende Messungen schneller hinkriegst.
Oder so...