Es funktioniert nur GPIO 7?!

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

    ich habe mir vor ein paar Tagen einen Pi (Rev2) gekauft und heute sind dann auch die ersten Buttons und Analog Joysticks gekommen. Über GPIO habe ich mich davor schon ein wenig informiert, Ansteuerung etc...

    Ausgepackt und den ersten Button (dieser) an einem GPIO Pin und an einem Ground Pin angeschlossen. Versucht in einem while Block das ganze immer ausgeben zu lassen.. Immer nur 0en..
    Okay.. Dann natürlich ein wenig weiterprobiert bzw kombiniert und irgendwann auf den GPIO 7 (CE1) gekommen. Der zusammen mit dem Ground (25) haben dann funktioniert. Wenn ich jetzt aber weitere Buttons anschließe habe ich bei denen immernoch das Problem, dass diese nicht erkannt werden (bzw wenn ich den CE1 / GPIO 7 drücke wird der auch aktiviert).

    Mein Code (nicht direkt kopiert sondern abgeschrieben, evtl etwas kleines vergessen aber so in etwa...):

    Code
    import RPi.GPIO as GPIO
    import time 
    GPIO.setmode(GPIO.BCM)
    #GPIO Pin 7 geht..
    blue_button = 7
    GPIO.setup(blue_button, GPIO.IN) 
    while(GPIO.input(blue_button)):
      print(GPIO.input(blue_button))
    print(GPIO.input(blue_button))

    Bin über jede Hilfe mega dankbar :)
    Bei offenen Fragen einfach raushauen

  • hey raspiproject,
    also real habe ich keinen aber habe ein wenig hiermit herumgespielt, ohne wirklich zu wissen was ich tue :D
    [code=php]GPIO.setup(25, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)[/php]
    Lags daran? Wenn ja würde ich mich über eine kleine Erklärung freuen. Oder über einen guten Link...

  • Schaltet man den GPIO als Eingang erwartet der einen definierten Pegel. high sollten 3,3 V und low 0V sein. Da gibt es eine Toleranz, aber man sollte immer Versuchen diese Pegel so zu erreichen. Die CMOS-Schaltung des Raspberry ist erst mal offen, kann also durch viele verschiedenen Umstände zwischen 0 und 3,3V liegen und das ohne das man das beeinflussen kann. Angenommen Du hast einen Schalter zwischen GPIO und GND, der Pegel ist aber schon low, passiert also nichts, wenn Du den Schalter betätigst, denn der Pegel bleibt low. Mit den Pullup/down-Widerständen machst Du folgendes. Indem Du den Widerstand vom GPIO auf GND legst (Pulldown) sorgst Du immer dafür, dass wenn zwischen GPIO und 3,3V keine Verbindung besteht der Pegel garantiert low ist. Ein Widerstand zwische GPIO und 3,3V (Pullup) sorgt dafür, dass der Pegel immer high ist. Erst wenn Du nun den Schalter zwischen GPIO und GND betätigst wir der Pegel des GPIO auf low gezogen. Keine ANgst, da der GPIO weiß, dass er ein Eingang ist, gibt es zwischen GPIO und GND keinen Kurzen. Der RAsPi hat auch interne Pullups/downs die man softwaremäßig schalten kann, wie Du es schon versucht hast. In Deinem konkreten Fall benötigst Du pullups, da Du die Schalter gegen Masse anschließt.

  • Du braucht einen Pullupwiderstand (10k), da der GPIO-Pin sonst nicht genau weis, ob er ein- oder ausgeschalten ist.

    [EDIT]
    raspiprojekt war schneller ... ;)

    Suche in der Forensuche doch ein Wenig nach "GPIO Button" oder so in der Art, dan findest du bestimmt eine passende Anleitung.

    Ich bin root! Ich darf das! :D


    Diese Signatur könnte jetzt sinnvoll sein ... ist sie aber nicht! :denker:

    Einmal editiert, zuletzt von AltBen (21. Juni 2014 um 17:26)

  • Hallo Codewing,

    einer von ganz vielen Links zu dieser Thematik. (Ja, ich habe mich daran auch mal probiert.)

    In dem Link ist auch ein Schaltplan. Dann kannst Du vergleichen, was Du gemacht hast und was noch fehlt.

    Der Widerstand von ca. 10 kOhm ist jedenfalls ganz wichtig - ohne den klappt es nicht reproduzierbar.

    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:07)

  • Danke an euch :)
    Habe es jetzt verstanden und einen recht simplen Aufbau mit Erlärung auf youtube gefunden :)

    Dann mal noch schnell ein paar Widerstände kaufen :)

    Noch was anders...
    Was brauche ich um diese Teile zu verbinden?
    joystick

    Einmal editiert, zuletzt von codewing (21. Juni 2014 um 18:47)

  • Um einen Analogjoystick anzuschließen, braucht es natürlich einen A/D Wandler.
    Ich habe für diesen Zweck einfach ein Joypad auseinandergenommen und die Platine zum anschließen von Buttons/Joysticks genutzt. Das hat den Vorteil, das alle Knöpfe etc. bereits mit Plug&Play sofort abrufbar sind. So hat man auch nur einen Anschluss (USB) und hält sich die GPIO's frei.
    Würde mich zwar (aus Platzgründen) gerne mal daran versuchen, einen eigenen Controller zu bauen (mit nem Atmega oder so), allerdings scheitert das etwas an meiner mangelnden Kompetenz. Werde das aber sicher mal in Angriff nehmen. Guck mal HIER. Vllt. ist die Anleitung ja etwas für Dich.

    ...and write down with pencil&paper...
    Where can i download "pencil&paper" ?

  • Mönsch LieberScholli ... stimmt ...
    ich sag ja ... ich werd' alt und/oder senil :rolleyes:

    ich hätte -> hier <- einen anzubieten ... dauert halt nen Tick, ist aber total simpel und preiswert.

    thnx,
    -ds-

  • @ DS: Naja, ganz so schlecht ist "vergessen" ja nicht. Stell Dir mal vor, Du müsstest die Information speichern, was Du am 5.5.1990 gegessen hast. Dank FB & Co. kann man sich aber bald sogar sparen, sich zu merken, was man GERADE EBEN erst gegessen hat. :wallbash:

    BTT: Um weitere Buttons/Achsen anzuschließen muss man halt gucken, wieviele GPIO's man zur Verfügung hat. Ein PS2 Gamepad hat z.B. 16 Tasten und 4 Achsen. Da kommt man eigentlich an einer Art "Controller" nicht vorbei. Oft bekommt man solche abgeranzten Pads gebraucht sehr günstig. Da man nichts weiteres als die Platine braucht, kann es Wurscht sein, wenn die Kontaktmatte deffekt ist.

    ...and write down with pencil&paper...
    Where can i download "pencil&paper" ?

  • Okay nochmal für mich...
    Also die Stromversorgung für die Joys kommt vom MB-102 (sowas z.B. [Anzeige]). Zum Verbinden die Jumperkabel (Female - Male für Strom und Male/Male für die X-/YOut bzw select (auf mein Breadboard)). Löten weil die ja sonst loose in der Platine hängen. Soweit richtig?
    Das mit dem USB-Gamepad ist zwar nett, aber ich denke mal noch ein wenig aufwenig für mich. Kann ich das nicht irgendwie einfacher machen und einfach direkt anschließen? :3

    Ich will mir so nach einander erst einmal 2 Buttons anschließen, dann 2 von den oben genannten joysticks und schlussendlich einen kleinen Bildschirm. Darauf wiederum will ich dann eben mal ein kleines Spiel selber programmieren. Long way.

    Danke nochmal :)

  • Hallo codewing,
    na, schon "Red Bull" getankt ( verleiht Deinem Code wings ;) )


    ...
    Also die Stromversorgung für die Joys kommt vom MB-102
    ...


    Genau, sehr gut geschlussfolgert ...


    ...
    Löten weil die ja sonst loose in der Platine hängen. Soweit richtig?


    So eine Stiftleiste (fünf Stifte abbrechen) einlöten ... dann brauchst Du die Verbindungen nur stecken ...


    ...
    Ich will mir so nach einander erst einmal 2 Buttons anschließen, dann 2 von den oben genannten joysticks
    ...

    Passt ja ... an die Buttons evtl. ein abgeknipstes Dupont-/Jumper-Kabel mit Stecker anlöten.

    Und für die Joysticks den A/D Wandler nicht vergessen ;)

    Dann hau rein,
    Du weisst ja, wo dieser Chaoten-Haufen zu finden ist, der sich semiprofessionell mit allem Möglichen rund um den RPi auskennt -> hier <- nämlich :)

    viel Erfolg und einfach melden wenn was nicht klappt, cheers,
    -ds-


  • Danke, ich melde mich bestimmt mal wieder :)

    Danke auch von "uns". Würde speziell mich freuen, wenn ich eine Rückmeldung bekommen würde. Vllt. hast Du ja noch bessere Ideen. :thumbs1:
    Ich vermute mal, das Du auch an einer guten Umsetzung vom einem Autonomen Spielesystem rumbastelst.
    Ich habe mir viel Zeit dafür gegönnt. Das Ganze soll ja möglichst ideal werden. Falls Du noch weitere Fragen hast, eröffne bestenfalls einen neuen Thread dafür. Unter dieser Überschrift wirst Du nur wenig Antwortwillige finden ;).

    ...and write down with pencil&paper...
    Where can i download "pencil&paper" ?

Jetzt mitmachen!

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