-         

Ergebnis 1 bis 10 von 10

Thema: 1 Relais 2 Signale

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    11.05.2006
    Ort
    Oberschopfheim
    Alter
    29
    Beiträge
    380

    1 Relais 2 Signale

    Anzeige

    Servus ich habe ein Problem mit meiner Uhr bzw dem Menü.

    Und zwar will ich dass einmal ein Relais anzieht wenn mit einem Taster im Menü Radio auswähle und das andere mal wenn Weckzeit und Uhrzeit übereinstimmen soll der selbe Ausgang gesetzt werden.

    nun habe ich im moment ein klacken das relais zieht nicht an. ich vermute dass es an meinen else pind.1 = 0 liegt.

    nur wie mache ich das am geschicktesten. desweiteren hab ich keine ahnung wie die uhr überhaupt los läuft. ich hab einen uhrenquarz angeschlossen nur tut sich da nix.

    hier mal ein ausschnitt:

    Code:
    Debounce Pind.0 , 0 , Menue , Sub
          If Modus = 0 Then
             Locate 2 , 1
             Lcd "aus  "
          End If
    
    
          If Modus = 1 Then
             Locate 2 , 1
             Lcd "MP3  "
             Portb.0 = 1
          Else
             Portb.0 = 0
          End If
    
          If Modus = 2 Then
             Locate 2 , 1
             Lcd "Radio"
             Portb.1 = 1
          Else
             Portb.1 = 0
          End If
    
          If Modus = 3 Then
             Locate 2 , 1
             Lcd "AUX  "
             Portb.2 = 1
          Else
             Portb.2 = 0
          End If
    
    If Stellenstunde = _hour And Stellenminute = _min And Anaus = 1 And Modus = 0 Then
                   Portb.1 = 1
                   Else
                   Portb.1 = 0
    
       End If

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    35
    Beiträge
    1.987

    Re: 1 Relais 2 Signale

    Zitat Zitat von xbgamer
    desweiteren hab ich keine ahnung wie die uhr überhaupt los läuft. ich hab einen uhrenquarz angeschlossen nur tut sich da nix.
    Und genau hier wär das _vollständige_ Programm wichtig. Nicht nur ein Ausschnitt.
    #ifndef MfG
    #define MfG

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    11.05.2006
    Ort
    Oberschopfheim
    Alter
    29
    Beiträge
    380
    ok hier:
    Code:
    $regfile = "m8def.dat"
    $crystal = 1000000
    $baud = 19200
    $hwstack = 32
    $swstack = 10
    $framesize = 40
    
    
    
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0
    Config Lcdbus = 4
    Cursor Off
    Ddrb = &B11111111
    Ddrd = &B00000000
    Portd.0 = 1
    Portd.1 = 1
    Portd.2 = 1
    Portd.3 = 1
    Portd.4 = 1
    Portd.5 = 1
    Portd.6 = 1
    Portd.7 = 1
    
    Enable Interrupts
    Config Clock = Soft
    Declare Sub Stunde
    Declare Sub Minute
    Declare Sub Menue
    Declare Sub Stundew
    Declare Sub Minutew
    Declare Sub Onoff
    Declare Sub Stellenmenue
    
    Dim Modus As Byte
    Dim Stellenstunde As Byte
    Dim Stellenminute As Byte
    Dim Konfiguration As Byte
    Dim Anaus As Byte
    
    
    Cls
    
    Time$ = "00:00:00"
    
    Do
       Locate 1 , 1
       Lcd Time$ ; "  " ;
       Locate 1 , 12
       If Stellenstunde < 10 Then Lcd "0"
       Lcd Stellenstunde ; ":"
             If Stellenminute < 10 Then Lcd "0"
             Lcd Stellenminute
    
    
       Debounce Pind.0 , 0 , Menue , Sub
          If Modus = 0 Then
             Locate 2 , 1
             Lcd "aus  "
          End If
    
    
          If Modus = 1 Then
             Locate 2 , 1
             Lcd "MP3  "
             Portb.0 = 1
          Else
             Portb.0 = 0
          End If
    
          If Modus = 2 Then
             Locate 2 , 1
             Lcd "Radio"
             Portb.1 = 1
          Else
             Portb.1 = 0
          End If
    
          If Modus = 3 Then
             Locate 2 , 1
             Lcd "AUX  "
             Portb.2 = 1
          Else
             Portb.2 = 0
          End If
    
       Debounce Pind.1 , 0 , Stellenmenue , Sub
    
    
       If Konfiguration = 1 Then                                'Wecker stellen
          Debounce Pind.2 , 0 , Stundew , Sub
          Debounce Pind.3 , 0 , Minutew , Sub
       End If
    
    
       If Konfiguration = 2 Then                                'Uhr stellen
          Debounce Pind.2 , 0 , Stunde , Sub
          Debounce Pind.3 , 0 , Minute , Sub
       End If
    
       Debounce Pind.4 , 0 , Onoff , Sub
    
       If Konfiguration = 0 Then                                'Wecker an/aus
              If Anaus = 0 Then
                Locate 2 , 11
                Lcd "   aus"
              End If
    
             If Anaus = 1 Then
                Locate 2 , 11
                Lcd "    an"
             End If
       End If
    
    
       If Stellenstunde = _hour And Stellenminute = _min And Anaus = 1 And Modus = 0 Then
                   Portb.1 = 1
                   Else
                   Portb.1 = 0
    
       End If
    
    
    
    Loop
    
    
    
    'Stellenmenü                                                'Menü zum einstellen Wecker/Uhr
    Stellenmenue:
    Incr Konfiguration
       If Konfiguration = 3 Then Konfiguration = 0
       Locate 2 , 11
    
       If Konfiguration = 0 Then
          Locate 2 , 11
       End If
    
    
       If Konfiguration = 1 Then
          Locate 2 , 11
          Lcd "Wecker"
       End If
    
    
    
       If Konfiguration = 2 Then
          Locate 2 , 11
          Lcd "   Uhr"
       End If
    Return
    
    
    'Menü                                                       'Menü MP3, Radio, Aux
    Menue:
    Incr Modus
       If Modus = 4 Then Modus = 0
    Return
    
    
    
    'Stunde                                                    'Hier wird die Stunde der Uhr hochgezählt
    Stunde:
       Incr _hour
       If _hour > 23 Then
          _hour = 00
       End If
    Return
    
    
    
    'Minute                                                     'Hier wird die Minute der Uhr hochgezählt
    Minute:
       Incr _min
       If _min > 59 Then
          _min = 00
       End If
    
    Return
    
    
    
    'MinuteW                                                    'Hier wird die Minute des Weckers hochgezählt
    Minutew:
    Incr Stellenminute
       If Stellenminute > 59 Then
       Stellenminute = 0
       End If
    Return
    
    
    
    'Stundew                                                    'Hier wird die Stunde des Weckers hochgezählt
    Stundew:
    Incr Stellenstunde
       If Stellenstunde > 23 Then
       Stellenstunde = 0
       End If
    Return
    
    
    
    'onoff                                                      'Hier wird der Wecker ein- und ausgeschaltet
    Onoff:
    Incr Anaus
       If Anaus = 2 Then Anaus = 0
    Return

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    11.05.2006
    Ort
    Oberschopfheim
    Alter
    29
    Beiträge
    380
    kann ich das problem mit dem relais nicht einfach so lösen dass ich einen anderen ausgang für den wecker schalten lasse und den einfach auch auf das relais anschließe?

    sollte ja eigentlich gehen is nur nicht so ellegant wie wenn ichs mit der software mache. nur muss ich dann 2 dioden einbauen die jeweils gegen den anderen port sperren?

  5. #5
    Erfahrener Benutzer Roboter Experte Avatar von Tido
    Registriert seit
    14.11.2006
    Ort
    OWL
    Alter
    41
    Beiträge
    609
    Das Problem scheint klar:

    Selbst wenn das Relais durch den Taster eingeschlatet wird, so wird es in der Zeile Portb.1 = 0 nach der If-Abfrage
    If Stellenstunde = _hour And Stellenminute
    wieder ausgeschaltet, wenn die Weckzeit nicht erreicht ist.
    MfG
    Tido

    ---------------------------------------------------
    Have you tried turning it off and on again???
    ---------------------------------------------------

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    11.05.2006
    Ort
    Oberschopfheim
    Alter
    29
    Beiträge
    380
    Zitat Zitat von Tido
    Das Problem scheint klar:

    Selbst wenn das Relais durch den Taster eingeschlatet wird, so wird es in der Zeile
    If Stellenstunde = _hour And Stellenminute
    wieder ausgeschaltet, wenn die Weckzeit nicht erreicht ist.

    soweit war ich auch schon nur wie kann ich es lösen?

  7. #7
    Erfahrener Benutzer Roboter Experte Avatar von Tido
    Registriert seit
    14.11.2006
    Ort
    OWL
    Alter
    41
    Beiträge
    609
    Setz doch beim manuellen Einschalten des Radios eine Variable (lösche sie beim manuellen Ausschalten) und ändere die Zeile in
    if variable<>"wert" then Portb.1 = 0
    MfG
    Tido

    ---------------------------------------------------
    Have you tried turning it off and on again???
    ---------------------------------------------------

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    11.05.2006
    Ort
    Oberschopfheim
    Alter
    29
    Beiträge
    380
    die uhr läuft mittlerweile. bleibt nur noch das problem mit dem relais. dein ansatz versteh ich nicht. ich arbeite doch bereits mit ner variable. siehe modus im code weiter unten.

  9. #9
    Erfahrener Benutzer Roboter Experte Avatar von Tido
    Registriert seit
    14.11.2006
    Ort
    OWL
    Alter
    41
    Beiträge
    609
    Dann schreib eben:
    if modus<>2 then Portb.1 = 0
    MfG
    Tido

    ---------------------------------------------------
    Have you tried turning it off and on again???
    ---------------------------------------------------

  10. #10
    Erfahrener Benutzer Roboter Experte Avatar von Neutro
    Registriert seit
    28.10.2007
    Ort
    Ostfriesland
    Alter
    38
    Beiträge
    642
    Das ganze kannst du doch auch mit einer oder Verknüpfung lösen:
    if zustandX erreicht or zustand Y then
    Relais setzen

    MfG

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

Berechtigungen

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