Ruderweg Messung mit Arduino

kalle123

User
Warum ist das denn so schwierig dieses Programm vernünftig zum Laufen zu bekommen?
Falsch gefragt ;)

Warum ist es für dich so schwierig ....

Dir fehlt da etwas die Routine. Aber das kommt. Nur Mut!

So, bin zwar unter Linux, aber ich hab noch ein 'sauberes' WIN 7 in einer VM. Da hab ich die Arduino IDE 1.8.10 installiert.

Dazu noch die beiden Libs in das frische IDE eingebunden.

Die https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads/

und dann noch die ADXL345 (Ich hänge die hier an, .txt bitte wegnehmen und dann in die IDE)

Ich hänge jetzt noch zwei screenshots an. Einmal die IDE, nach Kompilieren und Hochladen und dann noch ein Bild, wo du sehen kannst, die beiden installieren Libs.

cu KH
 

Anhänge

  • ADXL345.zip.txt
    27,1 KB · Aufrufe: 159
  • Bildschirmfoto_2020-01-03_19-15-48.png
    Bildschirmfoto_2020-01-03_19-15-48.png
    46,5 KB · Aufrufe: 170
  • Bildschirmfoto_2020-01-03_19-14-21.png
    Bildschirmfoto_2020-01-03_19-14-21.png
    60,9 KB · Aufrufe: 187
Sensorendifferenz

Sensorendifferenz

So, melde mich auch wieder.
Neue Sensoren da, gleiches Bild.
Nach weiteren Versuchen konnte ich feststellen, dass die Werte stimmen, wenn ich über die Lötleiste der Sensoren nach oben und unten kippe, anders als wie imThread abgebildet ???
Geänderte Gehäuse für die Sensoren, damit die senkrecht auf dem Ruder stehen,ist das geringste Problem - aber ich verstehe das nicht.
Sensoren sehen gleich aus wie im Thread, auch aufgedruckter Orientierungspfeil xyz ist gleich, Typ gleich.
Habe versucht, im Sketch die xyz-Werte zu tauschen, klappt aber nicht.
Das Einzige, was mir auffällt, ist, dass mein neu gekaufter Uno ab und zu hängen bleibt und mit dem Resetknopf wiederbelebt werden muss - kann aber kaum die Ursache sein.
Da das Projekt schon x-mal nachgebaut wurde, ist das sicher fehlerfrei, davon gehe ich aus.
Auch die Stromversorgung schliesse ich aus, habe auch ein passendes Netzteil mit getestet.
Versuche, einen Nano statt Uno zu verwenden, klappten nicht wegen Kombinationsversuch mit Keypad shield.

Hans-Peter
 
So, es funktioniert. DANKE!! Es lag an meiner Arduinoumgebung. Nachdem ich alles gelöscht und neu installiert habe, lief die Kompilierung ohne Fehler durch.
Vielen Dank nochmals für deine Hilfe.

Dietmar
 

Eckehard

User
Hallo Hans-Peter,

das von Dir Beschriebene ist schon sehr komsich...

Ich könnte mir nur erklären, dass die Kalibrierung nicht korrekt gewesen ist..

Kannst Du einmal die Werte von:

Code:
/************************************ SENSORCALIBRATION ************************************/
// OFFSET values
// replace "0" with calculated value after sensor calibration
#define offsetX1   -2
#define offsetY1   0
#define offsetZ1   -2
#define offsetX2   -1
#define offsetY2   0
#define offsetZ2   0

// GAIN factors
// replace "1" with calculated value after sensor calibration
#define gainX1     64
#define gainY1     63
#define gainZ1     62
#define gainX2     64
#define gainY2     63
#define gainZ2     63

(RC_ANGLE_THROW_KeypadShield_5.ino, Zeile 101 und folgende, für MEINE ADXL345 Sensoren)

in DEINEM ino Sketch, also für Deine ADXL345 prüfen?

Weiterhin interessieren mich die Zeilen angle1 =... und angle2 =... von DEINEM ino Sketch

Code:
angle1 = int(tilt1);                      //sensor orientation!
calc2 = x2g / sqrt ((sq(y2g) + sq(z2g)));  //sensor orientation!
tilt2 = atan(calc2) * 57.296;
angle2 = int(tilt2) * -1;                  //sensor orientation! "* -1" because 180degrees rotated compared to sensor 1

(RC_ANGLE_THROW_KeypadShield_5.ino, Zeile 284 und folgende, für MEINE ADXL345 Sensoren)

Grüße
Eckehard
 
Hallo Eckehard,

danke für Deine Mithilfe.
Ich habe unter folgendem Link Dateien freigestellt:

https://www.dropbox.com/sh/wu23penabjzzuxl/AADrmuAjl_stVWERQ_ZSBS5oa?dl=0

Es sind:
-mein Berechnungsprogramm für die Kalibrierwerte
- Eintragsbereich der Kalibrierwerte im Programm
- Bereich der Berechnung - Main Loop
- Video über die Abweichung der beiden Messwerte.

Der Messwert 2 weicht zunehmend zum Winkel ab, tauschen der beiden Adressierungen hilft nicht, Sensorwerte bei Adressierung auf erste Adresse richtig (Test bei inzwischen 4 Sensoren ADXK345)
Aufbau der Einfachheit halber wieder auf dem Breadboard, war vorher verlötet - gleiches Bild. Auch irritiert mich die Drehrichtung, bei den Bildern im Thread wird der Sensor anders gekippt.
Es gibt im Netz einen Sketch, um die Werte direkt zu beobachten beim Drehen, haben wir für beide Sensoradressen mit den vorhandenen Sensoren ausgewertet, weichen produktionstechnisch leicht ab, mehr aber nicht. Pin CS (auf "High" definiert auch auf +5V gelegt ändert nichts).

Habe jetzt gestern noch mal 2 verschiedene Uno´s bestellt, glaube zwar nicht, daß es daran liegt.
Die Programmierung haben wir übers Wochenende nochmals zerlegt (mein Sohn ist studierter Informatiker mit C++-Kenntnissen), die stimmt (sorry, suchen langsam überall).
Wenn die beiden Uno´s da sind, teste ich nochmals und berichte.
Da die Schaltung und das Programm nicht kompliziert sind, mach ich wahrscheinlich irgend einen dummen Fehler, der mir nicht auffällt.
Ich steh ehrlich gesagt vor einem Rätsel.

Hans-Peter
 

RayX

User
Du hast bestimmt nur die Sensoren in der falschen Achse ausgerichtet.
Ardu und sensor Neukauf kannst dir sparen. Oder du kippst den Sensor beim testen nicht 100% im rechten Winkel zur Auflage, das reicht um seltsame Messergebnisse zu bekommen.
Einfach mal testen
 
Du hast bestimmt nur die Sensoren in der falschen Achse ausgerichtet.
Ardu und sensor Neukauf kannst dir sparen. Oder du kippst den Sensor beim testen nicht 100% im rechten Winkel zur Auflage, das reicht um seltsame Messergebnisse zu bekommen.
Einfach mal testen

Leider keine Lösung. Sensoren ergeben bei vorhandenem Programm nur in dieser Ausrichtung ein verwertbares Signal.
Im Monitoring werden alle 3 Achsen korrekt ausgegeben.
Der Sensor mit der höheren Adresse zeigt bereits ab 0° aufwärts oder abwärts eine zunehmende Abweichung, bei 45° sind es etwa 7° (das sind noch realistische Ausschläge).

Hilft mir leider nicht weiter, trotzdem Danke !

Hans-Peter
 

RayX

User
Hmm...

ich habe schon einige von den Messgeräten gebaut, aber solch einen Fehler hatte ich noch nie.
Aber ich habe die MMA Sensoren verwendet, aber das dürfte bis auf die Genauigkeit sonst egal sein.
Hast du evt in der Kalibrierung etwas nicht richtig gemacht ?
 
Für die Kalibrierung habe ich mein Rechensheet sowie die im Sketch verwendeten Daten unter dem Link wenige Posts weiter oben in meiner Dropbox hinterlegt. Auch ein anderes im I-Net gefundenes Kalibrierverfahren getestet.
Kalibriert habe ich inzwischen xmal, die Ergebnisse sind bis auf minimalste Abweichungen identisch, sogar einen Kalibrierwürfel hab ich mir inzwischen per 3d gedruckt.
Komisch ist schon, dass beim Austausch der Kalibrierdaten im Sketch sowie Tausch der Sensoradressen (0x53 <>0x1D) dieselbe Abweichung immer nur für Adresse 2 auftaucht.
Dafür hab ich keine Erklärung - ausser der verwendete Uno hat einen Defekt (werden wir sehen, hoffentlich morgen kommt die Lieferung), zwar unwahrscheinlich, der Rest wurde bereits getauscht zum Fehler einkreisen.

Ich komme mir langsam selber wie ein Idiot vor, habe schon etliche Elektronikprojekte erfolgreich gebastelt.

Hans-Peter
 

RayX

User
Komisch ist schon, dass beim Austausch der Kalibrierdaten im Sketch sowie Tausch der Sensoradressen (0x53 <>0x1D) dieselbe Abweichung immer nur für Adresse 2 auftaucht.

Wenn es nur immer eine Adresse betrifft wäre vielleicht eine Idee...
Bei manchen Sensor Boards wird SA0 oder auch A gegen Masse mit 10K gelegt so steht es jedenfals in den Bauanleitungen, bei manchen wird aber der SA0 oder A auf die 3,3V gelegt um die Adresse zu wechseln, bei meinen wird der SA0 auf die 3,3V gelegt, mit Masse funktioniert es dort nicht, den Widerstand verwende ich auch nicht sondern einfach eine Brücke. Hatte am Anfang auch so meine Probleme damit.
Leider finde ich die Seite nicht mehr auf der ich da gefunden hatte.
Ist vielleicht einen Versuch wert

Dafür hab ich keine Erklärung - ausser der verwendete Uno hat einen Defekt (werden wir sehen, hoffentlich morgen kommt die Lieferung), zwar unwahrscheinlich, der Rest wurde bereits getauscht zum Fehler einkreisen.

Hans-Peter

Hmm... die Sensoren laufen über den I2C Bus also beide an an den gleichen zwei Pins am Arduino, das eine Adresse nicht richtig funktioniert kann ich mir nicht wirklich vorstellen, aber wenn ich alles durch probiert hätte würde ich vermutlich auch das versuchen um den Fehler zu finden.
 

Eckehard

User
Hallo Hans-Peter,

wenn ich Dein Dropbox Video richtig verstehe, hast Du die Sensoren...

- an 3,3V angeschlossen ?
- bewegst/betreibst Du diese in der gleichen Orientierung ? Dann musst meinen Code anpassen!
- hast Du eine "richtige" Bus Verbindung für SDA und SCL: vom Ardunio(Bus Master) zum ersten Sensor (terminiert, Bus Slave 1), dann weiter zum zweiten Sensor (terminiert, Bus Slave 2) ?
- sind die SDA und SCL Anschlüsse auf beiden Sensor Boards wirklich terminiert ?
- nur der zweite Sensor hat eine Brücke von SD0 nach VCC ?
- alles mit Steckbrett und Klemmverbindern verkabelt.... Sind die Verbindungen ausreichend elektrisch "stabil", meine Erfahrungen mit Steckbrücken sind "durchwachsen". Eine Lötverbindung ist besser.

Idee:
- Ich habe wie in Beitrag 159 ("Zum I2C Bus noch folgende Anmerkungen...") beschrieben eine "Sternverkabelung", was tadelos funktioniert... Vielleicht kannst Du dies einmal versuchen?
- Hast Du "Select" Button schon mal 1Sekunde gedrückt (zum Nullen)?

Bleib drann, und viel Glück!

Eckehard
 
verspätete Lieferung

verspätete Lieferung

so, endlich sind meine bestellten Teile gekommen: deutscher Lieferant hatte wohl auch warten müssen, bis Teile aus Fernost da.
Schnell verkabelt, Sketch aufgespielt auf anderes UNO-Modell mit dem gesteckten Chip).
Ergebnis: gleiches Bild - sch...

