Schwerpunkt Waage mit Arduino

Pegg

User
Ich glaube ich hab es?



"Der Sketch verwendet 15772 Bytes (51%) des Programmspeicherplatzes. Das Maximum sind 30720 Bytes.
Globale Variablen verwenden 769 Bytes (37%) des dynamischen Speichers, 1279 Bytes für lokale Variablen verbleiben. Das Maximum sind 2048 Bytes."

passt das so vom verwendeten Speicher oder fehlt noch was??
 

kalle123

User
*schuldig*

@Pegg: solange Du auf Deine Teile wartest vertiefe Dein Wissen doch mit so etwas:
http://fritzing.org/fritzing-creatorkit/

... für mich war das ein toller Einstieg :)

DU warst doch gar nicht damit gemeint, Tobi :)

Die Kits sind schön und gut, nur meist ziemlich überteuert. Und wenn eine Sache sehr gut im Netz für Anfänger dokumentiert ist, dann Arduino.



@Pegg

Ich glaube ich hab es?



"Der Sketch verwendet 15772 Bytes (51%) des Programmspeicherplatzes. Das Maximum sind 30720 Bytes.
Globale Variablen verwenden 769 Bytes (37%) des dynamischen Speichers, 1279 Bytes für lokale Variablen verbleiben. Das Maximum sind 2048 Bytes."

passt das so vom verwendeten Speicher oder fehlt noch was??

Und was soll DAS jetzt hier???

Beschäftige dich doch bitte erst mal mit den grundsätzlichen Sachen Arduino betreffend.

https://www.google.de/search?source=hp&ei=RbxyWteSFZC6kwXf0aKYCQ&q=Erste+Schritte+mit+Arduino&oq=Erste+Schritte+mit+Arduino&gs_l=psy-ab.3..0l2j0i22i30k1l2.1901.9722.0.10377.27.21.0.5.5.0.127.1761.19j2.21.0....0...1c.1.64.psy-ab..1.26.1808.0..0i131k1j0i10k1.0.3jBvHAUH6dM

Und wenn du die LCs und den Rest da hast, weiter hier ....

Gruß KH
 
Quelle für YZC-133 und HX711

Quelle für YZC-133 und HX711

Hallo,
kann mir bitte jemand von Euch einen verlässlichen Lieferanten/online-shop für die Wägezelle und das HX711-Modul empfehlen?

Danke im voraus!
Gerhard
 
3D Druckteile

3D Druckteile

Hallo liebe Leute,

ich bitte Euch mich nicht mehr anzuschreiben, ich werde keine Sätze mehr drucken.
Grund ist, mir ist jetzt schon das zweite mal die Elektronik abgebrannt.
Muss das jetzt erst einmal wieder hinbekommen.

gruß Timo
 

Addicted

User
Troubleshooting

Troubleshooting

Hallo Zusammen!

Nachdem ich hier lange als stiller Leser die Entwicklung verfolgt habe, habe ich mich an den "Nachbau" gewagt. Alle Teile habe ich gemäß dem Schaltplan von Tobi verbunden, den Arduino Nano (zuerst mit dem Blink-Sketch erfolgreich getestet) dann mit dem Sketch von Tobi inkl. der in der IDE enthaltenen LiqiudCrystal librarie gefüttert. Im Ergebnis lief wohl irgendwo etwas schief, denn das Display leuchtete zwar, zeigte aber nichts an. Aus meiner Sicht fehlte die Einbindung des IC2...?

Nun habe ich die Newliquidcrystal_1.3.5 librarie geladen und wollte es damit erneut versuchen, weil ich ja den Fehler darin vermutete. Leider kompiliert es nun nicht, sondern bricht mit folgender Fehlermeldung ab:

Fehler.JPG

Woran kann das liegen?

Gemäß IDE verwendet der sketch die Newliquidcrystal_1.3.5 - allerdings wurden einige Bibliotheken nach dem Einbinden mit angezeigt, die ich aber nicht in meinen Bibliotheken habe. Der Text der anderen Bibs blieb schwarz. Ich habe sie aus dem sketch gelöscht.
Aktuell sehen die integrierten Bibs wie folgt aus:
libraries.JPG

Habt ihr eine Idee? Vielen Dank für Eure Tipps!

Gruß
Chris
 
Hallo, falls jemand noch 3D Teile braucht könnt ihr euch gerne an mich wenden. Habe mir selber einen Satz rausgelassen und kann gerne noch welche drucken falls jemand noch Teile benötigt!
 
Hallo Zusammen!

Nachdem ich hier lange als stiller Leser die Entwicklung verfolgt habe, habe ich mich an den "Nachbau" gewagt. Alle Teile habe ich gemäß dem Schaltplan von Tobi verbunden, den Arduino Nano (zuerst mit dem Blink-Sketch erfolgreich getestet) dann mit dem Sketch von Tobi inkl. der in der IDE enthaltenen LiqiudCrystal librarie gefüttert. Im Ergebnis lief wohl irgendwo etwas schief, denn das Display leuchtete zwar, zeigte aber nichts an. Aus meiner Sicht fehlte die Einbindung des IC2...?

Habt ihr eine Idee? Vielen Dank für Eure Tipps!

Gruß
Chris


Naja der Fehler wird dir schon mitgeteilt lcd wurde bisher nicht im aktuellen scope definiert. Es hilft übrigens bei so etwas immer den kompletten Source zu liefern den die Bilder sind absolut nichtssagend... Pasterbin oder ähnliches hilft auch beim pasten von code.
 

Addicted

User
Hallo Stefan,

vielen Dank für Deine Antwort. Ich habe den Original-Sketch vom Tobi jetzt nochmal frisch gestartet und der kompiliert. Wahrscheinlich habe ich aus Versehen etwas zu viel gelöscht, als ich die - aus meiner Sicht überzähligen - Bibs gelöscht habe. Allerdings zeigt das Display auch jetzt nichts an. Leuchten tut es aber.

Wenn ich die Newliquid... Bib einbinde, sieht der gesamte Block eingefügter Zeilen wie folgt aus:

newliquid.JPG

Wenn ich das so kompiliere, bekomme ich einen Haufen Fehlermeldungen, die hier den Rahmen sprengen würden. Daher hatte ich die zum Teil gelöscht...

Gruß
Chris
 

kalle123

User
@Chris

Deine Vorgehensweise ist nicht sehr hilfreich, um dir zu helfen.

Also BLINK geht, geht denn auch eins der vielen einfachen Test scripts zu LCD I2C?

Wichtig ist auch in Zusammenhang mit I2C, mal ein I2C scanner sketch laufen zu lassen.
Bei I2C werden unterschiedliche Adressen genutzt.

Beides (Test scripts und I2C scanner) finden sich in Vielzahl im Netz. Arduino ist sehr gut dokumentiert!

Noch was. Du brauchst ja nicht die komplette Fehlerausgabe HIER direkt zu posten.
Es reicht, die Meldungen in ein einfaches Textfile zu packen und anzuhängen.

Gruß KH
 

udill

User
So, hab meiner Version jetzt soweit fertig.

Wollte ja was eigenes machen. :)

Ja, sieht toll aus mit dem 3 D Druck Ständer, aber ich bastle halt gerne und ich hab auch nicht die vorgegebenen Arduino sketches genommen und was "Selbst gestricktes" auf Basis der HX711_ADC-master library von Olav Kallhovd gemacht.

Sieht so aus ....


Zum Speichern der LC Kalibrierwerte kann ich mir jetzt noch ein paar Gedanken machen, aber das hat Zeit, ich bin erst mal zufrieden.

Grüße KH

Hallo Kalle,

da ich auch ähnliche Überlegungen bezüglich der Mechanik hatte, über keinen 3D-Drucker verfüge und keine Ahnung vom Programmieren habe, wollte ich mal fragen, ob du dein "Geistiges Eigentum" hier zur Verfügung stellst. :)

