PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Relais mit Taster schalten



hoppi1978
21.03.2007, 18:41
Hallo Leute !
habe ein Problem...
ich möchte wenn ich einen Taster drücke ein Relais einschalten und wenn ich den Taster noch einmal drücke das Relais wieder ausschalten.

Mein Beispielprogramm schaltet das Relais wenn ich den Taster drücke und wenn ich den Taster wieder loslasse fällt das Relais wieder ab...



Config Portc.0 = Output
Relaisvor Alias Portc.0

Config Pind.1 = Input
Tasterd1 Alias Pind.1
Portd.1 = 1

Do
If Tasterd1 = 0 Then
Relaisvor = 1

Else
Relaisvor = 0

End If
Waitms 100

Loop


Bitte helft mir Dennis

CR-Racing
21.03.2007, 19:08
Such mal nach Toggle in der Hilfe

Ratber
21.03.2007, 19:16
Ja,verbinde es mit Debounce und nach möglichkeit mit nem Interrupt dann geht es supereinfach.

Orko
21.03.2007, 19:48
Das ist vieleicht nicht die eleganteste Lösung aber sie sollte funktionieren.

Config Portc.0 = Output
Config Int0 = Rising

Dim A As Bit

On Int0 Irq0
Enable Int0

Enable Interrupts

Do

If A = 1 And Portc.0 = 0 Then
Portc.0 = 1
A = 0
End If


If A = 1 And Portc.0 = 1 Then
Portc.0 = 0
A = 0
End If

Loop


Irq0:

A = 1

Return


MFg Orko

Ratber
21.03.2007, 21:10
Du mußt noch entprellen (Manuel oder per Debounce) sonst hast du "Lotto"

hellraider
21.03.2007, 22:18
Config Portc.0 = Output
Relaisvor Alias Portc.0

Config Pind.1 = Input
Tasterd1 Alias Pind.1
Portd.1 = 1

Do
If Tasterd1 = 0 Then
Relaisvor = 1

Else
Relaisvor = 0

End If
Waitms 100

Loop


Bitte helft mir Dennis

Wow,
das sind ja gigantische Vorschläge.

Also ich würde vorschlagen :

Config Portc.0=Output
Config portd.1=Input

main:
do
if pind.1=1 then
goto schalten
waitms 100 "Tastenentprellung auf einfache Art"
end if
loop

schalten:
toogle Portc.0
goto main

Gruß

hoppi1978
22.03.2007, 06:04
Das ist ja echt super hier :=)
besten Dank euch allen !