Channel is already in use

  • Hallo Gemeinde,

    ich habe jetzt mein erstes Python Skript fertiggestellt. Es handelt sich dabei um eine Steuerung für MPD/MPC da ich den Raspberry in ein Gehäuse stecken will und ihn als Radio benutzen will, mit den Knöpfen möchte ich ihn bedienen.

    Probleme machen die 2 LED's, die anzeigen sollen welcher der 2 Sender gerade läuft.

    Fehler: runtimewarning: this channel is already in use, continuing anyway. Use gpio.setwarnings (false) to disable warnings

    Hier mein Code:


    Habe zwar ein paar Beiträge gelesen, jedoch geht es immer nur um blinkende LED's und ich werde auch nicht sonderlich schlau daraus, da ich wirklich ein blutiger Anfänger bin.

    Vielen Dank für die Hilfe

  • Das ist im Prinzip kein Fehler sondern eine Warnung. Irgendwas benutzt den GPIO wärend das Script drauf zugreifen möchte. Die Meldung zeigt auch, dass Du das mit gpio.setwarnings (false) beheben kannst. Aber was machen die Operatoren "and" in den Zeilen. Versuchs mal so (ungeprüft):

  • Vielen Dank,

    Es ging vorher auch einfach nicht.
    Jetzt wirft er zwar noch den Fehler aus aber es funktioniert! :danke_ATDE:
    Ganz am Anfang hatte ich das auch so aber als ich denn noch Probleme mit Pull up und Pull down Widerständen bekommen habe habe ich so viel gelesen, dass ich danach der Überzeugung war so müsste es gehen:D

  • Naja ein bisschen üben must Du noch. Nicht drauf ausruhen das es funktioniert. Da ist noch Optimierungsbedarf. Allein die while-Schleife die ständig läuft frist schon Ressourcen. Schau mal nach, ob Du da nicht besser mit Eventhandling arbeiten kannst. Und versuch Dich auch gleich an Objektorientierung, wenn Du erst mal einen bescheidenen Programmierstil hast, wirst Du den ganz schwer los.

  • Hallo,
    ich empfehle außerdem noch ein try except und GPIO.cleanup() einzubauen, damit, wenn du dein Script durch Strg+C abbrichst die GPIOs wieder frei werden.
    Damit könnte dein Problem auch zusammen hängen.
    Hier der überarbeitet Code (ungetestet)

    In diesem Script wird die while-Schleife so lang durchlaufen, bis man Strg+C drückt, doch statt das Programm dann einfach abzubrechen, werden die GPIOs die du benutzt hast wieder freigegeben, dass könnte evtl. die Warnung beim nächsten Ausführen verhindern.

    MfG ProfDrFisch


    Ein "Gefällt mir" oder eine Bewertung wäre nett. :danke_ATDE:

    Support per [PM]

    Einmal editiert, zuletzt von ProfDrFisch (6. Dezember 2014 um 09:25)

Jetzt mitmachen!

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