Gruß Udo
 

Tobias Reik

Moderator
Teammitglied
Im Ergebnis lief wohl irgendwo etwas schief, denn das Display leuchtete zwar, zeigte aber nichts an.
Es gibt manchmal auch einfache lösungen:
Ist evtl. nur der Kontrast des Dsiplays nicht korrekt eingestellt ? - Bitte drehe doch mal auf dem Poti des I2C-Adapters ;)

Ansonsten kann ich sagen, daß das Austauschen der Library´s kontraproduktiv ist, da jede Library verschiedene Befehle kennt und gleiche Befehle zum Teil anders interpretiert.

Reihenfolge:
- Blink
- I2C-Scanner: https://playground.arduino.cc/Main/I2cScanner -> Adresse in die folgenden Sketches eintragen !
- LCD-Test: https://github.com/tronixlabsAU/LCDbackpack/blob/master/PCF8574backpack.ino bzw. mehr infos hier: https://tronixlabs.com.au/news/tuto...r-hd44780compatible-lcd-modules-with-arduino/
- CG_Scale (erst mit Output = 0 und seriellem Monitor, dann auf Output = 2)

Viel erfolg

Tobi
 
Zuletzt bearbeitet:

kalle123

User
Hallo Kalle,

da ich auch ähnliche Überlegungen bezüglich der Mechanik hatte, über keinen 3D-Drucker verfüge und keine Ahnung vom Programmieren habe, wollte ich mal fragen, ob du dein "Geistiges Eigentum" hier zur Verfügung stellst. :)

Gruß Udo

Kein Problem, Udo. ;)

Beruht auf der library von Olav Kallhovd. Ich hab wie schon gesagt, die 2 LC Demo aus der library genommen und was zur Anzeige drumherum "gebastelt".

Ich muss den Auflagerabstand VORNE - HINTEN messen und das CG wird in Bezug auf Auflagepunkt VORNE ausgegeben.

Dann hab ich mir ein zweites sketch erstellt, um einen Wert -> eeprom und wieder eeprom -> zu erhalten. (für den Abstand!)

Dann beides zusammen gefügt.

Der Abstand LCs ist im eeprom gespeichert und wird beim Programmstart angezeigt. Wenn man die LCs verschoben hat, kann man den neuen Abstand mit den Tasten (D2, D3 und D4) schnell ändern und im eeprom speichern.

Abgleich (Kalibrierung) hab ich mit dem sketch von Olav Kallhovd gemacht und händisch in meinen sketch eingetragen.

Will noch die Kalibrierung mit einfügen, befindet sich also noch in der Entwicklungsphase ;)

Gruß KH

(.... so ein bisschen Arduino Programmierung macht Spass und man lernt dabei! Udo, einfach mal selber probieren. )
 

Anhänge

  • CG_SCALE_v0.8.ino.zip.txt
    1,8 KB · Aufrufe: 313

Addicted

User
Es gibt manchmal auch einfache lösungen:
Ist evtl. nur der Kontrast des Dsiplays nicht korrekt eingestellt ? - Bitte drehe doch mal auf dem Poti des I2C-Adapters ;

Viel erfolg

Tobi

Hallo zusammen!

Ich traue es mich ja fast nicht zuzugeben - aber Tobi hatte Recht. :rolleyes:
Der Displaykontrast war schuld. Kurz am Poti eingestellt und schön läuft alles wie es soll! Vielen Dank für Eure Hilfe!

Jetzt werde ich mich mit dem Thema der Kalibrierung widmen.

Gruß
Chris
 

Tobias Reik

Moderator
Teammitglied
Tobi hatte Recht. :rolleyes:
Danke, Ich bin ganz gut im Raten :cool: :p

