Ansprechen der GPIO

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

    Ich stehe gehörig auf dem Schlauch, follgendes habe ich geschrieben:

    Ich kann das Programm mit folgendem Befehl kompilieren:

    Code
    gcc -o first_pi main.c -l wiringPi

    und ausführen mit selbigem:

    Code
    sudo ./first_pi

    Jedoch beendet sich das Programm nach dem ersten durchlauf da der Eingang auf 1 steht. Jedoch habe ich nichts an den GPIO angeschlossen... Hab ich da einen Denkfehler drin?

    Vielen Dank schonmal[/php][/code]

  • Hallo Schliffi,

    diese Erfahrung hat wahrscheinlich jeder hier gemacht. :wallbash:

    Wenn der GPIO auf Eingang geschaltet ist, gibt es eine "Umkehr der Auswertelogik" - liegt nichts an, wird 1 angezeigt; bei einem Signaleingang wird 0 geliefert.

    Es gibt einen Befehl, dieses wieder umzukehren, den ich sicherlich auch wüsste, wenn ich in C regelmässig programmieren würde.

    Somit arbeitet Dein Programm wie programmiert "richtig".


    digitalRead(7) liefert Dir "1", weil nichts passiert. Die if-Bedingung ist erfüllt, der Text "Taster gedrückt" wird ausgegeben, das Programm kehrt wegen Return zurück, endet also bereits hier.

    Mach mal das Return raus - und? Du solltest jetzt ein schönes Taster-Programm haben...

    Beste Grüsse

    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 (12. September 2014 um 10:03)

  • Hmmm

    Der Zustand des Einganges wechselt nie, bleibt also immer auf 1.

    Ich habe keinen pullDown widerstaud in der Schaltung, könnte das dass Problem sein?

    Nun habe ich den Code so angeändert das der Interne PullDown Wiederstand aktiviert werden sollte:

    Nur leider mit dem selben Ergebnis, ich habe immer eine 1 auch wenn ich von den 3,3V eine Brücke mache

    Auch wenn ich direkt aus der Shell die Zuständer Eingänge betrachte, ändert sich da nichts

    Einmal editiert, zuletzt von schliffi (12. September 2014 um 11:18)

  • Hallo Schliffi,

    Zitat

    Ich habe keinen pullDown widerstaud in der Schaltung, könnte das dass Problem sein?

    Warum machst Du sowas?

    Das Forum ist voll mit Anleitungen, wie man Taster SAUBER abfragt. In jedem Tutorial wird auf den Einbau oder softwareseitige Aktivierung von Widerständen hingewiesen...

    Ich hoffe, Du hast Dir den betreffenden GPIO-Pin nihct zerlegt.

    Ich habe auch mal eine Anleitung dazu geschrieben.

    Kannst Du mal die Schaltung posten?

    Beste Grüsse

    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 (8. Oktober 2017 um 18:54)

  • Code
    pullUpDnControl(7, PUD_DOWN);

    Das sollte doch genau dieser besagte Wiederstand sein?

    Ich habe auf jedenfalls Anleitungen gefunden die das genau so gemacht haben.

    Meine Schaltung ist eine Brücke von 3,3V Pin auf den Pin 7 (GPIO 4).

  • Hallo Schliffi,

    meine im letzten Beitrag beschriebene Schaltung:

    - Schaltplan als Einzeiler:
    GPIO14 ==> R=330 Ohm ==> Kathode-LED-Anode ==> 3.3V ==> Taster ==> R=620 Ohm ==> GPIO10 ==> R=11 kOhm ==> GND

    Wenn Du den 3V3 unmotiviert auf GPIO4 gelegt hast und den dann ohne Pulldown-Widerstand auf INPUT gesetzt hast, erscheint mir das mal nicht so der Hit gewesen zu sein.

    Bastel mal meine Schaltung nach und probiere es noch mal. Wenn Du nur den Taster programmieren willst, dann reicht auch etwas wie:

    - Schaltplan als Einzeiler:
    3.3V ==> Taster ==> R=620 Ohm ==> GPIO10 ==> R=11 kOhm ==> GND

    Beste Grüsse

    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.

  • Hi

    Ich komme von der Automationsseite her und nicht Elektronik, leider. Deshalb kanne ich diese Sachen mit PullUp und Down überhaupt nicht.

    Da ich gewillt bin zu lernen und dies auch wirklich möchte, habe ich mir deine Schaltung so aufgebaut:

    Morgen kriege ich die Widerstände.

    Was ich jedoch nicht begreife ist, wieso dies mit den intern Pulldown Widerständen nicht funktioniert?

    Gruss

    Soooo das ist mir jetzt mal so richtig peinlich...

    Ich habe die Schaltung meiner Taster falsch verstanden und so immer 3,3V durchgegeben...

    Durch das aktivieren der Internen PullDown Widerstände funktioniert es Perfekt. Ich werde jedoch trotzdem
    auf externe PullDown umsteigen.

    Gruss und Vielen Dank Andreas

    Einmal editiert, zuletzt von schliffi (12. September 2014 um 17:38)

  • Hallo Schliffi,

    wir hatten hier mal eine längere Diskussion über interne PullDown-/PullUp-Widerstände - oder die Verwendung physikalisch existierender Widerstände.

    Überwiegend bestand einhellige Meinung darüber, mit realen realen Widerständen zu arbeiten.

    Diese kann man sehen, fühlen, messen, ändern.

    Bei den intern verbauten ist ein großes Vertrauen erforderlich, dass diese auch vorhanden sind und die Programmierung (Funktion einer Bibliothek) auch funktioniert.

    Der Lerneffekt ist auf jeden Fall größer, wenn Du mit realen Widerständen arbeitest.

    Gutes Gelingen!

    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 (13. September 2014 um 21:54)

Jetzt mitmachen!

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