Forum: Mikrocontroller und Digitale Elektronik AVR Ausgang -> Relais


von Dasti (Gast)


Lesenswert?

Hallo zusammen!

Wie steuer ich ein Relais am Ausgang von AVR und zwar so das es bei der 
ersten 1 ein und bei der zweiten ausschaltet!

von Andreas Franke (Gast)


Lesenswert?

Sinnvollerweise mittels eines FlipFlops. Entweder Aus NOR oder NAND 
Gattern, oder als fertiger Baustein z.B aus der 74er Serie. Falls es 
sich dabei um ein Reed Relais o.ä. mit einem Stromverbrauch von <10-20mA 
handelt, kannst du es direkt anschließen, andernfalls mit einem 
Treibertransistor (BC547 z.B) oder Kleinsignal FET (BS170 z.B.).
Das wäre was mit jetzt zu dem Thema einfällt.

von thkaiser (Gast)


Lesenswert?

Wenn ich mich recht entsinne, ist der 74(LS/HC)112 das, was Du suchst.
Allerdings verstehe ich den Sinn nicht - wenn man schon einen AVR nutzt, 
könnte man diese Funktion doch auch per Software realisieren und sich 
einen zusätzlichen Baustein sparen.

von Andreas Franke (Gast)


Lesenswert?

allerdings

von Dasti (Gast)


Lesenswert?

Ja das ist schon möglich das ich das Softwaregesteuert mache aber dann 
muß ja die ganze Zeit am Ausgang ein HI-Level anstehen und das möchte 
ich vermeiden!

Die Lösung mit dem 74L(LS/HC)112 muß ich mir anschauen! Brauche ich dazu 
noch Optokoppler? Wenn ja welche? Gibt es mehr Infos im Netz darüber? 
Ich finde bei goole nichts!

Bye
Dasti

von Andreas Franke (Gast)


Lesenswert?

Du brauchst keinen Optokoppler. Das Relais trennt ja an sich schon 
galvanisch den Ausgangs- vom Eingangskreis.
Du könntest auch z.B. mit einem D-FlipFlop (74xx74) einen :2 Teiler 
aufbauen. Der Takteingang wäre dann in dem Fall der Portpin deines uC.
    -----
  D-|   |-Q
  T->   |-/Q
    -----
/Q mit D verbinden. An Q ist dann dein :2 geteiltes Eingangssignal des 
Taktes T.

von Andreas Franke (Gast)


Lesenswert?

gut das die zeichnung jetzt nicht mehr erkennbar ist. war eigentlich 
nicht meine absicht.

von thomas b (Gast)


Lesenswert?

Hi Dasti,

nimm doch ein STROMSTOSSRELAISE.
Das ist so was, was bei Lichttastern verbaut wird.
Jeder Impuls schaltet den aktiven Zustand um.
Kaufen kann man so etwas z.B. bei www.CONRAD.de.
Ansteuern würde ich das Relaise über einen Transistor (bc107)
einen Basisvorwiderstand (1kOhm) und einer Freilaufdiode.
(so mache ich das immer, man könnte auch einen Optokoppler nehmen oder 
zig andere Varianten, optimal war der A302 aber den gibt es nicht 
mehr:-()

cu tb

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

@Dasti: wo ist das Problem wenn der Ausgang dauerhaft high ist?

von Dasti (Gast)


Lesenswert?

Ok,... verständnissproblem! Ich setze den Ausgang auf HI, bleibt er dann 
Hi solange bis ich ihn LOW schalte? Kann man dann abfragen welchen 
Zustand er hat?

Ich stelle mir das so vor:

EREIGNISS 1 -> AUSGANG HI -> RELAIS EIN
EREIGNISS 2 -> AUSGANG LOW -> RELAIS AUS

Wie mir BASCOM realisieren?

Sorry bin voll der blutige Anfänger!

danke euch allen
Dasti

von Dasti (Gast)


Lesenswert?

Plan umgeworfen!!!!

Also ich mache es so das ich immer einen HI-Ausgang habe! Aber wie mache 
ich das er den Ausgang so lange auf HI hält bis ein zweites Ereigniss 
kommt und ihn auf LOW setzt! Denn ich möchte folgendes machen:
Wenn ich an einer Fernbedienung schalte dann soll er das entsprechende 
Relais schalten, gleichzeitig soll er über die RS232 an den Computer ein 
Telegram schicken das ihm sagt das das Relais geschalten hat. Der 
Computer soll aber auch die zustände abfragen können! Wie ist das zu 
realisieren?
Ich weiß ich frage ständig doofe Sachen,...

Dasti

von Ralf Kummetat (Gast)


Lesenswert?

Hi,
wie wäre es mit einer Rückmeldung (Relaiskontakt)fürs Abfragen, dann 
wüsstest du auch, ob es wirklich geschaltet hat. Weiterhin wäre es mit 
einem Stromstossrelais nach dem Schalten stromfrei.
Ralf

von thkaiser (Gast)


Lesenswert?

Du kannst den Port des AVR nicht nur beschreiben, sondern auch auslesen.
Wie das in Bascom funktioniert, muß Dir leider jemand anders erklären - 
ich programmiere Assembler pur.

von ThomasB (Gast)


Lesenswert?

Hallo Dasti:
in bascom gibt es den befehl "TOGGLE".
zB.ein kleines Prog.

DDRB=255:Portb=255
config timer0=timer,prescale=1024
on timer0 timer_isr
enable timer0
enable interrupts
do
rem endloooooosschleife
loop
timer_isr:
toggle portb.1
return

Bei jedem timerübelauf wird die LED am portb.1
ein und ausgeschaltet.
Statt timer0 kann man auch den RS232 interrupts verwenden,oder andere 
Interruptquellen.

MfG ThomasB

von Wolfgang (Gast)


Lesenswert?

Was mir dazu einfällt is das ich ein Relai nicht direkt an meinen 
Controller anschließen würde denn wenn der das angezogene Relai 
zurückgeht gibs ne Induktionsspitze di hats in sich. Hat mir mein 
Praktikumslehrer deutlich gemacht, am Oszi und an mir selbst. Die spürt 
man!
Außer man nimmt ne Diode parallel

von Mark Supper (Gast)


Lesenswert?

ich möchte auch sowas machen aber welche freilaufdiode brauche ich da? 
wie ermittel is sowas, wie stelle ich fest welche ich nehmen muß! und 
welchen optocoppler muß ich nehmen:

AVR PIN -> OPTOKOPPLER ->RELAIS 12V= / 230V~

thx

von Andreas Franke (Gast)


Lesenswert?

Den Optokoppler könnt ihr euch sparen, denn ein Relais trennt schon 
galvanisch. Ausserdem sind 6V Relais meist mit max 100 Ohm 
Spulenwiderstand (ausser Reed-Relais) zu haben, Was den ControllerPort 
Treiber eindeutig überlasten würde. Deshalb würde ich einen 
Treibertransistor (BC547) vorschlagen mit Basiswiderstand (5,6K..10K). 
Als Freilaufdiode beispielsweise eine 1N4001..4004. Das nur als 
Beispiel. Die Sache ist nicht so kritisch. Wichtig ist nur, den Ausgangs 
Port Treiber nicht zu überlasten. Dann wäre nämlich der AVR hinüber.

von Mark Supper (Gast)


Lesenswert?

hat keiner ein fertige lösung wie ich 12v/230v reials an einem avr 
betreibe?

von Andreas Franke (Gast)


Lesenswert?

das ist doch nicht so schwierig!
Angenommen dein Relais hat einen Spulenwiderstand von 1k. dann Wäre der 
Stom bei 12V 12 mA. Macht bei einer Vorwärtsstromvertärkung von 
meinetwegen 100 einen Basisstrom von mindestens 120 uA. Gehen wir mal 
davon aus, dass du deinen AVR mit 5 V betreibst, wären das  rund 40 kOhm 
Basiswiderstand. Da wir den Transistor als "Schalter" einsetzen wollen 
kann man noch ums nicht so schwer zu mschen nach Gefühl etwas 
Übersteuerungsbonus dazugeben, dann wärst du mit einem Basiswiderstand 
von ca. 19 kOhm auf der sicheren Seite.
Die Schaltung sieht so aus: AVR Portpin über Basiswiderstand nach 
Transistor BASIS. EMITTER nach GND. KOLLEKTOR über Kollektorwiderstand 
(das ist deine Relaisspule) nach 12V. Nun MUSS noch parallel zur 
Relaisspule eine Freilaufdieode, da dir sonst die durch Selbstinduktion 
beim Ausschalten hervorgerufene Spannung den Transistor zerstören 
könnte(kann, wird). Welche du da nimmst ist relativ unkritisch. Zu 
bedenken ist nur, dass die Induktionsspannung mehrere hundert Volt 
betragen kann. Deshalb sollte natürlich die Durchbruchspannung der Diode 
entsprechend sein. Eine 1N400x ist hierzu gut geeignet. Eine 1N4148 
kannst du zur not auch verwenden. Da wirds allerdings schon kritisch 
wegen der Durchbruchsspannung. Viel Erfolg.

von Jürgen Berger (Gast)


Lesenswert?

Der Vollständigkeit halber:
Die Freilaufdiode natürlich in Sperrichtung parallel zum Relais:
also Kathode an +12V und Anode an den Collector.

Jürgen

von Mark Supper (Gast)


Lesenswert?

vielen, vielen dank!

von Andreas Franke (Gast)


Lesenswert?

anstatt 19 K Ohm wollte ich natürlich 10 k Ohm schreiben, sorry.

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.