I2C mit einem ESP01

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo zusammen,

    ich versuche mit meiner Arduino-IDE einen ESP01 soweit zu bekommen, das er über I2C mit einem Slave (hier BMI088) spricht.

    Bei github habe ich ein kleines Programm dazu gefunden.

    https://github.com/bolderflight/BMI088

    Mein erstes Problem wird sein, das ich GPIO0 und GPIO2 für den Bus benutzen muss.

    In dem Programm "Basic_I2C.ino" steht # include " BMI088.h ".

    In BMI088.h steht #include "Wire.h".

    Wie auch immer wird in die Wire.h wohl die Wire.cpp aufrufen.

    In der wire.cpp steht ab Zeile 35:

    Code
    //Some boards don't have these pins available, and hence don't support Wire.
    //Check here for compile-time error.
    #if !defined(PIN_WIRE_SDA) || !defined(PIN_WIRE_SCL)
    #error Wire library is not supported on this board
    #endif

    Das ist meine Fehlermeldung.

    Die Vorschläge aus diversen Internetbeiträgen, in den *.ino - Sketch

    Code
    Wire.begin (0, 2);

    klappt leider nicht.

    Wo kann ich denn sinnvoll die GPIOs zuweisen ohne Dateien wie die wire.cpp zu ändern?

    Danke für Eure Hilfe,

    Achim

  • Hallo hunter_spike,

    bei meinen Projekten habe ich die Arduino.h mit eingebunden.

    Abhängig vom gewählten Hardware Type (Generic, nodemcu, ...) wird darüber die Datei pins_arduino.h eingebunden.

    (Lokation ist ...\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\variants\<Hardware Modell>)

    In dieser pins_arduino.h sind die Defines für PIN_WIRE_SDA und PIN_WIRE_SCL hinterlegt.

    Bei mir funktioniert das recht gut.

    Auch die Umschaltung zwischen einzelnen ESP8266 Modellen in der Arduino IDE geht problemlos.

    Die finale Zuordnung zu den verdrahteten Pins erfolgt in Deinem Sketch mit Wire.begin (<SDA Pin>, <SCL Pin>).

    In dem ESP8266 Library Verzeichnis findest Du unterhalb des Wire Subdirectories bei Examples recht einfache Beispiele, mit denen Du die grundsätzliche Funktionalität testen kannst.

    Ich habe irgendwo im Netz ein Projekt IC2Bus_Scanner.ino gefunden, das eine Inventur des I2C Bus vornimmt und die Adressen der angeschlossene Teilnehmer ausgibt. Habe leider die Quelle nicht greifbar.

    Viel Erfolg beim ausprobieren

    Gruß Greenhouse

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!