-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Hilfe bei Zeit Bedingung

  1. #1
    Erfahrener Benutzer Roboter Experte Avatar von Neutro
    Registriert seit
    28.10.2007
    Ort
    Ostfriesland
    Alter
    38
    Beiträge
    642

    Hilfe bei Zeit Bedingung

    Anzeige

    Hallo Bascom Programmierer,

    ich benötige mal eure Hilfe bei einem Projekt.
    Ich habe vor bei meier Treppe die Stufen mit LED´s zu beleuchten, dazu sollen die LED´s per PWM gedimmt werden und wie ein Lauflicht von oben nach unten durchlaufen. Die Geschwindigkeit wird so eingestellt das es wie ein Dauerleuchten aussieht. Um Port pins zu sparen mache ich das mit einen 4067 Multiplexer (Im Prog fehlen noch die 8-4-2-1 Code Angaben da die Hardware noch nicht fertig ist). Ein LDR Sensor erfasst die Lichtstärke im Flur und stellt dann die PWN in zwei Stufen ein (Abend und Nachtwert)
    Jetzt zu meinem Problem:
    1. Ich möchte das die Beleuchtung von 10-15 Uhr immer ausgeschaltet ist. Dazu habe ich schon eine Uhr mit einprogrammiert, aber irgendwie habe ich da ein Brett vor dem Kopf...
    2. Könnt ihr mir noch sagen ob ich den Programmteil mit der Lauflichtgeschwindigkeit richtig gemacht habe? konnte ich bisher leider nicht testen.

    PWM, Uhr und LDR funktioniern soweit tadellos.

    Vielen Dank schon mal
    Angehängte Dateien Angehängte Dateien
    Jemand mit einer neuen Idee ist ein Spinner, bis er Erfolg hat.
    (Mark Twain)

  2. #2
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    28
    Beiträge
    3.517
    Blog-Einträge
    9
    Hi,

    was hast du den für ein Problem mit der Uhr und welcher Teil vom Programm ist für die Lauflichtgeschwindigkeit zuständig?
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  3. #3
    Erfahrener Benutzer Roboter Experte Avatar von Neutro
    Registriert seit
    28.10.2007
    Ort
    Ostfriesland
    Alter
    38
    Beiträge
    642
    Hallo Kampi,

    die Uhr an sich läuft reibungslos ich möchte halt nur das in der Zeit von 10 bis 15 Uhr die LED´s aus sind bzw, keine PWM ausgegeben wird.
    ( siehe Programmteil PWM wir an pin 17 ausgegeben)
    Der teil mit dem Lauflicht ist im Prog beschrieben mit Geschwindigkeit bzw. Variable geschwindigkeitll wird gesteuert vom Timer0
    Das prog. Habe ich eigentlich soweit ganz übersichtlich unterteilt.

    Gruß
    Neutro
    Jemand mit einer neuen Idee ist ein Spinner, bis er Erfolg hat.
    (Mark Twain)

  4. #4
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    28
    Beiträge
    3.517
    Blog-Einträge
    9
    Hi,

    also die Berechnungen für den Timer0 sehen (soweit ich es sehen kann) gut aus.
    Nur soweit ich das gesehen habe, hast du beim Timer1 für die Uhr einen kleinen Fehler gemacht. Der Timer1 ist ein 16-Bit Timer und zählt bis 65535. Das heißt du musst den Timer mit 3035 vorladen um auf genau 1 Sekunde zu kommen.
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    46
    Beiträge
    765
    Stufe 15 wird nie angesteuert.

    Code:
    If Timecount = Geschwindigkeitll Then
       Incr Lednr
       Timecount = 0
    End If
    
    If Lednr = 15 Then
       Lednr = 0
    End If
    
    Select Case Lednr
    Case 1 : Gosub Stufe1
    Case 2 : Gosub Stufe2
    Case 3 : Gosub Stufe3
    Case 4 : Gosub Stufe4
    Case 5 : Gosub Stufe5
    Case 6 : Gosub Stufe6
    Case 7 : Gosub Stufe7
    Case 8 : Gosub Stufe8
    Case 9 : Gosub Stufe9
    Case 10 : Gosub Stufe10
    Case 11 : Gosub Stufe11
    Case 12 : Gosub Stufe12
    Case 13 : Gosub Stufe13
    Case 14 : Gosub Stufe14
    Case 15 : Gosub Stufe15
    
    End Select
    Wenn immer nur eine Stufe leuchten soll, würde es auch per Schieberegister gehen, wo immer nur Bit geschoben wird.

    Z. B.
    Code:
    $regfile = "m8def.dat"
    $crystal = 4000000
    
    Dim Geschwindigkeitll As Byte
    Geschwindigkeitll = 40                                      '40x25ms =1 Sek.
    Dim Timecount As Word
    Timecount = 1
    Dim Lednr As Word
    
    Config Dcf77 = Pind.5 , Timer = 1 , Gosub = Sectic          'DCF-Uhr Routine, lässt sich auch mit einem 4MHZ Quarz ohne DCF-Empfänger nutzen
    
    Pin Alias Portd.6                                           'Angenommen der DataPIN
    Pclock Alias Portd.7                                        'Angenommen, der ClockPIN
    Lednr = 1
    
    Do
    Gosub Lauflicht
    
    
    Loop
    End
    
    
    Lauflicht:
    
    If Timecount = Geschwindigkeitll Then
       If Lednr = 32768 Then                                    'nur 15 Stufen, daher auf die Erste springen
          Lednr = 1
       Else
          Shift Lednr , Left
       End If
       Timecount = 0
    End If
    If _hour > 9 And _hour < 16 Then
       Lednr = 32768
    End If
    
    Shiftout Pin , Pclock , Lednr , 0                           'hier die Schieberegister mit den LEDs ansteuern
    
    Return
    
    Sectic:
    'Uhranzeigen
    Return
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  6. #6
    Erfahrener Benutzer Roboter Experte Avatar von Neutro
    Registriert seit
    28.10.2007
    Ort
    Ostfriesland
    Alter
    38
    Beiträge
    642
    Hallo Peterfido,
    Das mit der Stufe 15 ist schon so gewollt, die hatte ich erst mit vorgesehen bekommt aber keine LED´s.
    Das mit dem Schieberegister ist sicherlich auch eine gute möglichkeit das Lauflicht umzusetzen, kommt aber im Endeffekt aber ja auf´s gleiche raus.
    Was viel wichtiger ist: du hast das stück code mit der Uhrzeit mit reingebracht!! Danke!!! Ich werde das mal ausprobieren, werde damit dann den PWM Timer deaktivieren.

    Ich melde mich dann wieder wenn ichs prbiert habe.

    Danke bis hierhein schon mal an alle
    Jemand mit einer neuen Idee ist ein Spinner, bis er Erfolg hat.
    (Mark Twain)

  7. #7
    Erfahrener Benutzer Roboter Experte Avatar von Neutro
    Registriert seit
    28.10.2007
    Ort
    Ostfriesland
    Alter
    38
    Beiträge
    642
    So, jetzt melde ich mich dann auch noch mal wieder zu Wort.
    Das Programm läuft nun meinen Wünschen entsprechend nachden ich die
    Programmzeile

    If _hour > 9 And _hour < 16 Then
    stop timer0
    else
    start Timer0
    end if

    eingefügt hatte. (Hätte man eigentlich auch selber drauf kommen können,
    aber ich bin froh das man hier im Forum kompetente Hilfe bekommt.

    @ Kampi: ich hatte den Timerwert mit dem RNavr Tool ausgerechnet und die Werte so übernommen.

    Vielen Dank

    Neutro

    Jemand mit einer neuen Idee ist ein Spinner, bis er Erfolg hat.
    (Mark Twain)

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    46
    Beiträge
    765
    Hallo,

    die Timerberechnung mit dem RNavrTool liegt bei mir auch immer um eins daneben. Das könnte mal überarbeitet werden. Evtl. noch eine Option auf CTC wäre ebenso wünschenswert.
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  9. #9
    Erfahrener Benutzer Roboter Experte Avatar von Thomas E.
    Registriert seit
    29.12.2011
    Beiträge
    638
    Warum sind die Zeitvariablen (Stunde, Minute, Sekunde) eigentlich als Word definiert?
    Grüße
    Thomas

  10. #10
    Erfahrener Benutzer Roboter Experte Avatar von Neutro
    Registriert seit
    28.10.2007
    Ort
    Ostfriesland
    Alter
    38
    Beiträge
    642
    @Peterfido: Danke für die Info bezg. des RNAVR Tool, ich werde den Wert noch korrigieren.

    @Thomas E: Ich hatte das Uhrenprogramm mal vor Jahren im Netz gefunden und das dann einfach immer so übernommen. Eigentlich sollten dafür ja Byte Variablen
    völlig ausreichen. Müsste ich mal testen ob das irgendwas ausmacht.

    VG
    Neutro
    Jemand mit einer neuen Idee ist ein Spinner, bis er Erfolg hat.
    (Mark Twain)

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Speichern im EEprom und von Zeit zu Zeit abfragen
    Von Duesentrieb im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 7
    Letzter Beitrag: 07.01.2010, 18:54
  2. Zeit mit DCF-Modul auslesen (brauche noch Hilfe!!!!!!!!!!!!)
    Von BurningWave im Forum C - Programmierung (GCC u.a.)
    Antworten: 34
    Letzter Beitrag: 06.09.2008, 21:23
  3. Motoransteuerung mit Bedingung
    Von Coleone im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 6
    Letzter Beitrag: 30.06.2008, 21:53
  4. Wassertankanzeige suche schnell Hilfe nur 3 Tage zeit :(
    Von Robotik im Forum AVR Hardwarethemen
    Antworten: 5
    Letzter Beitrag: 16.07.2006, 09:21
  5. Fehler in einer if-Bedingung
    Von GoTo im Forum PIC Controller
    Antworten: 1
    Letzter Beitrag: 29.04.2005, 19:48

Berechtigungen

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