- LiTime Speicher und Akkus         
Ergebnis 1 bis 8 von 8

Thema: Raspberry Pi soll mit Arduino kommunizieren. 3,3 <-> 5V

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    27.12.2017
    Beiträge
    19

    Raspberry Pi soll mit Arduino kommunizieren. 3,3 <-> 5V

    Anzeige

    Praxistest und DIY Projekte
    Hallo zusammen,

    ich möchte, dass mein Raspberry Zero W mit einem Arduino Pro Mini kommunizier (Rx, Tx). Dummerweise habe ich nur Arduinos in 5-Volt-Ausführung gekauft. Nun liest man ja überall, dass ich einen Spannungsteiler oder so dazwischensetzen muss, weil die Raspberry-Kontakte nur 3,3 Volt vertragen und der Arduino sonst den Raspberry grillt.
    Ich betreibe meinen Arduino aber eh nur mit einem 3,7 Volt LiPo. Er beschwert sich auch nicht großartig drüber, sondern macht, was er soll. Kann ich auf den Spannungsteiler verzichten? Wenn ich auf der einen Seite 3,7 Volt reinstecke, kommen auf der anderen doch keine 5 Volt raus, oder?

    Gruß Pupo

  2. #2
    HaWe
    Gast
    Zitat Zitat von pupo Beitrag anzeigen
    Hallo zusammen,

    ich möchte, dass mein Raspberry Zero W mit einem Arduino Pro Mini kommunizier (Rx, Tx). Dummerweise habe ich nur Arduinos in 5-Volt-Ausführung gekauft. Nun liest man ja überall, dass ich einen Spannungsteiler oder so dazwischensetzen muss, weil die Raspberry-Kontakte nur 3,3 Volt vertragen und der Arduino sonst den Raspberry grillt.
    Ich betreibe meinen Arduino aber eh nur mit einem 3,7 Volt LiPo. Er beschwert sich auch nicht großartig drüber, sondern macht, was er soll. Kann ich auf den Spannungsteiler verzichten? Wenn ich auf der einen Seite 3,7 Volt reinstecke, kommen auf der anderen doch keine 5 Volt raus, oder?

    Gruß Pupo
    5V UART auf keinen Fall ohne Spannungsteiler an Raspis!
    Lipos können auch Überspannungen haben.

    Spannungsteiler s.:
    http://www.mindstormsforum.de/viewto...tart=30#p70513
    oder
    http://www.mindstormsforum.de/viewto...tart=30#p67459
    Levelshifter gehen manchmal auch, u.U. sogar noch besser und flexibler, aber nur mit wirklich geeigneten, nicht mit allen erhältlichen.

    PS:
    I2C allerdings geht ohne, wegen eingebauter Raspi-Pullups.
    Geändert von HaWe (05.02.2018 um 10:16 Uhr)

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    27.12.2017
    Beiträge
    19
    OK, ich dachte der AMS1117 wäre geeignet, aber dann mache ich so wie du gesagt hast mit einem Spannungsteiler. Danke

    - - - Aktualisiert - - -

    Ich habe den Spannungsteiler auf einem Steckbrett ausprobiert, aber nicht bemerkt, dass mir die Verbindung zwischen dem 47 K - Widerstand und GND herausgerutscht ist. Der RasPi geht noch. Aber wenn ich mit Minicom eine Verbindung zum Arduino aufbauen will, kommt nichts. Wie finde ich heraus, ob ich den die UART-Funktion des RasPis zerstört habe, oder ob ich noch einen andern Fehler mache?

  4. #4
    HaWe
    Gast
    du kannst die UART GPIOs genau wie alle anderen GPIOs ansteuern und auslesen. Ich verwende dazu wiringPi, die Libs bieten digitalRead() und digitalWrite() ähnlich wie bei Arduino, ebenfalls kannst due input_pullup (oder auch input_pulldown) setzen, wenn ich mich recht erinnere. Damit kannst du die Pins grob testen. Ob die UART Funktionen allerdings ok sind - dazu wirst du einen UART Sensor, andere UART Geräte oder ein Oszi brauchen.

    - - - Aktualisiert - - -

    PS,
    welche UART Adresse (dev tree) verwendest du auf dem Pi?
    "/dev/serial0" oder die älteren "/dev/ttyAMA0" oder "/dev/ttyAMA1" ?
    Ansonsten kenne ich minicom nicht, aber die baudrates müssen ntl übereinstimmen - welche verwendest du bei beiden UARTs?

    du weißt aber schon, dass du auch den Arduino direkt über USB mit dem raspi verbinden kannst? (dann stimmen nämlich automatisch die Spannungen!)
    der Arduino verwendet dann Serial an USB statt UART, und der Raspi z.B. "/dev/ttyUSB0" statt "/dev/serial0"
    (Raspi-USB-Name austesten mit dmesg | tail )
    Geändert von HaWe (04.02.2018 um 11:53 Uhr)

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    27.12.2017
    Beiträge
    19
    Mein Arduino hat keinen USB-Anschluss. Und beim Raspberry zero w ist der einzige USB schon belegt. Als Adresse nehme ich /dev/tty/AMA0 , das war aber eher geraten, weil die beiden anderen Adressen nicht zur Verfügung standen. Wenn ich die Rx und Tx - Kabel anstecke oder löse, werden unter /dev/ genau die selben Adressen angezeigt wie vorher. Minicom starte ich mit 9600 Baud. Auf dem Sketch des Arduino ist ebenfalls 9600 Baud angegeben, mit denen er sich verbinden soll. Statt Minicom hatte ich auch so ein Pythonskript versucht, Python gibt mir dann den Fehler, der Port sei schon offen und er könne ihn daher nicht öffnen (das passiert auch direkt nach einem Neustart).
    Inzwischen habe ich gelesen, dass der Raspberry merkwürdige Startoptionen hat und per Default die UART-Schnittstelle nicht aktiviert hat und sie zweitens als Terminal nutzt. Ich habe beides in den Startoptionen abgestellt. Bringt aber nichts.

  6. #6
    HaWe
    Gast
    Das mit UART deaktivieren fürs Startterminal stimmt - etwas anderes musste ich beim Pi2 nicht deaktivieren, bei mir musste UART aktiviert werden, aber die serielle Konsole für UART deaktiviert.
    Der Zero kann da aber anders sein, den kenne ich nicht.

    Wenn aber alles richtig war, dann bleibt letztendlich nur Austesten mit nachweislich funktionierenden UART Geräten oder Tests mit Oszi etc. - oder mit einem 2. neuen Pi zum Vergleich, fürchte ich... :-/

    wenn du ein UART gerät hast (z.B. ein GY-NEO GPS):
    gib doch mal
    dmesg | tail
    ein, dann schließe es an, und dann nochmal
    dmesg | tail
    und schau, ob er was erkannt hat

    - - - Aktualisiert - - -

    PS,
    du schriebst
    /dev/tty/AMA0
    es müsste aber mE heißen
    /dev/ttyAMA0 (kein slash zwischen tty und AMA0!)
    oder alternativ (neu)
    /dev/serial0

    serial0 ist kompatibel zu allen neuen Raspis (2,3,zero)

    guck auch mal hier:
    http://www.mindstormsforum.de/viewto...tart=15#p67781
    1. Add the line
    enable_uart=1
    to the '/boot/config.txt' file, this line will set up the Serial Port UART and the necessary clocks on all Pi models.
    2. Remove the phrase "console=serial0,115200" from the '/boot/cmdline.txt' file.
    This action prevents Linux from starting a Console on the Serial Port.
    Geändert von HaWe (04.02.2018 um 21:48 Uhr)

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    27.12.2017
    Beiträge
    19
    Ich muss das ausprobieren, komme aber wahrscheinlich erst am Wochenende dazu. bei /dev/tty... mache ich es normalerweise so, dass ich mit der Tab-Taste den Pfad automatisch vervollständigen lasse, also dürfte es da wahrscheinlich keinen Fehler geben.
    Die beiden Tipps aus dem Mindstormsforum hast du mir ja, glaube ich, neulich schon mal gegeben, und ich habe sie auch befolgt.

    Übrigens habe ich mir noch einen Arduino in 3,3 Volt-Version bestellt und sogar noch einen neuen Raspberry Zero W, damit ich nicht ewig versuche, mit zwei kaputten Geräten rumzumachen und mich die ganze Zeit wundere, warum es nicht geht.

    - - - Aktualisiert - - -

    übrigens noch zu serial0: Bist du ganz sicher? Ich schreibe gerade von einem recht neuen Raspberry 3 B aus und habe hier nur /dev/serial1 , kein /dev/serial0. Oder erscheint der Port erst, wenn Rx und Tx wirklich mit einem anderen Gerät verbunden sind?

  8. #8
    HaWe
    Gast
    Zitat Zitat von pupo Beitrag anzeigen
    Ich muss das ausprobieren, komme aber wahrscheinlich erst am Wochenende dazu. bei /dev/tty... mache ich es normalerweise so, dass ich mit der Tab-Taste den Pfad automatisch vervollständigen lasse, also dürfte es da wahrscheinlich keinen Fehler geben.
    Die beiden Tipps aus dem Mindstormsforum hast du mir ja, glaube ich, neulich schon mal gegeben, und ich habe sie auch befolgt.

    Übrigens habe ich mir noch einen Arduino in 3,3 Volt-Version bestellt und sogar noch einen neuen Raspberry Zero W, damit ich nicht ewig versuche, mit zwei kaputten Geräten rumzumachen und mich die ganze Zeit wundere, warum es nicht geht.

    - - - Aktualisiert - - -

    übrigens noch zu serial0: Bist du ganz sicher? Ich schreibe gerade von einem recht neuen Raspberry 3 B aus und habe hier nur /dev/serial1 , kein /dev/serial0. Oder erscheint der Port erst, wenn Rx und Tx wirklich mit einem anderen Gerät verbunden sind?
    ja, serial1 ist beim Pi3 das, wo das eingebaute BT oder WiFi oder so dranhängt.
    Ich meine schon, dass serial0 erst erscheint, wenn was dran läuft (ohne Gewehr )

Ähnliche Themen

  1. Raspberry Pi auch über 9V Batterie wie den Arduino?
    Von RoboTrader im Forum Raspberry Pi
    Antworten: 25
    Letzter Beitrag: 14.01.2018, 18:49
  2. IMU Bosch BNO055 (z.B. Arduino, Raspberry Pi)
    Von HaWe im Forum Sensoren / Sensorik
    Antworten: 58
    Letzter Beitrag: 05.08.2017, 10:23
  3. IMU Bosch BMX055 (z.B. Arduino, Raspberry Pi)
    Von HaWe im Forum Sensoren / Sensorik
    Antworten: 2
    Letzter Beitrag: 17.07.2017, 11:47
  4. Funkfernsteuerung Arduino/Raspberry Pi
    Von Cysign im Forum Elektronik
    Antworten: 3
    Letzter Beitrag: 18.08.2016, 09:57
  5. Arduino soll GPS Daten auswerten
    Von Spacecam im Forum Arduino -Plattform
    Antworten: 6
    Letzter Beitrag: 06.02.2014, 09:40

Berechtigungen

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

LiFePO4 Speicher Test