Serielle Schnittstelle am Raspberry - Übertragung vom Arduino aus geht nicht

  • Ich möchte gerne von meinem Arduino Nano aus mit meinem Raspberry über die serielle Schnittstelle (RX und TX) kommunizieren.

    Dazu habe ich mir einige Tutorials angesehen z.B. dieses hier: https://tutorials-raspberrypi.…der-kommunizieren-lassen/


    In meiner cmdline.txt steht folgendes:

    dwc_otg.lpm_enable=0 console=serial0, 115200 console=tty1 root=PARTUUID=07ca079a-02 rotfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymoth.ignore-serial-consoles


    Ein /etc/inittab File ist bei mir gar nicht auf dem Raspberry.


    Ich habe alles angeschlossen, aber kann nichts übertragen.

    Weiß ich eigentlich sicher, dass mein RX (GPIO15) und TX (GPIO14) meiner Schnittstelle

    /dev/ttyAMA0 entspricht??


    Mit dem Befehl "ls /dev/tty*" ist nach dem Anschließen des Arduino Nano nichts neues dazugekommen.


    Ist es eigentlich die beste Art, so mit meinem Raspberry zu kommunizieren? Mein Arduino soll einen Sensor überwachen und auswerten und bei Überschreitung die Info dem Raspberry senden.

  • Hallo sunshineh,


    kennst Du das uart_control Shell Skriptes von Ilker Timer zur Aktivierung der seriellen Schnittstelle?


    Ich nutze es bei einem meiner Projekte. Hier kannst Du nachlesen, wie man es verwendet.


    VG

    TGD

  • Quote


    RX/TX kann/darf aber nur 3,3 V

    Ups, das ist ja schön bescheiden :-(

    Ist mein Eingang nun kaputt? Ich hab sie einfach miteinander verbunden. Heißt das, für eine Minimalschaltung muss ich nur in die RX-Leitung einen Spannungsteiler bauen? Ganz schön blöd, wenn doch normal alles mit 5V läuft!

    Oder kann ich "irgendwie sonst" mit dem Raspberry mit mit den 5V direkt kommunizieren?




    Die /etc/inittab gibt es auch hier

    https://oscarliang.com/raspber…no-connected-serial-gpio/

    Nur wen nich sie nicht habe, soll ich die Datei dann anlegen?


    "minicom" hab ich schon installiert, darum würde ich diesen Weg gerne so abschließen.

  • Also irgendwas mach ich noch falsch.


    Einmal habe ich GND von meinem Arduino Nano direkt mit dem GND von meinem Raspberry verbunden.


    Das andere GND von dem Arduino brauche ich für einen Sensor.


    Ich habe nun für die Tx-Leitung von meinem Arduino Nano (5V) einen Spannungsteiler mit den beiden Widerständen 3,3k und 1,8k aufgebaut. Ich habe kein Steckboard hier und deshalb das GND für den Spannungsteiler von der ICSP-Schnittstelle genommen.


    Nun habe ich meinen Arduino Nano über USB angeschlossen und in dem Testcode heißt es nur im Setup "Serial.begin(9600);"

    Woher ist nun klar, welche Serielle Schnittstelle ich anspeche? Kann ich überhaupt gleichzeitig meinen Seriellen Monitor öffnen und mir das gesendete über die UART vom Arduino ansehen?

  • Ich sag ja, verwirrt. Aber jetzt wo du es so explizit erwähnst ist natürlich offensichtlich ;)

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

  • TX hab ich normal verbunden, dem Arduino macht es doch nichts, wenn an seinem Eingang "nur" 3.3V ankommen?!


    Ich glaub, ich weiß nun auch mein Problem. Ich sage im Code, dass ich die Serielle Schnittstelle nutze, dabei habe ich ja die Serielle, bei der ich über USB meinen Arduino Nano programmiere und mir auch am seriellen Monitor die Ausgaben ansehe und außerdem habe ich noch die UART, über die ich mit dem Raspberry sprechen möchte.


    Wie kann ich diese beiden im Code nun unterscheiden, wenn ich z.B. "Serial.print(..." schreibe?

  • Schau dir mal diese Bibliothek für den Arduino an: SoftwareSerial. Dort kann man andere Pins, als die beiden Hardware-Seitigen nehmen. So kannst du mit dem Kommando "Serial.print()" dir Textausgaben für evtl. debuggen anzeigen lassen und gleichzeitig über zwei weitere Pins Daten mit dem Arduino versenden bzw. empfangen

  • TX hab ich normal verbunden, dem Arduino macht es doch nichts, wenn an seinem Eingang "nur" 3.3V ankommen?!

    der PI mag keine 5V an den Pins die beim AVR oder Arduino aus seinen Pins typisch (mit 16MHz) kommen! (deswegen die Schutzschaltung mit R und Dioden)


    bei der ich über USB meinen Arduino

    USB Seriell ist aber eine andere Baustelle als TTL Serial

    Da am nano die Rx und Tx am USB belegt sind hilft am Arduino für einen 2 Kanal nur soft seriell mit anderen Pins und dort dann mit Serial1 und von dort zum PI GPIO

    lasst die PIs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)