- SF800 Solar Speicher Tutorial         
Ergebnis 1 bis 10 von 62

Thema: Drei Led´s mit einem Taster unabhängig von einander schalten

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Benutzer Stammmitglied Avatar von p@ty
    Registriert seit
    05.06.2011
    Ort
    Bottrop
    Beiträge
    51
    Hi Searcher!

    Richtig! Eltakos sind die Stromstoßschalter!

    Dein Code funktioniert entsprechend meiner Beschreibung zu 100% richtig!! Danke dafür!
    MEIN Fehler war das ich nicht bedacht hatte das ich die Eltakos abfragen muss, da beim Szenariendurchlauf ja immer nur einmal die Ausgänge auf high gesetzt werden.

    Als Beispiel:

    LED1 & Led2 & Led3 werden im letzten Szenario auf high gesetzt. Also alle 3 Eltakos ziehen an und halten. Das nächste Szenario wäre Led1 high, Led2&3 low. Es würde nichts passieren da Led1 einfach high bleibt und Led2&3 keinen weiteren Impuls zum lösen des Eltkaos bekommen. Da ich aus Platzgründen nicht die Möglichkeit habe die Position der Eltakos ab zu fragen und denke das eine Änderung Softwaremäßig wohl sehr Umfangreich würde, dachte ich an Standart Relais zum betreiben der Schaltung...

    War halt mein Denkfehler! Sorry! Übe´noch!

    Viele Grüße,
    p@ty

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.715
    Blog-Einträge
    133
    Kein Problem. Aber was funktioniert mit dem letzten Code von mir nicht. Ich überlege ja schon an einer Lösung, kann aber nur vermuten, daß Du mit dem kurzen Tastendruck das vorher angewählte Szenario nicht einschalten kannst?

    Ist das so

    Nur sagen, was Du brauchst - hab heute ein bißchen Zeit. SONDERANGEBOT

    Guß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  3. #3
    Benutzer Stammmitglied Avatar von p@ty
    Registriert seit
    05.06.2011
    Ort
    Bottrop
    Beiträge
    51
    Sonderangebot??? Da muss ich zu greifen!!!

    Mit Led´s funktioniert Dein Code Klasse! Aber mit selbshaltenden Eltakos klappts dann natürlich nicht.

    Okay, ich versuche es nochmal in Worte zu fassen....^^

    Option 1 Relais!

    Hierbei sollte die Szenarienauswahl ja passen da die Relais ja abfallen wenn keine Spannung anliegt.
    Da sie ja nicht über Selbsthaltung verfügen muss das der Druck auf den Taster bewerkstelligen.
    Halt Taster drücken = Led1 usw High! Nochmal drücken Led´s low! usw...

    Option 2 Eltakos!
    Hier würde der Code soweit abgeändert werden müssen, daß die Led´s bzw Eltakos einen zusätzlichen Impuls bekommen um vorm Szenarienwechsel wieder low zu sein. Da ja sonst die Eltakos aufgrund ihrer Selbshaltung die ganze Zeit über High wären. Man müsste sie abfragen welchen Zustand sie haben und diese Information wieder zum µC führen. Leider ist Hardwareseitig absolut kein Platz zur verfügung.

    Also dann doch Option 1 mit "Normalen" Relais! ^^
    Danke für Deine Hilfe Searcher!

    Viele Grüße,
    p@

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.715
    Blog-Einträge
    133
    Tasten wir uns mal ran. Ich hab immer noch nicht verstanden, was im Datail unbefriedigend ist und hab einfach mal was gemacht. Kennst das, was von Planung über Entwicklung, Fabrikation, Lieferung und Montage am Ende übrig bleibt ?

    Nicht getestet aber sollte so sein:
    Auswahl Szenario wie gehabt.
    Am Ende der Auswahl bei Taster loslassen werden die Relais(Leds) nicht abgeschaltet, aktuelles Szenario bleibt an.
    Mit folgendem kurzem Tastendruck wird dann abgeschaltet.
    Mit weiterem kurzen Tastendruck wird vorhergehendes Szenario wieder eingeschaltet.

    Hab noch ein Case für den kuzen Tastendruck eingefügt und das Abschalten der LedX am Ende rausgenommen. - Dieses Case wieder entfallen nach Update. Kurzer Tastendruck wird am Ende abgefragt.

    PS. Ohhh schon Fehler entdeckt - Update kommt später
    Update gemacht

    Code:
    '###################################
    '### Bascom Demoversion V2.0.7.5 ###
    '###################################
    $regfile = "m168def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 34
    $crystal = 16000000
    
    Dim Hundertstelsekunden As Word         'enthält Tastendrucklänge in Hundertstel Sekunden
    
    Dim Ledspeicher As Byte                 'Speichert Zustand der LEDs in einzelnen Bits
    Const Led_1 = 0                         'Zum Adressieren der Bits in Ledspeicher
    Const Led_2 = 1                         'Zum Adressieren der Bits in Ledspeicher
    Const Led_3 = 2                         'Zum Adressieren der Bits in Ledspeicher
    
    Portd.4 = 1                             'Pullup an PD4 einschalten
    Taster Alias Pind.4                     'Taster an PD4
    
    Led1 Alias Portc.0                      'Anschluß für LED1 ?
    Led2 Alias Portc.1                      'Anschluß für LED2 ?
    Led3 Alias Portb.3                      'Anschluß für LED3 ?
    Config Led1 = Output
    Config Led2 = Output
    Config Led3 = Output
    
    Do                                      'Hauptschleife
      Debounce Taster , 0 , Taste_gedrueckt , Sub       'Wenn Tasteranschluß auf 0 (low) -> Subroutine Taste_gedrueckt
                                                        'Debounce hat bei Aktivität auf dem PIN ca. 25ms Verzögerung
    Loop                                    'Ende Hauptschleife
    
    Taste_gedrueckt:                        'Unterprogram wird angesprungen, wenn Taste gedrückt wurde
      Hundertstelsekunden = 0               'initialisieren für Zeitmessung
      While Taster = 0                      'Solange Taster gedrückt ist...
        Waitms 10                           '0,01s Zeitmeßschritte
        Incr Hundertstelsekunden            'alle 10ms erhöhen
        Select Case Hundertstelsekunden     'Hundertstelsekunden enthält Länge des Tastendruckes in Hundertstelsekunden
          Case 20 To 69 : Ledspeicher = Bits(led_1)       'Taste zwischen 200ms  und <700ms gedrückt
          Case 70 To 119 : Ledspeicher = Bits(led_2)       'Taste zwischen 700ms  und <1200ms gedrückt
          Case 120 To 169 : Ledspeicher = Bits(led_3)
          Case 170 To 219 : Ledspeicher = Bits(led_1 , Led_2)
          Case 220 To 269 : Ledspeicher = Bits(led_1 , Led_3)
          Case 270 To 319 : Ledspeicher = Bits(led_2 , Led_3)
          Case 320 To 369 : Ledspeicher = Bits(led_1 , Led_2 , Led_3)
          Case 370 : Hundertstelsekunden = 19       'Taste 3,7s und länger gedrückt-> Auswahl Lichtszenario beginnt neu
        End Select
         if Hundertstelsekunden >= 20 then          'wenn Selektion, dann Leds entsprechend einschalten
          Led1 = Ledspeicher.Led_1
          Led2 = Ledspeicher.Led_2
          Led3 = Ledspeicher.Led_3
        end if
      Wend
      if Hundertstelsekunden < 20 then         'wenn Taste nur kurz gedrückt wurde ...
        If Led1 = 1 or Led2 = 1 or Led3 = 1 then      'und irgendeine Led eingeschaltet ist
            Led1 = 0                                   'dann alle ausschalten
            Led2 = 0         
            Led3 = 0
          else                                      'oder gespeichertes Szenario einschalten.
            Led1 = Ledspeicher.Led_1
            Led2 = Ledspeicher.Led_2
            Led3 = Ledspeicher.Led_3
        end if
      end if
    Return                                  'zurück zur Hauptschleife
    
    End                                     'end program
    Geändert von Searcher (28.03.2013 um 13:39 Uhr) Grund: Programm berichtigt, hoffentlich
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  5. #5
    Benutzer Stammmitglied Avatar von p@ty
    Registriert seit
    05.06.2011
    Ort
    Bottrop
    Beiträge
    51
    Jepp, das womit sich der Kunde zufrieden geben muss
    aber nichts mehr mit dem eigentlich angenommenen Auftrag zu tun hat! ^^

    Mein Gott bist Du schnell!!! Ja, genau so sollte es sein!
    Kann Deinen Code aber erst heute Abend testen! Hab´ erst gegen 17h Feierabend! Aber dann ist langes Osterwochenende und das hast Du mir gerade um 100% verbessert!

    Bin schon sehr gespannt!

    Viele Grüße!
    p@

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.715
    Blog-Einträge
    133
    Zitat Zitat von p@ty Beitrag anzeigen
    Mein Gott bist Du schnell!!! Ja, genau so sollte es sein!
    Kann Deinen Code aber erst heute Abend testen!Bin schon sehr gespannt!
    Na ja, schnell ist nicht gut Jetzt sollte es passen. Hab den Code von heute morgen ausgetauscht und bin nun auch gespannt.

    Ist immer noch vermutlich eine kleine Macke drin - soll erstmal zum Testen sein und ob die grobe Funktion so richtig ist.
    Geändert von Searcher (28.03.2013 um 12:49 Uhr)
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  7. #7
    Benutzer Stammmitglied Avatar von p@ty
    Registriert seit
    05.06.2011
    Ort
    Bottrop
    Beiträge
    51
    Na, geht ja jetzt für mich rapide auf´n Feierabend zu! ^^ Seh´ schon die Led am USB Progger blinken!!!

Ähnliche Themen

  1. Roboter mit einem Taster an und aus schalten!?
    Von Bammel im Forum Elektronik
    Antworten: 56
    Letzter Beitrag: 10.02.2010, 18:53
  2. Antworten: 11
    Letzter Beitrag: 31.01.2010, 16:25
  3. Einfach nur mit Taster eine LED ein und aus schalten ?
    Von Ferdinand im Forum Assembler-Programmierung
    Antworten: 2
    Letzter Beitrag: 13.06.2008, 09:08
  4. LED mit Taster ein/aus schalten
    Von sampe im Forum Elektronik
    Antworten: 8
    Letzter Beitrag: 16.09.2006, 10:55
  5. Problem mit LED´s an Output Matrix und einem Taster
    Von MrQu im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 6
    Letzter Beitrag: 16.10.2005, 18:13

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen