- SF800 Solar Speicher Tutorial         
Ergebnis 1 bis 2 von 2

Thema: Erstes Programm Atmega 8 und Zeitüberlauf Und error LED

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    24.03.2007
    Ort
    Titisee - Neustadt
    Alter
    46
    Beiträge
    289

    Erstes Programm Atmega 8 und Zeitüberlauf Und error LED

    Anzeige

    Powerstation Test
    Hallo,
    so fragen und Plane habe ich ja schon genug gestellt jetzt geht es ans eingemachte.
    Also meine Feuertaufe wie man so schön sagt.

    Habe als Grundlage ein Snugboard von Andree-HB mit Atmega 8

    Geschaltet werden soll eine Förderpumpe welche 12V braucht.
    Der Schalter ist in dem Fall ein Schwimmschalter.
    Das ganze soll meine jetzige Schwellwertschaltung ablösen.

    Also Funktion.
    Sobald der Schwimmschalter anspringt also Wasserstand niedrig soll die Pumpe anspringen.
    Sollte die Pumpe aber länger als 5 Sec laufen soll er auf Error schallten bis ich die Schaltung Resete. Also da ganze neu Starte per Resettaster.
    Gut das könnte man auch per Taster lösen.
    Mal sehen ist aber auch nicht das Problem.

    Errorschalltung sollte ein Buzzer und LED sein.
    LED an und Buzzer so alle 5 min 1 Sec anspringen.
    Man ist ja nicht immer da.
    Und die Katzen würden beim Dauerpiepen abdrehen.

    Könnt Ihr mir sagen wie ich das mache das er wenn die Förderpumpe 5sec läuft in Sub geht.
    Könnt ja auch mal sehen ob der Rest überhaupt stimmt.
    Danke

    Bisheriges Program:

    Code:
    '****Pegelregelung / Nachfüllautomatik****
    '* (c) 2007 Michael Lavalle              *
    '*                                       *
    '*****************************************
    
    'Fühler Pegel Filter an pind.2
    
    'Förderpumpe Salzwasser an portd.5
    'FERROR LED an portd.6
    'ERROR Buzzer an portd.8
    
    
    $regfile = "m8def.dat"                                      'definieren des verwendeten Chips
    
    $crystal = 16000000                                         'definieren des verwendeten externen Quarz (8MHz)
    
    Dim A As Byte                                               'dimensionieren der verwendeten Variablen
    Dim B As Byte
    
    Ddrd = &B11100000                                           'definieren der verwendeten Ports ( 1 = ausgang; 0= eingang)
    Portd = &B00000000                                          'definieren der einzelnen Pins an einem Port ( 0= low level; 1= high level)
    
    
    Main:                                                       'Hauptprogramm
    Do
                                                                'Anfang des Schwimmerschalter
      If Pind.2 = 1 Then                                        'Wenn an Pin 2 von Port D ein high level anliegt..
    
      Portd.5 = 1                                               '...setze Pin 5 von Port D auf High, Pumpe läuft
    
      Else Portd.5 = 0                                          '...setze Pin 5 von Port D auf low, Pumpe aus
      End If                                                    'Ende der Bedingung
    
    
    
    Loop                                                        'zum Anfang der Schleife
    
    Error:                                                      'Untermenü "Error ausgabe"
    
      Portd.6 = 1                                               'Error LED leuchtet
      Portd.7 = 1                                               'setzte den Pin 7 von Port D auf high
      Wait 1                                                    '1 Sec Buzzer an
      Portd.7 = 0                                               'setzt den Pin 7 von Port D auf low
      Wait 300                                                  ' Warte 5 Min
      Portd.7 = 1                                               'setzte den Pin 7 von Port D auf high
      Wait 1                                                    '1 Sec Buzzer an
      Portd.7 = 0                                               'setzt den Pin 7 von Port D auf low
    Loop
    Return                                                      'zurück zum Hauptmenü
    
    
                                                 'zurück zum Hauptmenü
    MfG & THX
    Lordcyber
    Alias Michael

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    24.03.2007
    Ort
    Titisee - Neustadt
    Alter
    46
    Beiträge
    289
    Hier der überarbeitet Code.
    Aber irfgendwo ist immer noch ein fehler drin.
    Nch meiner Logik sollte das doch gehen oder??
    Code:
    '****Pegelregelung / Nachfüllautomatik****
    '* (c) 2007 Michael Lavalle              *
    '*                                       *
    '*****************************************
    
    'Fühler Pegel Filter an pind.2
    
    'Förderpumpe Salzwasser an portd.5
    'FERROR LED an portd.6
    'ERROR Buzzer an portd.8
    
    
    $regfile = "m8def.dat"                                      'definieren des verwendeten Chips
    
    $crystal = 8000000                                          'definieren des verwendeten externen Quarz (8MHz)
    
    Dim T As Word
    
    Ddrd = &B11100000                                           'definieren der verwendeten Ports ( 1 = ausgang; 0= eingang)
    Portd = &B00000000                                          'definieren der einzelnen Pins an einem Port ( 0= low level; 1= high level)
    
    
    Main:                                                       'Hauptprogramm
    Do
                                                                'Anfang des Schwimmerschalter
      If Pind.2 = 1 Then                                        'Wenn an Pin 2 von Port D ein high level anliegt..
    
      Portd.5 = 1                                               '...setze Pin 5 von Port D auf High, Pumpe läuft
      T = T + 1                                                 'Zeit wo die Pumpe an ist
      Else
      Portd.5 = 0                                               '...setze Pin 5 von Port D auf low, Pumpe aus
      T = 0                                                     'Zeit reset
      End If                                                    'Ende der Bedingung
    
       If T > 5 Then
      Gosub Error
    
      End If                                                    'Ende der Bedingung
    
    Loop                                                        'zum Anfang der Schleife
    End                                                         'end program
    
    Error:                                                      'Untermenü "Error"
    Do
      Portd.6 = 1                                               'Error LED leuchtet
      Portd.5 = 0                                               '...setze Pin 5 von Port D auf low, Pumpe aus                                            'setzt den Pin 7 von Port D auf low
    Loop
    MfG & THX
    Lordcyber
    Alias Michael

Berechtigungen

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

Solar Speicher und Akkus Tests