GPIO pins bleiben auf LOW/0

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,

    ich habe das Problem, dass der Raspberry, die GPIO Pins nicht mehr richtig ausließt.

    Folgendes gebe ich im Terminal ein:

    echo "2" > /sys/class/gpio/export
    echo "in" > /sys/class/gpio/gpio2/direction
    cat /sys/class/gpio/gpio2/value

    Beim ersten Mal hat dies fehlerfrei funktioniert.
    Auch das entsprechende Pythonprogramm konnte die Ports auslesen.

    Zum Setzen auf 0 habe ich die GPIO Pins 2,3,4 mit GND am Kontakt 9 verbunden. Zum Schalten auf 1 die entsprechende Verbindung gekappt.

    Nach 4 Tagen liegen lassen, habe ich den PI wieder in Betrieb genommen und seither funktioniert das Auslesen nicht mehr. Ich bekomme stehts eine Null ausgegeben. Auch das Setzen als Ausgang und Vorgeben eines Wertes funktioniert mit obiger Eingabe nicht.

    Obige Eingabe habe ich bereits mit allen Pins durchiteriert und bekomme stets die Ausgabe 0. Da meine Kontakte frei in der Luft hängen erwarte ich hier eine 1. Auch ein aktives Anlegen einer Spannung von 3V zeigt keine Veränderung.

    Komplett neues Aufsetzen des Betriebssystem führte zu keinem anderen Ergebnis.

    Als nächstes habe ich WiringPI installiert und folgendes beobachtet:

    Hier werden die GPIO 14/15 direkt nach dem start als High angezeigt.
    Nach (gpio reset) werden alle als IN und LOW angezeigt.
    Setzen von GPIO 17 als OUT führt direkt zu einem High bei GPIO 17.
    (gpio -g mode 17 out) (gpio readall)
    Wenn ich GPIO 2 als OUT setze führt das zu einem High bei GPIO 7.

    Auch bei Anschluss P2 bleiben die GPIO Werte auf 0.

    Weiß jemand ob es sich hier um einen SW-seitigen bzw. HW-seitigen Fehler handelt, was die Ursache ist und ob/wie man ihn beheben kann?

    Danke und Gruß

    Einmal editiert, zuletzt von GPIO (16. Juli 2014 um 12:33)

  • Hallo GPIO,

    herzlich Willkommen iun unserem Forum!

    Damit man Dir besser helfen kann: Kannst Du mal die Schaltung zeigen? Mir ist nicht ganz klar, welche Pins Du wie miteinander verbunden hast. Die Benennung der GPIO-Pins wechselt von irgendwas auf wiringPi...

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Hallo Andreas,

    Ich habe die Grafik, an der ich mich mit den Bezeichnungen orientiere, oben eingefügt. Die abweichende Nummerierung durch WiringPI habe ich auch berücksichtigt.

    Beste Grüße,

    GPIO

  • http://www.google.de/imgres?imgurl=…ved=0CDsQrQMwBg

    GPIO 4 ist z.B. für 1w benutzt.

    Je nach dem welche Software oder Libraries du installierst sind die halt schon belegt. Da wäre es unklug einen Ausgangs-port der evtl. gerade high ausgibt oder ausgeben will ! testweise oder länger auf GND zu legen, also einen Kurzschluß zu bauen.

    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)

  • Hallo jar,

    danke für die Antwort. Hört sich plausibel und schlecht für mich an, gibt es denn eine Möglichkeit die Anschlüsse zu überprüfen? Ich möchte gerne wissen ob wirklich durch einen Kurzschluss die Pins defekt sind.

    Danke und beste Grüße,

    GPIO

    Einmal editiert, zuletzt von GPIO (16. Juli 2014 um 13:53)

  • Hallo GPIO,

    vermute ich richtig, dass Du ein Stück Draht genommen hast, und damit GPIO2 bzw. GPIO3 bzw. GPIO mit GND verbunden hast?

    Wenn ja, dann war das nicht so gut - falls einer der GPIO-Pins auf Ausgang geschaltet war.

    In Deinem ersten Beitrag hast Du allerdings geschrieben, dass die GPIO-Pins auf "in" gesetzt waren. Wenn die dann mit GND verbunden werden, sollte da eigentlich nichts passieren (kein Defekt, aber auch kein Signal).

    Hinweis:
    Wenn Du sowas bastelst, benutze Widerstände, die den Strom auf rund 2 mA verringern. Da kannst Du den grössten Unfug veranstalten, ohne den Raspberry Pi abzufackeln.


    Wenn Du überprüfen willst, ob die GPIO-Pins noch funktionieren, funktioniert dies am einfachsten mit LEDs und einem passenden Widerstand (600 - 700 Ohm).

    Die Schaltung sieht ungefähr so aus:

    GPIO2 <-> Widerstand <-> LED(Anode, Kathode) <-> GND

    Wenn Du jetzt folgende Befehle eingibst, sollte die LED leuchten (wenn nicht LED umstecken):

    Code
    echo "2" > /sys/class/gpio.export"
    echo "out" > /sys/class/gpio/gpio2/direction
    echo "1" > /sys/class/gpio/gpio2/value

    zum Ausschalten;

    Code
    echo "0" > /sys/class/gpio/gpio2/value

    Und, funktioniert es?


    Beste Grüße

    Andreas

    Hallo GPIO,

    einer von zahlreichen Links, wie man Pins abfragt (als Eingang gesetzt), also HIGH oder LOW am GPIO-Pin erkennt.

    Vermutlich hast Du etwas Ähnliches vorgehabt, oder?

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    2 Mal editiert, zuletzt von Andreas (8. Oktober 2017 um 17:53)

  • Hallo Andreas,

    deine Vermuting ist richtig und mit jar's Hintergrundinformation bin ich auch davon überzeugt das es unklug war.

    Ich habe die Pins mit einem Voltmeter überprüft. Als ich den GPIO2 auf OUT gesetzt habe gab es 40mV Änderungen von 0.98 V auf 1,02V.

    Ich habe gleich noch die unbesetzten GPIO 17,27,22 getestet und diese funktionieren einwandfrei als Ausgang.

    Als Eingang und frei an der Luft schwanken GPIO 17,27,22 ziemlich genau um den Schwellwert bei ca. 1V, sodass mal 0 und 1 angezeigt werden. Mit Widerstand (danke für den Hinweis) und Spannungsquelle kann ich eindeutige Werte auslesen.
    Und die drei genügen um meine Schaltung umsetzen :thumbs1:

    Danke Euch für die schnelle und gute Hilfe =)
    Beste Grüße

    GPIO

Jetzt mitmachen!

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