PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bistabiles 12V Relais am ATMega



rt1970
29.01.2011, 14:55
Hallo!
Ich habe mehrere 12V/50mA Bistabile Relais mit 1 Wechsler, die 230V Lampen steuern sollen.
Die Ansteuerung soll vom ATMega 8 erfolgen.
Es gibt ja Schaltungen, bei denen 4 Transistoren eingesetzt werden oder Steuerung mit Elko (undefinierter Zustand und nur jede Sekunde schalten möglich).
Gibt es keine einfachere Möglichkeit wie ICs mit Tri-State Ausgängen?

TheDarkRose
29.01.2011, 16:08
Warum nicht einfach die Spulen per Optokoppler ansteuern?

rt1970
29.01.2011, 16:36
Sehe da keinen Unterschied zu Transistoren...
Wie meinst Du das?

Vergessen zu erwähnen:
Relais sind mit einer(!) Spule (Schaltung durch wechsel der Polarität Vcc)...

TheDarkRose
29.01.2011, 16:39
Galvanische Trennung, Sicherheit für den µC

rt1970
29.01.2011, 16:44
So gesehen hast Du recht, bringt aber nichts beim Aufwand der Schaltung (4 Transistoren etc.)
Sollte det Mega 8 mal "aufgeben" -> kostet nicht die Welt!
Und warum sollte er sterben?

TheDarkRose
29.01.2011, 16:47
Wie ist den die interne SChaltung der Relais?? Datenblatt??
was meinst mit aufgeben??

Hmm, hab schon mal ein paar µC gebraten mit 12V

rt1970
29.01.2011, 16:55
Der Mega läuft mit 5V.
Aufgeben -> kaputt gehen

Relais: vergessen zu erwähnen:
1 Spule, die bei Polaritätswechsel den Zustand ändert...
http://www.reichelt.de/?ACTION=3;GROUP=C33;GROUPID=3293;ARTICLE=62788;SID =29TURGn38AAAIAACEoJIcb2f49bba868c77aa3b370f40b8b2 6fa0

Dachte da an sowas:
ULN2003
http://www.mikrocontroller.net/part/ULN2003
nur mit Tristate...

TobiKa
29.01.2011, 16:59
Da könnte man ja fast überlegen ob man einen L293 benutzt.

rt1970
29.01.2011, 17:04
Hab ich auch schon gesehen/gelesen...
Benötige dann allerdings bei 10 Relais 5 ICs.

TobiKa
29.01.2011, 17:11
Und das Problem ist wo?

rt1970
29.01.2011, 17:21
Und das Problem ist wo?
Eigentlich keins -> hast recht! (1,20€/Stck)

Hab da mal eine Schaltung angehangen.
Also 3A und 3B auf H/L bzw. L/H setzen und danach für 0,5 Sekunden 3,4EN setzen.
Sollte doch funktionieren, oder?
Lt. Datasheet hat der 3-State Ausgänge...

TobiKa
29.01.2011, 17:24
Dein Bild issn bisschen klein, da fehlt scheinbar noch die Masse, aber ja sollte... so kompliziert ist der L293 nicht.
Er ist günstig, hat intern Freilaufdioden und ist einfach anzusteuern. Ich finde es spricht nichts dagegen.

rt1970
29.01.2011, 17:41
Bild ist nun größer. Masse usw. fehlt, klar. Es geht um´s Prinzip.
Was mich (noch) stört, dass mir die I/O des Mega8 ausgehen...
Beispiel 10 Relais = 10 Eingänge für Taster + 3x10 Ausgänge für Relais = 40 I/O Pins...
Gehts nicht einfacher?

TobiKa
29.01.2011, 17:45
Du könntest die Richtungs Pins alle zusammenschliessen, da du ja zusätzlich noch über die Eneble Pins schalten willst. So brauchst du nur noch 12Pins um die Relais zu steuern.

Also alle 1a und 3 A zusammen und alle 2a und 4a zusammen.

TheDarkRose
29.01.2011, 17:45
EN kannste auf 5V legen. D.H du brauchst nur 2 IO's

Dann nimm doch nen ATmega16/32

PICture
29.01.2011, 17:57
Hallo!

Es wäre vielleicht einfacher mit 8-pinnigen TDA2822M sein, der oft als einfache H-Brücke für kleinere DC Motoren verwendet wird (es sind lediglich externe Freilaufdioden notwendig). Als drtter Zustand (tri-state) können beide Ausgänge gleichzeitig High bzw. Low betrachtet werden. Datenblatt: http://www.datasheetcatalog.org/datasheet/stmicroelectronics/1464.pdf .

