bascom zeitunabhängig ausgang setzen.

Gast #2341259
Lesenswert?

servus,
ch arbeite gerade an einem futterautomat und hänge gerade ein bischen.

folgendes problem hab ich. ich hab die uhr und die zeiteinstellung 
bereits komplett fertig. nun geht es darum wenn die zeit und die 
eingestellte weckzeit gleich sind dass halt was passieren soll.

nun will ich wenn halt beide zeiten gleich sind einen motor starten der 
sich dreht. an der welle ist ne scheibe mit ner narbe drann welche bei 
jeder umdrehung einen taster betätigt.

der motor soll stoppen sobald der taster zweimal betätigt wurde.

so hab ich hier mal so angefangen:


Debounce Pinb.6 , 0 , Anzahl_umdrehung , Sub

If Stellenstunde = _hour And Stellenminute = _min And Anaus = 1 Then
      Umdrehungen = 1
      Portc.2 = 1


Anzahl_umdrehung: 
'Unterfunktion zum Aufzählen der Umdrehungen.
Incr Umdrehungen
   If Umdrehungen = 3 Then Umdrehungen = 0
Return



nicht meckern kann nicht alles posten da der code zu riesig ist. sind 
jetzt nur die zwei ausschnitte um die es geht is auch nicht komplett da 
mir gerade die schnittstelle irgendwie fehlt.

unten zähle ich die umdrehungen. oben will ich dass der motor dann halt 
auch eingeschaltet bleibt auch wenn die uhr und die weckzeit nicht mehr 
gleich sind sondern bis er halt die zwei umdrehungen hat.

hardwäretechnisch hätte ich es mit ner selbsthaltung gelöst. da würde 
ich dann aber einen weiteren ausgang verbraten. geht dass auch irgendwie 
softwaretechnisch?
Gast #2341298
Lesenswert?

arbeite mit Merkern. Z.B. Motor_On.
Wenn Merker gesetzt, soll Motor laufen etc.
Setzen und rücksetzen je nach Bedingung.

Heißt, programmiere ähnlich wie bei einer SPS. (Speicherprogramierbaren 
Steuerung)
Gast #2341309
Lesenswert?

falls es jemandem hilft habs nun so gemacht und hoffe dass es 
funktioniert. denke aber dass es wegen der 2 abfrage nicht klappen wird.

Debounce Pinb.6 , 0 , Anzahl_umdrehung , Sub

   If Stellenstunde = _hour And Stellenminute = _min And Anaus = 1 Then
      Set Portc.2
      If Umdrehungen = 2 Then Reset Portc.2
   End If



Anzahl_umdrehung: 
'Unterfunktion zum Aufzählen der Umdrehungen.
Incr Umdrehungen
   If Umdrehungen = 2 Then Umdrehungen = 0
Return



ich hab noch einen ausgang frei der rest ist belegt. sollten wirklich 
alle stricke reisen werd ich wohl eine hardwaremäßige selbsthaltung 
realisieren.
Gast #2341328
Lesenswert?

SPS war nur Hinweis auf Vorgehensweise.

Definiere vorher mal Motor_on alias Portc.2

Deine Abfrage sieht dann so aus:

If Stellenstunde = _hour And Stellenminute = _min And Anaus = 1 Then
      Set Motor_On
  rauswerfen ----> If Umdrehungen = 2 Then Reset Portc.2
---hat hier nix zu suchen, macht hier keinen Sinn ---
   End If

If Umdrehungen => 3 then
   reset Motor_On
End if
Gast #2341400
Lesenswert?

klingt eigentlich logisch. nur wenn ich es so mache wie du schreibst hab 
ich doch keinen überlauf mehr. der zählt doch dann bei drei einfach 
weiter. und die der reset kommt nur einmal nämlich wenn er 3 umdrehungen 
gemacht hat. dann zählt er bei 4 weiter und resetet nie mehr.
Gast #2341409
Lesenswert?

so dann warscheinlich oder?

Anzahl_umdrehung: 
'Unterfunktion zum Aufzählen der Umdrehungen und Rücksetzen des Motors.
Incr Umdrehungen
   If Umdrehungen = 2 Then Umdrehungen = 0
      If Umdrehungen = 2 Then
      Reset Portc.2
   End If
Return


sorry umgeschrieben hab ich dass alles noch nicht setzt ich mich jetzt 
drann.
Gast #2341565
Lesenswert?

Du bist schon nahe dran, aber warum zwei If Abfragen ineinander bei der 
die Grundbedingung die gleiche ist?

Zitat: If Umdrehungen = 2 Then Umdrehungen = 0
      If Umdrehungen = 2 Then
      Reset Portc.2
   End If

Warum nicht so:

If Umdrehungen =2 then
Umdrehungen = 0
reset portc.2
end if
Gast #2341610
Lesenswert?

ja ich weiß. ich habs auch schon mit "and" probiert kam dann aber immer 
ein fehler. und so hats dann geklappt. sind halt feinheiten.

mal so nebenbei. kennt jemand ne möglichkeit wie man ne überwachung 
zwecks stromausfall in den code einbauen könnte? sobald stromausfall ist 
wird die uhr ja auf 00:00:00 zurückgesetzt und von da an läuft sie dann 
wieder los.


da kann ich ja nicht einfach ne abfrage einbauen sonst würde ich immer 
um mitternacht ne fehlermeldung bekommen.

einziges was mir da einfallen würde wäre ne art pufferbatterie die dann 
übernimmt wenn mal keine spannung mehr anliegt.

was meint ihr?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren