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
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
Lesezeichen