MfG

rt1970
29.01.2011, 18:07
Du könntest die Richtungs Pins alle zusammenschliessen
Dann werden jedesmal alle Relais angesteuert, auch wenn keine Zustandsänderung = sinnloser Stromverbrauch...


EN kannste auf 5V legen. D.H du brauchst nur 2 IO's
Achja, wie hier:

Als drtter Zustand (tri-state) können beide Ausgänge gleichzeitig High bzw. Low betrachtet werden
Klar, brauch ich nur kurz entsprechend H auf den jeweiligen Pin setzen...
Danke für den Gedankenanstoss! Hatte gerade 2 Dioden von A und B auf EN geschaltet = auch 2 Leitungen.


Es wäre vielleicht einfacher mit 8-pinnigen TDA2822M
Als Bridge und mit C1 kann ich die Dauer zum Relais definieren, richtig?
= Auch nicht schlecht! Allerdings wird das Relais analog angesteuert...

TobiKa
29.01.2011, 18:10
Dann werden jedesmal alle Relais angesteuert, auch wenn keine Zustandsänderung = sinnloser Stromverbrauch...
Falsch! Es werden dann nur die Relais geschaltet die du Enabelst

rt1970
29.01.2011, 18:14
Falsch! Es werden dann nur die Relais geschaltet die du Enabelst
Achso, richtig! gleiches Prinzip wie TheDarkRose nur anderer PIN.

TobiKa
29.01.2011, 18:19
Ja genau, nur das bei meiner Variante weniger Pins benötigt werden.

Denkbar wäre auch noch ein Schieberegister für die Richtungspins, aber ich glaub das wäre unnötig.

rt1970
29.01.2011, 18:26
nur das bei meiner Variante weniger Pins benötigt werden.
VERSTEHE! Über 1A/4A und 2A/3A setze ich H/L bzw. L/H und über EN wähle ich das entsprechende Relais!
DAS GEFÄLLT MIR! 1A und 2A als Datenbus und EN als Adressbus...
Klar -> Brauchst dann Anzahl Relais + 2 Daten I/O-Pins! Cool!

Dann kann ich ja den 74LS42 BCD/DEC Decoder doch noch einsetzen und der Mega8 reicht dann mit seinen I/O's!!!

TobiKa
29.01.2011, 18:35
Muss dazu sagen das ichs noch nie so probiert hab, aber ich wüsste nciht warum es nicht gehen soll.

TheDarkRose
29.01.2011, 18:37
Oder du nimmst ein Schieberegister anstatt dem BCD decoder

rt1970
29.01.2011, 18:47
Muss dazu sagen das ichs noch nie so probiert hab, aber ich wüsste nciht warum es nicht gehen soll.
Klar -> Theorie. Sollte aber funktionieren -> ist irgendwie logisch!


Oder du nimmst ein Schieberegister anstatt dem BCD decoder
Hab ein Problem mit "serieller" Übertragung... So ist es eindeutiger - allerdings mit mehr Pin´s. Das ist ok.
Denke schon, dass ich den ATMEGA 32 nehmen werde. Mega 8 liegen nur hier noch einige rum...

Kurze Frage: gibt es den 74LS42 auch "umgekehrt"? Also DEC->BCD? Dann würde der Mega8 locker reichen! Ich rechne mit 15 Taster und auch 15 Relais.
Hintergrund ist folgender: Mein Haus ist mit 12V Stromstoss-Relais für die Beleuchtung bestückt, die langsam ihren Geist aufgeben. Nun will ich diese mit den Bistabilen Relais ersetzen und irgendwann via Webinterface steuern (Aussenbeleuchtung z.B.)

TheDarkRose
29.01.2011, 18:49
Ja sicher gibt es DEC->BCD, weiß jetzt nur nicht die Nummer.

rt1970
29.01.2011, 19:03
Oder BCD -> 16 und umgekehrt? A0-A3 =4bit sind doch 16, oder!?
Theoretisch könnte man doch 0 bis 15 darstellen, aber hier wird von "Pseudotraden" gesprochen...
http://de.wikipedia.org/wiki/BCD-Code
Ich kann doch am Mega die 4 bit abfragen und in binär umrechnen...
Habs verstanden! Heißt dann nur nicht mehr BCD...

Also brauch ich einen IC mit 15(16) Eingängen und einen mit 15(16) Ausgängen, der mir 4bit erzeugt oder umsetzt...

