WiringPi und GPIO

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hi Leute,
    ich weiß nicht wodran es scheitert aber ich habe das Gefühl, dass ich irgendwas falsch mache. Ich habe den 3,3V Pin über einen 220Ohm Widerstand mit der Anode einer roten LED verbunden. Die Karthode mit GND. Nun habe ich versucht mit wiringPi diese LED auszuschalten. Das funktioniert allerdings nicht.
    Mit
    gpio -g mode 1 out (wofür macht man das eigentlich?)
    gpio -g write 1 0

    Selbst wenn ich mit
    gpio -g read 1
    abfrage, ob der Pin an oder aus ist, gibt er mir 0 aus, obwohl die LED noch leuchtet.

    Ich versteh's nicht

    LG
    Zenkong

  • Hallo Zenkong,

    die Erklärung ist ganz einfach so:
    Stecke den Netzstecker einer Stehlampe in eine Steckdose im Wohnzimmer und schalte die Lampe ein. Dann gehst Du ins Gästeklo und schaltest die Beleuchtung ein oder aus.
    Welche Änderung erwartest Du bzgl. der Wohnzimmer-Stehlampe? Sie wird leuchten - egal was Du im Gäste-Klo machst.

    Auf Deinen Fall übertragen:
    Ein GPIO-Pin (kein 3V3, kein GND) wird auf Ausgang geschaltet. Durch Setzen dieses Ausgangs auf 1 oder 0 wird ein Pegel auf 3,3 V oder 0 Volt gesetzt. Diese Spannung dient dann einer LED mit Vorwiderstand als Spannungsversorgung. Der Stromkreis wird über GND geschlossen.

    Jetzt musst Du nur hinbekommen, dass der GPIO-Pin, der zur LED führt, auch über ein Linux-Kommando angesprochen wird. Das ist der zweite Fehler in Deinem Ansatz.


    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.

    Einmal editiert, zuletzt von Andreas (11. April 2016 um 19:11)

  • Erstmal vielen Dank für deine Antwort. Ich verstehe aber nicht wo mein erster Fehler liegt und wie ich meinen zweiten behebe.


    Auf Deinen Fall übertragen:
    Ein GPIO-Pin (kein 3V3, kein GND) wird auf Ausgang geschaltet. Durch Setzen dieses Ausgangs auf 1 oder 0 wird ein Pegel auf 3,3 V oder 0 Volt gesetzt. Diese Spannung dient dann einer LED mit Vorwiderstand als Spannungsversorgung. Der Stromkreis wird über GND geschlossen.

    So ist es doch bei mir. Aber meine GPIO Pins lassen sich nicht ansprechen. Und was heißt eigentlich 3V3 ist das eine andere Schreibweise von 3,3V?

    LG

  • Hallo Zenkong,

    wenn Du Dir hier das GPIO-Pin-Layout anschaust, dann wirst Du feststellen:
    1. Es gibt Pins mit einer festgelegten Funktion wie 5V, 3V3 oder GND. Diese Pins liefern immer - unabhängig von jedem Schaltungszustand - immer 3,3 oder 5 V gegenüber GND.
    2. Es gibt GPIO-Pins, deren Modus zwischen Eingang und Ausgang sowie deren Schaltzustand zwischen HIGH und LOW, 1 und 0 wechseln kann. HIGH bedeutet <> 1,3 V, LOW bedeutet < 0,8 V.

    Wenn Du eine LED leuchten lassen möchtest, dann musst Du
    - die LED in der richtigen Polung und mit einem passenden Vorwiderstand an einem PIN anschließen, der Dir die entsprechende Spannung bereitstellt

    Wenn Du die LED blinken lassen möchtest, dann muss der Pin, der die Betriebsspannung bereitstellt, geschaltet werden können.

    Die gängige Möglichkeit ist die, einen GPIO-Pin (z.B. GPIO17 = P1-11 = WiringPi-0) zu verwenden, und die Spannung über eine richtig gepolte LED und Vorwiderstand auf GND abfallen zu lassen. In diesem Fall ist der GPIO-Pin als Ausgang zu setzen und Blinken wird durch Setzen auf 0 oder 1 erreicht.

    Und dann ist, wie gesagt, wichtig, dass Dein Programm auch den GPIO-Pin ansteuert, der in der Schaltung angesprochen wird.



    So ist es doch bei mir. Aber meine GPIO Pins lassen sich nicht ansprechen. Und was heißt eigentlich 3V3 ist das eine andere Schreibweise von 3,3V?


    Das weiß ich nicht - Du sagst es, aber Du hast noch keinen Schaltplan gezeigt.

    Beschäftige Dich doch mal mit dem oben verlinkten GPIO-Pin-Layout und den von Dir verwendeten Linux-Kommandos, ob diese geeignet sind, die GPIO-Pins anzusprechen, die Du in Deiner Schaltung verwendet hast.

    LG

    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 (15. Oktober 2017 um 14:14)

  • Aus deiner Beschreibung des Anschlusses der LED würde ich darauf tippen, dass Du die LED an den Pins 1 (3V3) und 39 (GND) angeschlossen hast. Das sind beide Pins, die zurSpannungsversorgung dienen und können nicht geschalten werden. Wenn Du die Anoden-Seite der LED auf Pin 3 steckst, dann solltest Du mit

    Code
    gpio -g mode 2 out


    den Pin auf Ausgang schalten und mit

    Code
    gpio -g write 2 0 / 1


    den Pin schalten können.

    3V3 ist eine andere Schreibweise für 3,3V, die man in Schaltplanausdrucken einfach besser von 33V unterscheiden kann.

    Edit: zu langsam :(

    Anfragen ausserhalb des Forums (Mail o.ä.) werden ignoriert!

    Einmal editiert, zuletzt von digiart (11. April 2016 um 21:06)

  • Was in Andreas seiner Erklärung ME noch fehlt ist:

    GPIO als Ausgang liefert immer 3V3.
    Alle GPIO's können insg. maximal 51mA liefern. Eine Mehrbelastung kann zur Beschädigung des SoCs führen.
    Die GPIO's gehen ungebuffert direkt zur SoC.
    GPIO's vertragen maximal 3V3.
    3V3 Schiene teilt sich den Strom mit der Hardware des Pi's sowie weiterer Peripherie (USB-Geräte, PiCam etc) und ist insg. auf bis zu 2A begrenzt (der nackte Pi benötigt ca. 700mA, Rest wird aufgeteilt...)
    5V Schiene ist direkt mit microUSB verbunden und somit ohne Sicherung F1, und somit ohne 2A Grenze.

    Möchtest du mehr LEDs betreiben solltest du diese über einen Transistor schalten und somit direkt den 3V3 oder 5V Pin verwenden.

  • Hallo Meigrafd,

    vielen Dank für Deine Ergänzung - einige Fakten stehen aber so in dem Link, auf den ich verwiesen habe. Und andererseits haben diese Detail-Infos keinen Bezug zum ursprünglichen Problem. Aber egal ... eine weitere Seite, die aufpoppt, wenn man solche Daten sucht.

    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.

  • Einen Link sehe ich in deinen Beiträgen nicht... Einen Bezug hat es sobald er mehr als nur eine LED anschließen möchte - weiß keiner, stimmt ... und? werd ich jetzt gesteinigt?

  • Hallo Meigrafd,


    Einen Link sehe ich in deinen Beiträgen nicht... Einen Bezug hat es sobald er mehr als nur eine LED anschließen möchte - weiß keiner, stimmt ... und?

    Danke für den Hinweis. Den Link habe ich in Beitrag #4 nachgeholt (ging wohl unter).


    werd ich jetzt gesteinigt?


    Äh ... Moment ...

    Diesen Witz hörte ich mal in einem Kloster der Benediktiner in Würzburg.
    "Jeder kennt die Geschichte im Neuen Testament, als eine Sünderin gesteinigt werden sollte und Jesus dann sagte 'Wer von Euch ohne Sünde ist, der werfe den ersten Stein.' In den Schriften geht die Sache so weiter, dass alle bedröppelt zu Boden schauen, sich der eigenen Verfehlungen bewusst werden und den Stein, den sie gerade noch hochmotiviert in Richtung der auf dem Boden liegenden Frau kraftvoll schwingen wollten, kraftlos zu Boden fallen ließen und sich die ganze Gruppe langsam aufzulösen begann.
    Aber die Geschichte geht weiter ... ist im Neuen Testament nur verschwiegen worden. Aus den hinteren Reihen kommt plötzlich (während die anderen der eigenen Verfehlungen bewusst wurden) doch ein Stein geflogen. Alle schauen sich um... Jesus :angel: meint nur 'Ach, Mutter :angel: , nicht Du schon wieder!'"

    Ich gehöre zu denen, die nicht mit Steinen auf andere Leute werfen. Deswegen nehme ich auch erst keinen in die Hand.

    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.

    Einmal editiert, zuletzt von Andreas (11. April 2016 um 22:28)

Jetzt mitmachen!

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