mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR Ausgang -> Relais


Autor: Dasti (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Andreas Franke (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: thkaiser (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Andreas Franke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
allerdings

Autor: Dasti (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Andreas Franke (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Andreas Franke (Gast)
Datum:

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

Autor: thomas b (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Dasti: wo ist das Problem wenn der Ausgang dauerhaft high ist?

Autor: Dasti (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Dasti (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ralf Kummetat (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: thkaiser (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: ThomasB (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Mark Supper (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Andreas Franke (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Mark Supper (Gast)
Datum:

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

Autor: Andreas Franke (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Jürgen Berger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Mark Supper (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vielen, vielen dank!

Autor: Andreas Franke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
anstatt 19 K Ohm wollte ich natürlich 10 k Ohm schreiben, sorry.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.