-         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 15

Thema: nodeMCU ESP-12E und Arduino NANO

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

    nodeMCU ESP-12E und Arduino NANO

    Anzeige

    Praxistest und DIY Projekte
    Hallo zusammen!

    Ich versuche mit einem nodeMCU und einem ATmega eine serielle Verbindung herzustellen.
    Bisher klappte das mit einem Single-ATmega328P-PU (Grundbeschaltung), problemlos. Außer, dass ich zum Programm aufspielen die serielle Verbindung zwischen den Geräten trennen musste.

    Nun habe ich einen NANO. Bei dem funktioniert das auch, also Signale kommen an und er sendet die auch zurück. Ob ich SoftwareSerial verwende oder UART ist egal.

    erstes Problem:
    Ich nutze am nodeMCU die Pins für GPIO13 und GPIO15, in Verbindung mit SoftwareSerial. So wie ich raus fand, macht GPIO15 Schwierigkeiten.
    Wenn der GPIO15 (als TX) mit dem RX0-Pin am NANO verbunden ist, dann startet das nodeMCU nicht durch (bleibt hängen) und das Aufspielen von Software schlägt auch fehl.
    Nur wenn ich SoftwareSerial (und also andere Pins) am NANO verwende, dann funktioniert alles. Ist das nodeMCU einmal gestartet (auch die Schnittstelle per SoftwareSerial initialisiert)
    und ich verkabele dann die beiden Geräte, dann funktioniert die Kommunikation zwischen beiden Geräten, sowohl mit SoftwareSerial, am Arduino NANO, als auch per UART RX/TX, am Arduino NANO.

    zweites Problem:
    Wenn ich SoftwareSerial verwende, bekomme ich grundsätzlich keine störungsfreie Kommunikation zwischen NANO und nodeMCU (Baudrate egal). Das kenne ich so auch nicht. Nach etwa 8 Zeichen schleicht sich der erste Fehler ein.
    Und noch etwas: Störquellen sind da nicht, die ich als solches sehen würde, vorhandene Motoren laufen nicht, weil sie nicht angesteuert werden. Ich probiere einfach nur die serielle Kommunikation.

    Jetzt hoffe ich, dass jemand hier schlau daraus wird und mehr Erfahrung hat, als ich und mir dazu etwas sagen kann!


    zur Vollständigkeit, Code für nodeMCU
    Code:
    #include <SoftwareSerial.h>
    
    
    SoftwareSerial mySerial(13, 15); // RX, TX
    
    
    void setup() {
        //Wenn ESP mit Error 29 neu startet
        //ESP.eraseConfig();
        //ESP.reset();
    
    
      pinMode(13,INPUT);
      pinMode(15,OUTPUT);
      delay(5000);
    
    
      // Open serial communications and wait for port to open:
      Serial.begin(115200);
      while (!Serial) {}
    
    
      mySerial.begin(4800);
      while (!mySerial) {}
      
    }
    
    
    int a;
    
    
    void loop() { // run over and over
      if(mySerial.available()){
        while (mySerial.available()){
          Serial.write(mySerial.read());
        }
        delay(100);
      }
      else{
          a++;
          mySerial.print(a);
          mySerial.print("!");
          mySerial.print(a);
          mySerial.print("!");
           mySerial.print(a);
          mySerial.print("!");
           mySerial.print(a);
          mySerial.print("!");
          mySerial.println("Hello, world: ");
      }
      yield();
    }
    zur Vollständigkeit, Code für Arduino
    Code:
    #include <SoftwareSerial.h>
    
    
    SoftwareSerial mySerial(3, 2); // RX, TX
      int a;
    
    
    void setup() {
      delay(5000);
      mySerial.begin(4800);
      while (!mySerial) {}
    }
    
    
    void loop() { // run over and over
      while (mySerial.available()) {
        mySerial.write(mySerial.read());
      }
    }
    Der Code ist jetzt nur für SoftwareSerial, allerdings nicht ohne Störung in der Übertragung möglich.




    Freundliche Grüße
    Moppi

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    51
    Beiträge
    1.613
    Sowas ähnliches hatte ich im XPlorer1 gemacht- auch ein Nano und ein NodeMCU.
    Allerdings hatte ich I2C zur Kommunikation benutzt....von daher: wenig hilfreich hier.

    Pegelwander hast du verbaut?
    Der NodeMCU ist _nicht_ 5V-tolarant!
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von Moppi
    Registriert seit
    18.03.2018
    Beiträge
    1.768
    Blog-Einträge
    9
    Pegelwandlung habe ich durchgeführt.


    MfG

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.03.2011
    Beiträge
    1.807
    Zitat Zitat von Moppi Beitrag anzeigen
    Ich nutze am nodeMCU die Pins für GPIO13 und GPIO15, in Verbindung mit SoftwareSerial. So wie ich raus fand, macht GPIO15 Schwierigkeiten.
    Zu GPIO15 fällt mir ein, daß der Pin beim Booten low sein muß.

    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von Moppi
    Registriert seit
    18.03.2018
    Beiträge
    1.768
    Blog-Einträge
    9
    Zitat Zitat von Klebwax Beitrag anzeigen
    Zu GPIO15 fällt mir ein, daß der Pin beim Booten low sein muß.

    MfG Klebwax
    Wenn ich die Kabel abziehe, dann hängt der in der Luft, dann bootet das nodeMCU.

    Steht irgendwo, dass der auf LOW gezogen werden soll?

    MfG

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.03.2011
    Beiträge
    1.807
    Zitat Zitat von Moppi Beitrag anzeigen
    Steht irgendwo, dass der auf LOW gezogen werden soll?
    Der Zustand der GPIO15, GPIO0 und GPIO2 , wenn Reset oder CH_PD high wird, bestimmt den Boot Mode des ESP. Hier eine Tabelle dazu
    Klicke auf die Grafik für eine größere Ansicht

