Lauflicht mit Richtungsänderung und schnell langsam

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

    ich bin neu im Forum und habe vom programmiern fast keine Ahnung. Ich habe mich für
    die Programmiersprache Python entschieden weil ich da wenigstens noch ein bisschen verstehe
    was ich da überhaupt eintippe.

    Ich möchte gern ein Programm schreiben welches ein Lauflicht mit 6.LEDs ausgibt über GPIO [5,6,12,13,16,19] output und die Richtung wechseln kann [19,16,13,12,6,5] bei High bzw. LOW am input von GPIO 26 Raspberry b+. Zudem wollte ich die Geschwindigkeit vom Lauflicht 4 stufig über GPIO 20 und 21 mittels binäres Zählverfahren anheben und absenken können. Habt Ihr vielleicht etwas was mir da weiterhelfen könnte?


    [/size][/font]

  • Lauflicht mit Richtungsänderung und schnell langsam? Schau mal ob du hier fündig wirst!

    • Offizieller Beitrag

    An was scheiterst du denn? Du hast doch dein gpio schon in listen

    und was meinst du mit binäres Zählverfahren? und was haben die GPIOs 20/21 damit zu tun?
    Und die Geschwindigkeit erhöst du durch herabsetzen der varibale die du im #warte teil verwendest.
    Wie man Pins auf High/Low in setzt sagt dir google oder die forensuche...ich in grad schreibfaul.

  • Interessante Aufgabe um GPIO und Python kennenzulernen. Mir ist nicht ganz klar was Du suchst. Jemand der sich in der Materie auskennt wird das wohl in 1-2 Stunden erledigt haben. Aber der Lerneffekt bei Dir ist gleich null.

    Da Sinn der Sache wohl auch sein soll Python kennenzulernen solltest Du mit einfacheren Programmen anfangen um Python zu lernen. Danach ist es nur noch ein kleiner Schritt die GPIOSteuerung aufzunehmen.


  • ... Geschwindigkeit vom Lauflicht 4 stufig über GPIO 20 und 21 mittels binäres Zählverfahren ...


    Hi,
    dbv: vermutlich folgendermassen ...
    Stufe 0 (oder aus):

    Code
    GPIO20 -> LOW
    GPIO21 -> LOW


    Stufe 1:

    Code
    GPIO20 -> LOW
    GPIO21 -> HIGH


    Stufe 2:

    Code
    GPIO20 -> HIGH
    GPIO21 -> LOW


    Stufe 3:

    Code
    GPIO20 -> HIGH
    GPIO21 -> HIGH

    cu,
    -ds-

  • dbv & ds: Mit einer Loop, die über die Liste der GPIO Pins geht und immer n aus- und n+1 einschaltet (module Pins) sind das approx 5 Zeilen Code. Die Geschwindigkeitssteuerung wird dann noch mal so 5 Zeilen benötigen.

    Ich bin gespannt auf die Antwort des TEs auf meine Antwort ...

  • meigrafd
    31. Mai 2014 um 16:43
  • Hallo und danke erst mal für die Antworten.

    Ja das mit dem binären Zählverfahren habe ich genau so gemeint mit LOW LOW Stufe 1 = aus
    mit LOW, HIGH Stufe 2 = 0.5s dann HIGH, LOW Stufe 3 = 0.25s und HIGH HIGH Stufe 4 = 0.1s

    Wenn ich das dann alles erst mal programmiert bekommen habe würde ich einen AD Wandler
    anschliesen, müsste mir dann zwar was wegen der Spannung von 3,3 Volt was einfallen lassen aber soweit bin ich noch lange nicht.

    Also ich habe erst mal das:

    import RPi.GPIO as GPIO
    import time
    GPIO.setmode(GIPO.BCM)

    GPIO.setup(5, GPIO.OUT)
    GPIO.setup(6, GPIO.OUT)
    GPIO.setup(13, GPIO.OUT)
    usw. bis 19

    GPIO.setup(26, GPIO.IN)

    while 1:
    GPIO.output(5,GPIO.LOW)
    usw. bis 19

    if GIPO.input(26) == GPIO.HIGH:

    GPIO.output(5, GPIO.HIGH)
    time.sleep(0.5)
    GPIO.output(5, GPIO.LOW)
    time.sleep(0.5)

    usw. bis 19 und dann

    if GPIO.input(26) == GPIO.LOW:

    GPIO.output(19, GPIO.HIGH)
    time.sleep(0.5)
    GPIO.output(19, GPIO.LOW)
    time.sleep(0.5)
    usw. bis 5

    Ja gut, da stehen jetzt wohl einen erfahrenen Programmierer die Haare zu Berge aber
    anders wuste ich mir nicht zu helfen.
    Es funktioniert nicht wie vorgestellt der Pi lässt erst 5 - 19 durch und wechselt dann erst die Richtung sofort wäre mir lieber.
    Für das mit der Zeit habe ich noch gar keine Lösung.


  • so und das ganze noch mal mit low und von 19 - 5GPIO
    [/php]

  • Tach auch,


    ... anschliesen, müsste mir dann zwar was wegen der Spannung von 3,3 Volt was einfallen lassen aber soweit bin ich noch lange nicht.


    das dürfte das kleinste Problem sein. Im GPIO Subforum findest Du Infos zum Thema Pegelwandler zu Hauf ...


    ...
    ... Es funktioniert nicht wie vorgestellt der Pi lässt erst 5 - 19 durch und wechselt dann erst die Richtung sofort wäre mir lieber.
    ...


    schau mal deinen Code in Ruhe durch und stell Dir dabei vor, Du wärst "Python" (ich mein jetzt nicht den Monty ;) ). Da kommst Du dann schon drauf ...


    ...
    ... Für das mit der Zeit habe ich noch gar keine Lösung.


    Kommt Zeit, kommt Geistesblitz.
    schau mal deinen Code in Ruhe durch und stell Dir dabei vor ...

    cheers,
    -ds-

  • Nicht den Monty vorstellen, looool das Unterbewustsein kennt das Wörtchen nicht nicht.
    Naja egal, habt Ihr nichts bisschen genaueres so etwas wie ein Beispiel, für die Sache mit schnell - langsam?

  • Wie gesagt: stell Dir vor Du bist der Interpreter und führst das script zeilenweise aus ...
    Na wie würdest Du denn schnell und langsam machen - den Ansatz hast Du ja schon:

    Licht an ... zweimal "Däumchen drehen" ... Licht aus ... zweimal "Däumchen drehen" ....
    schneller:
    Licht an ... einmal "Däumchen drehen" ...
    langsamer:
    Licht an ... dreimal "Däumchen drehen" ...

    cu,
    -ds-

  • Wie das Prinzip abläuft weis ich auch, nur nicht wie ich es Python sage.
    wie bringe ich 2 Dinge zueinander if GPIO.input(20) == GPIO.HIGH & if GPIO.input(21) == GPIO.LOW:
    Daran scheitert es dann bei mir, leider ist das ganze nicht so wie bei der Siemens LOGO wo man hübsche Gatter hat die man negieren und invertieren kann.

  • Na was die Syntax anbetrifft ... da wirst Du nicht umhin kommen, mal die Doku zu studieren ... logische Verknüpfungen wäre da ein Stichwort.
    Event- bzw. Interrupt-Handling wäre das zweite Thema, das interessant sein könnte ...
    Tipp am Rande: Such mal nach Python-Programmen mit Tastern und LEDs hier im Forum ...

    Wie gesagt ... Python ist nix für meiner einer ... da gibts hier z.B. so einen netten, grünen Mod ... dessen Lebensraum besteht aus knietiefem Schlangen-Kot ... äh Schlangen-Code ... Python-Code halt ... der, aber auch so Bootsmänner und meigrafds und so, die können da mehr dazu sagen.
    Und natürlich die Forensuche ;)

    cu,
    -ds-

  • ... ach ... die framps hatte ich ganz vergessen ... :blush:

    meinst Du ?
    also ich traue ihm das schon zu ... die Geschweindigkeits-Geschichte wird so imho einfacher ...

    Aber lassen wir unseren TE entscheiden ...
    Grüssle aus dem Alpenvorland und sorry für's vergessen ( das sollte bei Forenprominenz nicht vorkommen ... Asche auf mein Haupt :daumendreh2: )

    cu,
    -ds-

Jetzt mitmachen!

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