@Eckehard:
- mit beiden Spannungen versucht, 3,3 V und 5 V
- das -1 im Script hab ich auch schon versucht, ändert doch nur die Anzeigerichtung - oder ?
- Terminierung über die beiden Sensorboards lt. Beschreibung vorhanden
- mit Stern- und Busverkabelung probiert - keine Änderung
- genullt habe ich auch schon x-mal
- Breadboard ist für mich wenig zuverlässig, habs auch schon verlötet getestet ohne Änderung
- gebe ich die Kalibrierwerte im Script falsch ein (widerspricht der getauschten Adressierung mit Tausch der Kalibrierwerte)?

Ich werde jetzt wohl auf Kalle´s Version switchen, auch wenn mir die Version mit beiden Werten sympatischer ist.
Bin wohl zu doof für die andere Version.

P.S. Habe gerade nochmals mit 3,3V und neuem Board getestet - jetzt gehts parallel ??? Sensoren können auch 5V, bei anderem UNO-Board hab ich die Abweichungen, Spannung am PIN belastet weicht leicht nach unten ab (3,2 anstatt 3,3V). Ist das der Grund ?
Bekomme ich wohl doch noch die gewünschte Version.

Danke an Alle, die sich bemüht haben, mit mir zu einer Lösung zu kommen.
Ich hoffe, ich kann mich da auch mal revanchieren.
Schönes Wochenende noch
Hans-Peter
 

Eckehard

User
Hallo Hans-Peter,

uiiii, das klingt nun nach einem Problem mit "Deinem ersten" Uno-R3 Board.... Solch ein Fehler ist dann echt fies.....

Bleib mal drann an der "2 Sensor Version", ich würde mich freuen, wenn es auch bei Dir laufen würde!

Grüße
Eckehard
 
Geschafft !!!

Geschafft !!!

kaum zu glauben, aber wahr !
Die 2-Sensorversion funktioniert, zwei Bilder anbei.
Der erste UNO hatte tatsächlich den Fehler, dass bei unbelastetem Spannungsausgang (3.3V und 5.0V) die Spannung sauber ist und konstant, bei Belastung mit zwei Sensoren ist auf dem Oszilloskop ein wahrer "Freudentanz" zu sehen ! Das Board hat wohl ein Problem bei der Spannungsversorgung. Der Fehler tritt sowohl bei USB-Versorgung sowie bei Netzteilinput auf. Auf die Idee muss man erst mal kommen !

Die beiden Gehäuse für Messwertaufnehmer (mit Beschriftung rechts/links im 3d-Druck / bin schon fast stolz) sind gut zu befestigen, lediglich das PLA rutscht auf der Oracoverfolie etwas. Da muss ich noch auf die Unterseite etwas rutschhemmendes dünnes kleben.

IMG_20200121_202617.jpgIMG_20200121_203017.jpg

Noch ein Tipp: als Kabel habe ich 4-adriges Telefonkabel verwendet (hatte ich noch aus der ISDN-Zeit, leicht und flexibel).

Hans-Peter
 
Hallo Kalle,

ja - Zangengeburt mit Kaiserschnitt kombiniert.

Wenn mir das jedesmal so gehen würde, müsste ich mir auf meine alten Tage (Greisenalter 60 Jahre) doch noch überlegen, ob das Hobby gut gewählt ist ;)

Hans-Peter

P.S. wenn mir das bei der als nächstes gplantem Projekt EWD-Waage auch so geht, blamier ich mich bestimmt bis auf die Knochen !
 

Eckehard

User
Hallo Hans-Peter,

super, danke für Deine Rück/Erfolgsmeldung und Bilder....

Kabel sind bei mir 4adriges Flachband...
... und ich habe die Orientierung der Sensoren (im Sketch) so geändert, dass beim "linken" Sensor das Kabel rechts den Sensor verläßt, beim "rechten" Sensor jedoch links...
... damit ich mit dem Arduino in der Mitte die Ausschläge des linken und rechten Ruders (Quer/Wölb) gleichzeitig vergleichend messen kann....

(Schönes Gehaüse.... hätte ich auch gerne ;-) )

Viel Spaß beim Arduinobasteln......

Eckehard
 
Ansicht hell / dunkel umschalten
Oben Unten