Jetzt werde ich mich mit dem Thema der Kalibrierung widmen.
am besten:
1. im Sketch den wert von "output" auf 0 ändern.
2. Einspielen und nach "Tare..." ein definiertes Gewicht auf die sensoren legen.
3. Dann im sketch die Werte von const float ldcell_1_calfactor und 2 verändern und sketch neu laden.
-> wieder weiter bei 2. ... bis es wirklich bei beiden sensoren das selbe anzeigt.

Tobi
 

kalle123

User
@Addicted

Kannst auch mal aus der library "HX711_ADC-master/examples/Calibrate/" das calibrate.ino laden und den Sensorabgleich damit machen.

Werte damit bestimmen und dann in Tobis sketch eintragen.

Gruß KH
 

kalle123

User
Ich will hier noch mal was grundsätzliches zu einer GG scale schreiben. Alsda auch Udo hier wohl in die Richtung, was Eigenes zu machen, denkt.

Hab mir ja vor Jahren schon mal eine LC mit HX711 bestellt und da etwas mit rum experimentiert. Ab dann stand das Teil doch im Regal, bis Maggi hier den thread aufgemacht hat.

Mit der library hier https://github.com/olkal/HX711_ADC ist eine gute Basis da.

In der library sind im Ordner "examples" die sketche "Calibrate.ino" und "Read_2x_load_cell.ino" vorhanden.

Zu Calibrate.ino

Man schließt also seine LC an den HX711 an, verbindet den HX711 mit seinem Arduino (GND, 5V, dout pin, sck pin an A0 und A1) spielt das Calibrate.ino sketch auf den Arduino und startet in der arduino das Terminal Fenster.

Dort werden jetzt die Messwerte der LC angezeigt. Bekanntes Gewicht auf die LC aufbringen und mit den Tasten l,L,h,H in der oberen Zeile des Terminal den Kalibrierfaktor solange ändern, bis angezeigtes Gewicht mit dem Gewicht des Testkörpers überein stimmt. Kalibrierfaktor notieren! Das nun auch die 2. LC machen.

Nun zu Read_2x_load_cell.ino

Beide Lastzellen an den Arduino anschließen. (Gnd, 5V, 1.LC dout pin, sck pin an A1 und A2 und 2.LC dout pin, sck pin an A3 und A4)
Kann man aber auch ändern :cool: Das hier im sketch muss nur mit der tatsächlichen Verkabelung überein stimmen!

MuC1WPfl.png


Dann hier noch die auf den Zettel stehenden Kalibrierfaktoren an der Stelle eintragen

InrIIqzl.png


So geändertes sketch auf den Arduino aufspielen und das Arduino IDE Terminal starten.

Im Terminal "rattern" dann die Messwerte der beiden LCs runter.

Bildschirmfoto_2018-02-04_12-42-17.png

Damit haben wir eigentlich schon eine funktionierende CG scale!

Den Abstand der Auflagepunkte (also Maß x + y) kann man ja messen.


Seitenansicht.jpg

Und mit einer einfachen Rechnung lässt sich z.B. das Maß x, also der Abstand des CGs vom vorderen Auflagepunkt bestimmen.
Maß x = (Messwert LC 2 x Abstand der Auflagepunkte des Modells) / (Messwert LC 1 + Messwert LC 2)

Wenn wir nun im Read_2x_load_cell.ino an der Stelle

BF5v7IZl.png


diese Rechenformel einfügen (a ist der Messwert LC 1 und b der Wert von LC 2) und den Wert x berechnen lassen und im Terminal ausgeben, haben wir unsere CG scale erstellt.

Jetzt kann man noch überlegen, will ich den Wert auf einen kleinen Display ausgeben? Vielleicht auf nem 1.8" TFT oder so. Will ich noch irgendwelchen "Komfort" hinzufügen ...

Die allermeisten User hier werden wohl die 3-D Teile nehmen, die Elektronik zusammen löten, die fertigen sketches auf spielen und mancher wird sich dann wundern, warum nix im Display erscheint (sorry :D).

