GPIO Input von Arduino abfragen

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo,

    ich lasse ein Relais per Arduino steuern. Da ich kein Shield für die Datenaufzeichnung per Arduino besitze, möchte ich dies gerne provisorisch per Raspberry tun. Ich habe mir folgende Schaltung gebaut. 10k Ohm Widerstand am Ground und 1k Ohm Widerstand am GPIO 17.

    Leider kommt an Pin 17 (BCM) nur 0 an, wenn das Kabel mit dem Arduino verbunden ist. Stecke ich das blau Kabel an die 3.3 V Spannungsversorgung des Pi wird eine 1 registriert.

    Der Code sieht folgendermaßen aus:

    Code
    import RPi.GPIO as GPIO
    
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(17,GPIO.IN)
    
    while True:
        if GPIO.input(17) == True:
            Matte = 1
        else:
            Matte = 0

    Eigentlich sollte die Aufzeichnung ob die Ausgabe am Arduino High oder Low ist doch so klappen oder ?

    Gruß Kai

  • und wo geht GND vom Arduino zum PI?

    Wenn beide sich verstehen sollen ist eine gemeinsame Sprache nötig und alle Signale beziehen sich IMMER auf GND!

    Legt also Einer ein Signal bezogen auf GND an und der Andere soll es verstehen muss er dieselbe Sprache sprechen also denselben GND haben.

    Nur der Arduino brüllt immer mit 5V und der PI kann nur 3,3V hören sonst platzt ihm sein Trommelfell, also muss ein Signal vom Arduino zum PI leiser gestellt werden -> Spannungsteiler!

    https://www.elektronik-kompendium.de/sites/slt/0201111.htm

    oder Pegelwandler

    https://www.berrybase.de/sensoren-modul…r-bidirektional

    aus

    jar
    23. November 2013 um 22:06

    lasst die PIs & ESPs 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)

    2 Mal editiert, zuletzt von jar (25. April 2021 um 10:48)

  • Vielen Dank für die Antwort.

    Dann hatte ich ja Glück das ich mit den Pin am Pi nicht zerschossen habe.

    Das mit dem GND verstehe ich nicht so ganz, das ist doch immer 0V oder ? Dann müsste der Potential unterschied doch ermittelbar sein, auch wenn beide GND nicht verbunden sind ?

    Für den Spannungsteiler ist das dann ein belasteter oder ein unbelasteter Spannungsteiler ?

    Ich denke es ist ein unbelasteter der Inputpin am Pi ist ja kein "Verbraucher" oder ?

    Gruß Kai

  • Das mit dem GND verstehe ich nicht so ganz, das ist doch immer 0V oder ?

    ach ist das so?

    wie lang bist du daheim? (in welcher Höhe ist dein Kopf?)

    wie lang bist du auf dem Mount Everest? (in welcher Höhe ist dein Kopf?)

    Ich tippe auf >8000m Höhenunterschied!

    Ja DU bist immer gleichlang, aber GND liegt wohl auf verschiedenen Höhen!

    also ist GND != GND ;)

    Erst wenn du deinen Standort auf dem Mount Everest ausbuddelst und nach Hause bringst sind die beiden GND gleich. :lol:

    lasst die PIs & ESPs 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)

  • Das Beispiel ist gut, jetzt habe sogar ich es verstanden :)

    Ich habe die Schaltung jetzt so aufgebaut.

    Zwischen Pin 10 Arduino und GND sind drei 10k Ohm Widerstände, zwischen Pi Eingang nochmal ein 1k Ohm Widerstand. So sollte doch die Spannung von 5V aus 3.3 V reduziert werden.

    GND sind beide Verbunden.

    Leider wird immer noch nur eine 0 ausgegeben.

    Gruß Kai


    Tante Edit:

    Nachdem ich alles mit meinem Multimeter durch gemessen habe, klappt jetzt alles :)

    Danke für deine gute Erklärung mit dem Everest ;)

    Gruß Kai

    Einmal editiert, zuletzt von reed (25. April 2021 um 13:04)

Jetzt mitmachen!

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