Name:	ESP-BootModes.jpg
Hits:	7
Größe:	53,6 KB
ID:	34789

    In der linken Spalte stehen die Zuständer der Pins 15, 0 und zwei. Die beiden grünen Werte werden typisch verwendet, einmal zum Flashen, einmal zum Betrieb.

    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von Moppi
    Registriert seit
    18.03.2018
    Beiträge
    1.768
    Blog-Einträge
    9
    Irgendeinen Zusammenhang wird es da wohl geben. Denn wenn ich den RESET-Knopf auf der Platine drücke, bleibt der ESP hängen, aber nicht, wenn ich die Stromversorgung trenne und er dann neu startet.
    Wenn ich SoftwareSerial verwende, kann ich auf GPIO12 und GPIO13 umschwenken, GPIO15 dann nicht benutzen. Wird, mangels der nutzbaren Pins, dann immer weniger, was ich am nodeMCU betreiben kann.
    Wenigstens bekomme ich noch eine SD-Karte dran und der Rest muss dann an den NANO angeschlossen werden.

    MfG

  8. #8
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    51
    Beiträge
    1.613
    Hm, mir ist da noch was eingefallen: ich hatte Timingprobleme (irgendwelche Interrupts hatten mir in die Suppe gespuckt, und damit die Kommunikation ab und zu gestört).
    Das hab ich gelöst, indem ich eine zusätzliche Busy-Leitung zwischen beiden Controllern gelegt hatte.
    Wer was vom anderen wollte, hat die auf HIGH gezogen, und somit konnte ich das Problem dann umschiffen.

    Das hilft dir evtl. auch weiter.
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.03.2011
    Beiträge
    1.807
    Zitat Zitat von Moppi Beitrag anzeigen
    Irgendeinen Zusammenhang wird es da wohl geben.
    Nicht irgendeinen, sondern wie in der Tabelle, die ich gepostet hab. Elektronik funktioniert deterministisch.

    Denn wenn ich den RESET-Knopf auf der Platine drücke, bleibt der ESP hängen, aber nicht, wenn ich die Stromversorgung trenne und er dann neu startet.
    Wenn ich SoftwareSerial verwende, kann ich auf GPIO12 und GPIO13 umschwenken, GPIO15 dann nicht benutzen. Wird, mangels der nutzbaren Pins, dann immer weniger, was ich am nodeMCU betreiben kann.
    Wenigstens bekomme ich noch eine SD-Karte dran und der Rest muss dann an den NANO angeschlossen werden.
    Was spricht eigentlich dagegen, sich mal GPIO15 (oder auch die anderen Pins) auf dem Scope während Reset oder Power-On anzusehen? Und was spricht dagegen einen Pulldown an GPIO15 zu legen, damit er beim Booten low ist, wie man das mit solchen Config-Eingängen normalerweise macht?

    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

  10. #10
    Erfahrener Benutzer Robotik Einstein Avatar von Moppi
    Registriert seit
    18.03.2018
    Beiträge
    1.768
    Blog-Einträge
    9
    Das Problem ist, dass ich nichts mache, außer ser. Kommuniaktion. Da ist kein Sensor angeschlossen, keine IR-Diode oder sonst was. Außer er L293D, der nicht angesteuert wird.
    Wie ich das Problem lösen kann, das ist mir geläufig, werde ich auch tun müssen. Aber Störungen in der Kommunikation verlangsamen die Reaktionszeit auf der Empfängerseite.
    Wenn ich günstige Einstellungen finde, habe ich nicht so viele Fehler.

    MfG

    - - - Aktualisiert - - -

    GPIO12 und GPIO13 machen weniger Probleme. Die Störungen in der Übertragung bleiben.
    Stimmt aber, ich könnte noch eine dritte Verbindung stecken. So dumm ist das gar nicht.

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. 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, 10:35
  2. nodeMCU an Arduino
    Von Moppi im Forum NodeMCU-Board und ESP8266, ESP32-Serie
    Antworten: 16
    Letzter Beitrag: 14.10.2018, 09:30
  3. Antworten: 9
    Letzter Beitrag: 08.01.2018, 16: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, 22:21
  5. Arduino Nano mit ESP-201
    Von hirnfrei im Forum Arduino -Plattform
    Antworten: 23
    Letzter Beitrag: 21.11.2016, 20:05

Berechtigungen

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