EWDuino: EWD Messung mit Arduino

@Kalle

da es für hilfesuchende nicht sehr hilfreich ist ( recht oder unrecht Posts zu lesen ), oder sich Diagramme im netzt zu suchen wenn sie das könnten würden sie nicht fragen.. oder ???
Ich halte mich ab jetzt zurück und überlasse anderen das Feld um diesen Usern zu helfen.

Gruß


Edit:

IMG_7603-3.jpg

IMG_7603-4.jpg
 

Bernd Langner

Moderator
Teammitglied
Hallo

Bin jetzt etwas ratlos habe die Sensoren mit dem Board verbunden.
Ebenso habe ich das Display angeschlossen.
Sketch läßt sich ohne Fehlermeldung kompilieren
und auch hochladen.
Aber keine Zeichen im Display
Das einzige was fehlt ist der Button muß er montiert sein?

Wenn es eine Adresskollison gibt auf dem Bus
startet dann die Software nicht ?

Sorry aber das ist komplettes Neuland für mich

Gruß Bernd
 
Zuletzt bearbeitet:

kalle123

User
Bernd, ein paar Ideen.

Auf der Adapterplatine zum LCD Display ist ein Poti. Dreh da mal dran, wenn das backlight zu hell ist, siehste nix.

Dann würde ich mal anstatt des EWD sketches ein I2C Scanner sketch auf dem Arduino laufen lassen. Dort solltest du die I2C Adressen der beiden Sensoren und der Adapterplatine zum LCD Display sehen.

Hier mal so ein Scanner Programm [I2C_scanner.ino]

Code:
#include <Wire.h>
 
 
void setup()
{
  Wire.begin();
 
  Serial.begin(9600);
  while (!Serial);             // Leonardo: wait for serial monitor
  Serial.println("\nI2C Scanner");
}
 
 
void loop()
{
  byte error, address;
  int nDevices;
 
  Serial.println("Scanning...");
 
  nDevices = 0;
  for(address = 1; address < 127; address++ )
  {
    // The i2c_scanner uses the return value of
    // the Write.endTransmisstion to see if
    // a device did acknowledge to the address.
    Wire.beginTransmission(address);
    error = Wire.endTransmission();
 
    if (error == 0)
    {
      Serial.print("I2C device found at address 0x");
      if (address<16)
        Serial.print("0");
      Serial.print(address,HEX);
      Serial.println("  !");
 
      nDevices++;
    }
    else if (error==4)
    {
      Serial.print("Unknown error at address 0x");
      if (address<16)
        Serial.print("0");
      Serial.println(address,HEX);
    }    
  }
  if (nDevices == 0)
    Serial.println("No I2C devices found\n");
  else
    Serial.println("done\n");
 
  delay(5000);           // wait 5 seconds for next scan
}

Stromversorgung der gesamten Schaltung über USB, ohne Batterie. Den sketch auf den Arduino spielen. Wenn der geladen ist, oben rechts in der Arduino IDE ist ein Button (serieller Monitor). Drauf klicken, und ein Terminal geht auf. 9600 baud und die I2C Adressen sollten dort erscheinen.

Viel Glück - KH

PS. Gibt Videos in youtube dazu. Z.B. https://www.youtube.com/watch?v=OgrE5rTmYeo
 

Bernd Langner

Moderator
Teammitglied
Hallo KH

Das Display habe ich mit einem I2C Sketch getestet und den Kontrast
richtig eingestellt.
Zweite Fehler quelle konnte sein der Bootlader.
Ich verwende die Nanos und da muß Old Bootloader gewählt werden.
Werde den I2C Scanner mal laufen lassen.

Spannung bekommt die Schaltung über USB
da alles auf Bredboard gesteckt ist.

Heute komme ich nicht weiter (Handball)
werde morgen testen und berichten.

Gruß Bernd
 
Zuletzt bearbeitet:

kalle123

User
Noch was.

Auf dem I2C Adapter am LCD Display ist ein Chip PCF8574 oder ein PCF8574A.

Die haben unterschiedliche Adressen auf dem I2C Bus.

Wenn Max jetzt in seinem sketch die Adresse für den PCF8574 drin hat, du hast aber einen PCF8574A, so sieht du nix, weil der Nano das LCD nicht ansprechen kann.

Im sketch ist drin
Code:
LiquidCrystal_I2C lcd([U][B]0x3F[/B][/U],2,1,0,4,5,6,7);  //create a object of LiquidCrystal

Dafür lässt du halt den Scanner laufen, der erkennt (sollte erkennen) welche Komponenten am I2C Bus hängen.

Das, nochmal, sollten die beiden Sensoren sein. (!sensor_A.begin(0x1C))(!sensor_B.begin(0x1D))

cu KH
 

Bernd Langner

Moderator
Teammitglied
Hi KH

Auf meinem Adapter sind PCF8574T verbaut. Wenn ich das richtig
sehe passt dann die Adresse nicht.
die ursprüngliche Adresse ist 0x20

Ich schätze das dies der Fehler ist.
Danke für den Super Tip KH

So keine Ruhe im Sketch 0x20 eingesetzt immer noch keine Daten:confused:
I2c Scanner Ausgabe 0x27 :mad: (diese Chinamänner)
Adresse erneut geändert und siehe da es steht der Text Sensor A failed:D

Damit einen großen Schritt weiter.

Gruß Bernd
 

Bernd Langner

Moderator
Teammitglied
Hallo Koen


Dachte das es an den Sensoren lag aber bei mir Initalisierte das Display nicht
da die I2C Adresse vom Display nicht ox3f sondern 0x27 ist.
Das mit den Sensoren kommt heute dran aber mit dem Scanner
kann man das gut auslesen.

Gruß Bernd
 
Hallo

Die Teile der EWD Waage sind ausgedruckt.
Habe MMA8451 Sensoren bestellt und habe die MMA8452 erhalten.

Christian könntest Du mir bitte eine veränderte Library von Adafruit schicken damit mein 8452 läuft ?
Vielen Dank für die Unterstützung.

Alfred
 
Hallo zusammen,

ich habe noch einige Druckteile übrig von einer speziellen auf Segler abgestimmten Version, mit beweglich Prismen die sich der Flächen / Leitwerk Geometrie anpassen
Die teile sind so klein und leicht wie nur irgend möglich.

Grund: um so schwerer die Messbrücken sind, umso ungenauer das Messergebnis, das Gewicht zieht die Ruderflächen oder das ganze Leitwerk nach unten... schon stimmen die Messungen nicht mehr.
Ebenso habe ich auch eine Speziell Elektronik BOX, die auf Ordnung ausgelegte ist und alles ohne kleben oder sonstiges Gebastel mit einem Klicksystem an Ort und Stelle hält.
Die Halter sind für Arduino ProMini und 9V Block Batterie vorgesehen, die Kabel Clipse sind so das zwei 4 Adrige Kabel und zwei Litzen hindurch passen.

Wer Interesse hat einfach eine PM




zum Testen habe ich jeweils ein dünnen Pappstreifen unter die Messbrücken gelegt.
Der Arduino Nano dient nur den Größenvergleich besser einzuschätzen.
Anhang anzeigen 2074470Anhang anzeigen 2074468Anhang anzeigen 2074472Anhang anzeigen 2074474Anhang anzeigen 2074475


Aufgrund einiger Nachfragen was die Größe und das Gewicht angeht, hier die gewünschten Vergleiche.

IMG_7664.jpgIMG_7669.jpgIMG_7673.jpgIMG_7677.jpgIMG_7679.jpgIMG_7678.jpg
 
... eine veränderte Library von Adafruit schicken damit mein 8452 läuft ?

Hi,

im einfachsten Fall, kannst du im ino Sketch diese Zeilen auskommentieren:

Code:
    //check an initialize sensors 0x1C und 0x1D
    if (!sensor_A.begin(0x1C))
    {
[B]    //    lcd.setCursor(0,0);
    //    lcd.print("Sensor A failed");
    //    while (1);[/B]
    }//end if

damit gehts dann schon mal weiter. Das muß man dann auch im calibrate sketch machen, sondt geht der nicht (hab ne Zeit gebraucht um das rauszufinden, naja, war schon spät)


zweite Variante:

im File libraries\Adafruit_MMA845X\Adafruit_MMA8451.cpp
da wird an einer Stelle abgefragt, wie sich das Modul meldet, ich hab dann das "return false;" rauskommentiert und ein paar Kommentare und Outputs mit reingenommen


Code:
 /* Check connection */
  uint8_t deviceid = readRegister8(MMA8451_REG_WHOAMI);
  if (deviceid != 0x1A)
  {
    /* No MMA8451 detected ... return false 
	   MMA8451 = 0x1a, MMA8452 = 0x2a, MMA8453 = 0x3a
	*/
    Serial.print("No MMA8451 detected ... your deviceID is 0x");
    Serial.println(deviceid, HEX);
[B]    Serial.println("MMA8451 = 0x1a, MMA8452 = 0x2a, MMA8453 = 0x3a");
[B]    //return false;[/B][/B]
  }

Ich hab aber das nicht mehr weiter verfolgt, weil ich mittlerweile die 8451 bekommen habe. Die sind auch genauer, wie Markus weiter oben schon geschrieben hat.
Ich konnte aber leider nicht mehr beide Versionen direkt miteinander vergleichen, weil ich keinen Arduino mehr griffbereit hatte.

Gruß,
Christian
 

kalle123

User
Hallo zusammen,

ich bin auf der Suche nach einer Bezugsquelle für die Sensoren 8451 ....
Ich brauche 4 Stück. Hat jemand einen Tipp?

Danke vorab, Gruß Olaf

Lieferzeit und Preis? Was für Vorstellungen hast du da?

Händler hier ~ 9€ pro Sensor + Versand. Paar Tage da.

China ~ 2€ pro Sensor, Versand kostenfrei. Ca. 3 Wochen.

cu KH
 
Ansicht hell / dunkel umschalten
Oben Unten