Raspberry PI TV-Imitator steuern

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,
    ich möchte als Schutz gegen Einbrecher einen TV-Imitator bauen.
    Also ich habe im Moment dieses Programm. Dies soll aber nicht die ganze Zeit laufen, sondern in unterschiedlichen Zeitabständen an und aus sein. D.h z.B manchmal 9,18,20,28,5 Minuten an und dann aus sein.
    Wie als würde man fernsehen. Es soll sozusagen einen Fake-Fernseher darstellen.

    Wie bekomme ich das hin? :helpnew:
    Ich hatte schon einmal was eingefügt, aber das hat nicht funktioniert.


    Programm mit Python:

    #Richtung der GPIO-Pins festlegen (IN / OUT)
    GPIO.setup(7, GPIO.OUT)
    GPIO.setup(11, GPIO.OUT)
    GPIO.setup(13, GPIO.OUT)
    GPIO.setup(15, GPIO.OUT)
    #unendliche Schleife
    while True:
    # EINE NEUE SCHLEIFE BEGINNT JETZT ACHTUNG
    #Pin 15 HIGH Pegel
    GPIO.output(11, True)
    #eine halbe Sekunde warten
    time.sleep(0.5)
    #Pin 26 LOW Pegel
    GPIO.output(11, False)
    #eine halbe Sekunde warten
    time.sleep(0.1)
    #Pin 15 HIGH Pegel
    GPIO.output(7, True)
    #eine halbe Sekunde warten
    time.sleep(2)
    #Pin 26 LOW Pegel
    GPIO.output(7, False)
    #eine halbe Sekunde warten
    time.sleep(0.03)
    #Pin 15 HIGH Pegel
    GPIO.output(13, True)
    #eine halbe Sekunde warten
    time.sleep(0.5)
    #Pin 26 LOW Pegel
    GPIO.output(13, False)
    #eine halbe Sekunde warten
    time.sleep(0.1)
    #Pin 15 HIGH Pegel
    GPIO.output(15, True)
    #eine halbe Sekunde warten
    time.sleep(0.7)
    #Pin 26 LOW Pegel
    GPIO.output(15, False)
    #eine halbe Sekunde warten
    time.sleep(0.1)
    #HIER IST DIE SCHLEIFE ZUENDE ACHTUNG
    # EINE NEUE SCHLEIFE BEGINNT JETZT ACHTUNG 1
    #Pin 15 HIGH Pegel
    GPIO.output(7, True)
    #eine halbe Sekunde warten
    time.sleep(0.3)
    #Pin 26 LOW Pegel
    GPIO.output(7, False)
    #eine halbe Sekunde warten
    time.sleep(0.00000003)
    #Pin 15 HIGH Pegel
    GPIO.output(13, True)
    #eine halbe Sekunde warten
    time.sleep(0.4)
    #Pin 26 LOW Pegel
    GPIO.output(13, False)
    #eine halbe Sekunde warten
    time.sleep(0.03)
    #Pin 15 HIGH Pegel
    GPIO.output(11, True)
    #eine halbe Sekunde warten
    time.sleep(0.4)
    #Pin 26 LOW Pegel
    GPIO.output(11, False)
    #eine halbe Sekunde warten
    time.sleep(0.1)
    #Pin 15 HIGH Pegel
    GPIO.output(15, True)
    #eine halbe Sekunde warten
    time.sleep(0.5)
    #Pin 26 LOW Pegel
    GPIO.output(15, False)
    #eine halbe Sekunde warten
    time.sleep(0.5)
    #HIER IST DIE SCHLEIFE ZUENDE ACHTUNG
    # EINE NEUE SCHLEIFE BEGINNT JETZT ACHTUNG 2
    #Pin 15 HIGH Pegel
    GPIO.output(13, True)
    #eine halbe Sekunde warten
    time.sleep(0.5)
    #Pin 26 LOW Pegel
    GPIO.output(13, False)
    #eine halbe Sekunde warten
    time.sleep(0.33421)
    #Pin 15 HIGH Pegel
    GPIO.output(11, True)
    #eine halbe Sekunde warten
    time.sleep(0.4)
    #Pin 26 LOW Pegel
    GPIO.output(11, False)
    #eine halbe Sekunde warten
    time.sleep(0.00000000000001)
    #Pin 15 HIGH Pegel
    GPIO.output(7, True)
    #eine halbe Sekunde warten
    time.sleep(0.3)
    #Pin 26 LOW Pegel
    GPIO.output(7, False)
    #eine halbe Sekunde warten
    time.sleep(0.1)
    #Pin 15 HIGH Pegel
    GPIO.output(15, True)
    #eine halbe Sekunde warten
    time.sleep(1.1)
    #Pin 26 LOW Pegel
    GPIO.output(15, False)
    #eine halbe Sekunde warten
    time.sleep(0.4)
    #HIER IST DIE SCHLEIFE ZUENDE ACHTUNG
    # EINE NEUE SCHLEIFE BEGINNT JETZT ACHTUNG 3
    #Pin 15 HIGH Pegel
    GPIO.output(15, True)
    #eine halbe Sekunde warten
    time.sleep(0.1)
    #Pin 26 LOW Pegel
    GPIO.output(15, False)
    #eine halbe Sekunde warten
    time.sleep(0.1)
    #Pin 15 HIGH Pegel
    GPIO.output(7, True)
    #eine halbe Sekunde warten
    time.sleep(1.5)
    #Pin 26 LOW Pegel
    GPIO.output(7, False)
    #eine halbe Sekunde warten
    time.sleep(0.0000001)
    #Pin 15 HIGH Pegel
    GPIO.output(13, True)
    #eine halbe Sekunde warten
    time.sleep(0.75)
    #Pin 26 LOW Pegel
    GPIO.output(13, False)
    #eine halbe Sekunde warten
    time.sleep(0.6)
    #Pin 15 HIGH Pegel
    GPIO.output(15, True)
    #eine halbe Sekunde warten
    time.sleep(0.7)
    #Pin 26 LOW Pegel
    GPIO.output(15, False)
    #eine halbe Sekunde warten
    time.sleep(0.16)
    # EINE NEUE SCHLEIFE BEGINNT JETZT ACHTUNG 4
    #Pin 15 HIGH Pegel
    GPIO.output(11, True)
    #eine halbe Sekunde warten
    time.sleep(0.7)
    #Pin 26 LOW Pegel
    GPIO.output(11, False)
    #eine halbe Sekunde warten
    time.sleep(0.4)
    #Pin 15 HIGH Pegel
    GPIO.output(7, True)
    #eine halbe Sekunde warten
    time.sleep(1.8)
    #Pin 26 LOW Pegel
    GPIO.output(7, False)
    #eine halbe Sekunde warten
    time.sleep(0.11111)
    #Pin 15 HIGH Pegel
    GPIO.output(13, True)
    #eine halbe Sekunde warten
    time.sleep(0.3)
    #Pin 26 LOW Pegel
    GPIO.output(13, False)
    #eine halbe Sekunde warten
    time.sleep(0.0000001)
    #Pin 15 HIGH Pegel
    GPIO.output(15, True)
    #eine halbe Sekunde warten
    time.sleep(0.2)
    #Pin 26 LOW Pegel
    GPIO.output(15, False)
    #eine halbe Sekunde warten
    time.sleep(0.1)
    # EINE NEUE SCHLEIFE BEGINNT JETZT ACHTUNG 5
    #Pin 15 HIGH Pegel
    GPIO.output(15, True)
    #eine halbe Sekunde warten
    time.sleep(0.5)
    #Pin 26 LOW Pegel
    GPIO.output(15, False)
    #eine halbe Sekunde warten
    time.sleep(0.00003)
    #Pin 15 HIGH Pegel
    GPIO.output(7, True)
    #eine halbe Sekunde warten
    time.sleep(0.999999)
    #Pin 26 LOW Pegel
    GPIO.output(7, False)
    #eine halbe Sekunde warten
    time.sleep(0.3)
    #Pin 15 HIGH Pegel
    GPIO.output(13, True)
    #eine halbe Sekunde warten
    time.sleep(0.99999)
    #Pin 26 LOW Pegel
    GPIO.output(13, False)
    #eine halbe Sekunde warten
    time.sleep(0.00000000000001)
    #Pin 15 HIGH Pegel
    GPIO.output(11, True)
    #eine halbe Sekunde warten
    time.sleep(0.4)
    #Pin 26 LOW Pegel
    GPIO.output(11, False)
    #eine halbe Sekunde warten
    time.sleep(0.1)
    #HIER IST DIE SCHLEIFE ZUENDE ACHTUNG 6
    # EINE NEUE SCHLEIFE BEGINNT JETZT ACHTUNG
    #Pin 15 HIGH Pegel
    GPIO.output(13, True)
    #eine halbe Sekunde warten
    time.sleep(0.9)
    #Pin 26 LOW Pegel
    GPIO.output(13, False)
    #eine halbe Sekunde warten
    time.sleep(0.1)
    #Pin 15 HIGH Pegel
    GPIO.output(7, True)
    #eine halbe Sekunde warten
    time.sleep(1)
    #Pin 26 LOW Pegel
    GPIO.output(7, False)
    #eine halbe Sekunde warten
    time.sleep(0.00001)
    #Pin 15 HIGH Pegel
    GPIO.output(11, True)
    #eine halbe Sekunde warten
    time.sleep(0.07)
    #Pin 26 LOW Pegel
    GPIO.output(11, False)
    #eine halbe Sekunde warten
    time.sleep(0.07)
    #Pin 15 HIGH Pegel
    GPIO.output(15, True)
    #eine halbe Sekunde warten
    time.sleep(0.7)
    #Pin 26 LOW Pegel
    GPIO.output(15, False)
    #eine halbe Sekunde warten
    time.sleep(0.09)
    #HIER IST DIE SCHLEIFE ZUENDE ACHTUNG

  • Bitte Beitrag bearbeiten (unten rechts) und das anwenden: FAQ => Nützliche Links / Linksammlung => HowTo: CODE / PHP Code im Forum posten
    Danke


    Kommentare sollten nichts offensichtliches beschreiben sondern wenn dann eine Aufwertung darstellen. Wenn ein Kommentar dann noch nicht mals zu dem tatsächlichen Code passt ist die Verwirrung komplett - also lieber ganz weg lassen.

    Und was man dir glaub ich auch schon mal sagte: Wiederholt sich der selbe Code immer und immer wieder erstellt man eine Funktion. Das würde in Deinem Fall hier extrem viel Sinn machen. Der Funktion dann nur noch den "schlaf wert" übergeben und dann diese Funktion so oft ausführen wie man möchte
    Beispiel:
    [code=php]
    from RPi import GPIO

    GPIO.setmode(GPIO.BOARD)
    GPIO.setup(7, GPIO.OUT)
    GPIO.setup(11, GPIO.OUT)

    def schalten(port=7, delay=0.5):
    GPIO.output(port, True)
    time.sleep(delay)
    GPIO.output(port, False)
    time.sleep(delay)

    while True:
    schalten()
    schalten(11, 2)
    schalten(7, 5)
    schalten(11, 7)
    [/php]

    Aber selbst das kann man mit zB einer "for" regeln ohne 30x "funktionsaufruf" untereinander zu schreiben...

    Wenn man dann zufällige Zeitwerte haben möchte nutzt man i.d.R. 'random'

  • Moin Agentdroid 008 ,
    selbst als Nichtkenner von Phyton weiß ich, das das nicht funktioniert.
    Es fehlt am Anfang einiges. Und wo bitte sind deine Schleifen? Wo werden deine gewünschten Zeiten definiert??

    Aber mach erstmal das was meigrafd dir empfohlen hat.

    Gruss Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

    Einmal editiert, zuletzt von Bernd666 (11. Februar 2017 um 02:19)

Jetzt mitmachen!

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