Aber vielleicht gibt es ja hier (einige wenige) User, die sich selber mal an die Arduino Programmierung "wagen" wollen. Darum schreib ich das hier.

Macht Spass und man lernt (auch für andere Projekte). Wie man den CG Stand jetzt ausführt, wo man die LCs hinsetzt, das sei dem Einzelnen überlassen. Ich mach mir auf nem Tesastreifen eine Marke, wo der vordere Auflagepunkt am Rumpf ist, aber da ist man absolut frei.

Nix für ungut - Grüße KH
 

Maggi

User
Hallo Karl-Heinz

danke nochmals für die sehr verständliche und einfache Erklärung....sollte jedem Helfen der da nicht ganz durch blickt ;-)

Nur als Hinweis....das Wiegen an sich und die Berechnungen sind ja nicht das eigentliche Problem, sondern die Auswertung der erhaltenen Daten....denn der Messpunkt muss eben zur Berechnung exakt sein um dann auch das Ausgegebene Schwerpunkts Mass richtig deuten zu können....sprich im Grunde ist es egal wo die Waage angesetzt wird, z.B. ganz vorne an der Modellspitze und ganz hinten am Heck würde eben auch gehen....wichtig dabei, dies sind die Ausgangspunkte für die Verhältnisrechnung (die ja den Schwerpunkt mir ergibt)
An der Waage mit Nasenleisten Anschlag ist dies natürlich sehr komfortabel, da sich an den mechanischen Messpunkten nichts ändern wird und somit immer ein definierter Startpunkt für eine Längenmessung immer vorhanden ist.....

Als Denkansatz um die Waage "allgemein" tauglicher zu machen könnte man sich auch überlegen ob man die Sensoren nicht oberhalb des Modells anbringt....Sprich eine schwebende Waage (wie zwei Kofferwaagen) machen, wobei man das Modell dann in Schlaufen aufhängt, und dann einfach die vordere Schlaufe bündig an der Nasenleiste anliegen muss um wieder einen definierten Messpunkt zu haben....hat das schonmal jemand in Betracht genommen???
 

kalle123

User
Hi Markus.

Ich bestimme das CG ja eigentlich so wie in Beitrag #37 hier im Bild zu sehen. DAS geht so einwandfrei.

Meine Überlegung/Gedanken waren:

- Auflagepunkte mit möglich großem Abstand, um Messgenauigkeit zu erhöhen? Stichwort: Hebelarme der Momente um CG.

- M.E. besteht bei der Kopplung von Anschlag und Messzelle Vorderkante Fläche die Gefahr, anstatt der reinen Gewichtskraft nach unten ein zusätzliches Moment in die Messung vordere Lastmesszelle mit einzubringen.

- Wollte nicht noch ein weiteres Hobby (3-D Druck) anfangen :D

- Hab Spaß, ein bisschen Arduino Programmierung zu machen.

- Für meine Modelle hier brauch in den CG nicht mit ner Mikrometerschraube zu bestimmen ;) Millimeter reichen mir!

- Mit der etwas ausführlichen Darstellung wollte ich ermutigen, selber mal an die Programmierung ran zu gehen.
(ich hab so angefangen, Read_2x_load_cell.ino geladen und in "Mein_CG_v0.1.ino" umbenannt und dann angefangen, kleine Änderungen gemacht. Bei "Mein_CG_v0.8.ino" hatte ich ein gut funktionierendes sketch ...)

Aber Markus, die Idee, mit dem Hängen, ist nicht schlecht. Interessant!! Warum bin ich da nicht selber drauf gekommen? :rolleyes:

NUR, die Schüre müssen wohl senkrecht "laufen", bei schrägem Verlauf geht eine Messkomponente verloren.

Grüße KH

PS. Noch eine Bemerkung: Die HX711 mit den "dicken" Kondensatoren sind vorzuziehen. Einiger der "einfachen" HX711 zeigten hier ziemliches Driften um den Nullpunkt.
 
Ansicht hell / dunkel umschalten
Oben Unten