- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 3 von 3

Thema: wire-Bibliothek bei nodeMCU und Arduino

  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von Moppi
    Registriert seit
    18.03.2018
    Beiträge
    2.290
    Blog-Einträge
    21

    wire-Bibliothek bei nodeMCU und Arduino

    Anzeige

    Guten Morgen,

    bei Beschreibungen im Netz habe ich zu WIRE gefunden, dass bei der Funktion, die Wire.onRequest übergeben wird, nur ein Befehl ausgeführt werden soll, also ein Wire.write(). ".write()" gibt es in unterschiedlichen Ausführungen, so dass man Strings und anderes übertragen kann. Aber mir ist noch nicht klar, warum man nur einmal Wire.write() ausführen soll, wenn eine Anfrage vom I2C-Master erfolgt. Ich könnte mir vorstellen, dass Wire.write() eine Kommunikation startet, die Daten überträgt und die Kommunikation dann wieder abschließt, darüber habe ich aber bisher nichts gefunden.

    Außerdem, um das noch anzufügen, verstehe ich noch nicht, warum man nur auf Anfrage des Masters sendet, wenn es nur einen Master und einen Slave gibt. Bei mehreren Slaves ist mir das klar. Aber sonst könnte doch th. der Slave auch einfach Daten senden und der Master schaut ab und an, ob was angekommen ist und antwortet dann. Ich habe schon gelesen, dass bei nodeMCU und Arduino der MAster das nodeMCU sein soll und der Arduino der Slave, anders herum soll es Schwierigkeiten geben.


    MfG
    Geändert von Moppi (29.09.2020 um 07:43 Uhr)

  2. #2
    HaWe
    Gast
    Grundsätzlich ist I2C als Multi-Slave-Bussystem so gestrickt, dass ein Slave von sich aus nie etwas senden darf, ohne dazu aufgefordert worden zu sein, das gäbe sonst Datenmüll. Ob gesendet werden soll und wenn ja von wem, entscheidet immer nur ein Master. Dabei ist es egal, ob momentan nur 1 Slave am Bus hängt oder viele, I2C ist eben grundsätzlich für multi-slaves konzipiert, ohne Sonderfälle für ausnahmsweise single-Slave setup.
    Grundsätzlich sind bei I2C aber auch mehrere Master erlaubt, ob und wie das Arduino implementiert hat, weiß ich allerdings nicht.
    Zur Funktion von onRequest etc. hilft vlt dieser Link:
    http://html.szaktilla.de/arduino/6.html

    Dass der ESP8266 sich bei I2C anders verhält als "normale" Arduinos, liegt sicher an seinem auf RTOS beruhenden single-core-Multithreading OS, bei dem der Scheduler zwischendurch von sich aus die cpu umschaltet zwischen Arduinoprogramm und WiFi-Firmwareroutinen; ich könnte mir vorstellen, dass er als Slave möglicherweise bestimmte Anfragen nicht erhält, wenn er gerade mit WiFi beschäftigt ist, während er als Master im Hauptprogramm nur dann auch I2C bedient, wenn er auch laut Scheduler "dran" ist.

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von Moppi
    Registriert seit
    18.03.2018
    Beiträge
    2.290
    Blog-Einträge
    21
    Ja, vielleicht so oder so ähnlich, I2C soll nur als Softwarelösung auf dem nodeMCU möglich sein.
    Ja gut... Danke erstmal!

    MfG

Ähnliche Themen

  1. nodeMCU ESP-12E und Arduino NANO
    Von Moppi im Forum NodeMCU-Board und ESP8266, ESP32-Serie
    Antworten: 14
    Letzter Beitrag: 02.02.2020, 15:51
  2. Serielle Kommunikation zwischen Arduino Uno R3 und NodeMCU 12-E
    Von fcn200 im Forum NodeMCU-Board und ESP8266, ESP32-Serie
    Antworten: 73
    Letzter Beitrag: 06.04.2019, 11:35
  3. nodeMCU an Arduino
    Von Moppi im Forum NodeMCU-Board und ESP8266, ESP32-Serie
    Antworten: 16
    Letzter Beitrag: 14.10.2018, 10:30
  4. NodeMCU an Arduino-IDE, Fehler beim Kompilieren
    Von gkd im Forum NodeMCU-Board und ESP8266, ESP32-Serie
    Antworten: 5
    Letzter Beitrag: 28.05.2017, 23:21
  5. Arduino Bibliothek soll auf andere Bibliothek zugreifen
    Von RoboterSindCool im Forum Arduino -Plattform
    Antworten: 6
    Letzter Beitrag: 11.12.2016, 16:50

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •