Forum: Mikrocontroller und Digitale Elektronik Atmel 8 eingangssignal Länger gedrückt Relay nur kurzen Impuls


von Christian R. (rchrisi)


Lesenswert?

Hallo

Bin nun auf den Geschmack mit den Atmel´s gekommen.Meine Frage: Ich bin 
zu dumm oder unwissend, den es ist mir nicht möglich unter Bascom einen 
Taster so zu Programmieren das wenn er länger gedrückt wird (so zwischen 
1 - 5 sek.) das das Relay nur ganz kurz ca 50-100ms anzieht. Wenn ich 
den Taster drücke zieht das Relay an und wenn ich loslasse fällt es 
wieder ab (oder bleibt mit dem Befehl wait noch angezogen.Ach ja das 
Relay soll die Ganze zeit solange der Taster gedrückt wird nur die 
50-100ms geschaltet werden und wenn man loslässt dann wieder von anfang 
an beginnen.Möchte ein Telefon mit einem Relay verbinden.



  $regfile = "m8def.dat"                                    'Die 
Anweisung bestimmt Controllertyp, hier AVR Mega 32

 $crystal = 4000000

 Config Portb.0 = Output                                    'Ein Pin 
wird aus Ausgang konfiguriert PC0 (also Pin0 von Port C)
  Relay Alias Portb.0
  Config Pinb.1 = Input
  Telefon Alias Pinb.1






  Do
     If Telefon = 1 Then

     Relay = 1

     Waitms 50
     Relay = 0
     End If




  Loop

Danke erstmal

von Gast 57 (Gast)


Lesenswert?

Auch wenn ich nichts mit Bascom am Hut habe, versuche ich mal zu helfen:

Dein Programm schaltet solange die Taste betätigt ist das Relais
immer wieder für 50ms ein. Suboptimal

Mach es doch so:
Taste erkannt, Relais 50ms ein.

Anschließend Warten bis Taste wieder losgelassen,
dann von vorne beginnen


Eine andere Lösung wäre:
Taste erkannt, 50-ms Stopp-Uhr, die im Interrupt läuft,
Starten. Uhr zählt runter.
Sobald die Uhr 0 erreicht hat ein Flag setzen. (Passiert im Interrupt)
Flag in der Main-Loop abfragen und Relais aus.

Anders gesagt: Reagiere nicht auf den Pegel am Schalter sondern auf die
Flanke/Pegelwechsel.

Schönen Abend!

von Christian R. (rchrisi)


Lesenswert?

Hallo

Danke erstmal für die flotte Antwort.
Das könnte die Lösung sein muss mir nur ansehen wie ich das unter Bascom 
Lösen kann.

mfG
Christian

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.