TheDarkRose
29.01.2011, 19:12
Jo BCD -> 16 gibts auch. Das war der 7414 glaub ich

TobiKa
29.01.2011, 19:19
Du musst noch mit nem Widerstand PC6 nach Vcc ziehen.

rt1970
29.01.2011, 19:20
Jo BCD -> 16 gibts auch. Das war der 7414 glaub ich
Leider nicht.
7414 - HEX SCHMITT-TRIGGER INVERTERS


Du musst noch mit nem Widerstand PC6 nach Vcc ziehen.
Kann ich doch im Mega8 setzen!? Oder war's nur beim Ausgang?

TheDarkRose
29.01.2011, 19:23
jo sorry
7445 z.b. MM74HC4514

rt1970
29.01.2011, 19:32
7445 ist identisch mit 74LS42 aus meinem Plan.
74HC4514 sieht sehr gut aus! 4bit -> 0 bis 16 !!!
Und nun noch umgekehrt 0 bis 16 -> 4bit...

Oder 2 MM74HC148 kaskadieren? Mal sehen, wie man die Dinger kaskadiert...

Ich denke, einen AT90USB646 wäre der richtige...
Hoffe nur, dass ich die Platine im Eigenbau (bügeln) für TQFP64 hinbekomme...
Kann man den auch über seinen USB flashen?
Wenn nicht fällt der aus und der Mega32 kommt rein.

rt1970
29.01.2011, 23:34
So sollte es werden und funktionieren - denke ich.

Bernhard667
31.01.2011, 19:25
Hallo,

was ich immer gerne mache in so einem Fall.
Beide Seiten der Spule mit Pullup Widerstand auf 12V.
Beide Seiten der Spule mit je einem Transistor auf Masse schaltbar (2 Portpins).
Wenn man nun einen Transistor kurz aktiviert, fliest der Strom des direkten Pullpus natürlich sinnlos nach GND. Aber gleichzeitig fliest auch Strom durch die Spule und den anderen Pullup ->Relais schaltet.
Kostet 2 Portpins und 4 Widerstände (2 Pullups, 2 Basiswiderstände). Kein Ruhestromverbrauch, aber im Moment des Schaltens selbst etwas verschwenderisch

Bernhard

rt1970
31.01.2011, 20:09
Schon klar was Du meinst.
ABER:
Versorgungsspannung ist 12V und die Relais auch.
Sicheres schalten ist mit höchstens 20Ohm möglich -> 600mA -> 7,2W (!)
Solche Widerstände und somit Ströme wollte ich meiden...
Kann man machen, wenn es 5V Relais wären...
Trotzdem Danke für den Hinweis!

rt1970
25.02.2011, 20:30
Soooo...
Wollte mal Feedback geben!
Funzt (fast) soweit!
Danke TobiKa!!! DAS war die IDEE!!!

Der Teufel sitzt ja im Detail -> warum auch nicht hier :-(

Also: die Bistabilen Relais haben einen "Haken"!
Zum "entregen" brauchen die einen Widerstand von 200 Ohm!!!
Hab ich gelöst, indem ich eine Diode in Reihe und parallel zur Diode den 200 Ohm gelötet habe!
Nun funktioniert das Teil so wie es soll!
Nebenbei habe ich noch eine Version 2 entworfen, bei der der S202S02 (Triac) zum Einsatz kommt! WESENTLICH komfortabler!!!

Allerdings habe ich nun ein Problem mit Bascom - vielleicht hat einer einen Tip!?
Problem: Relais 16 soll als Treppenlichtautomat fungieren und 5min an bleiben. Nur funzt die Routine nicht so, wie sie soll.
Der Timer wird nur bei jeder 2. Betätigung aktiviert :( Sonst bleibt das Relais dauerhaft an!
In einer Subroutine setze ich:
Enable Timer1
Timer1 = Timervorgabe
Enable Interrupts
Der Timer wird aber nur "aktiviert, wenn ich die sub ein 2.Mal aufrufe!?
Jemand eine Idee?

rt1970
25.02.2011, 21:35
Hat sich auch erledigt. Habe nun den Timer vor Return gesetzt.
Nun funktionierts!
Timer1 = Timervorgabe
Tl = 0
Gosub Setzen
Enable Timer1
Enable Interrupts

Anstatt
Timer1 = Timervorgabe
Enable Timer1
Enable Interrupts
Tl = 0
Gosub Setzen

Habe allerdings keine Erklärung dafür...