Forum: Mikrocontroller und Digitale Elektronik [F] ATMega: 2 Relais - 1 Pin


von Bernd (Gast)


Lesenswert?

An einem Pin eines ATMega habe ich einen NPN-Transistor der ein Relais 
schaltet.

Nun möchte ich 2 Relais mit einem Pin schalten und suche eine (einfache) 
Schaltung. Der Portpin hat 4 Zustände, die für diesen Zweck in Frage 
kommen:

Output 5 Volt, Relais 1 ein, Relais 2 aus
Output 0 Volt, Relais 2 ein, Relais 1 aus
Imput float,   Relais 1 & 2 aus
Input PullUp,  NV

Für das 2. Relais einen PNP zu nehmen funktioniert nicht, da dies der 
Querstrom über die BE-Strecken zu nichte macht.

Wer hat eine Lösung?

von Conny G. (conny_g)


Lesenswert?

M.E. Kannst Du float nicht auswerten, da Du den Zustand der T mit Pullup 
oder Pulldown initialisieren musst damit sie ein definiertes verhalten 
haben.
Damit fällst Du hier in Fall 1 oder 2 zurück.

von Oliver S. (oliverso)


Lesenswert?

Gerüchteweise hat jeder AtMega mehr als nur einen Portpin.

Oliver

von geht doch (Gast)


Lesenswert?

Ganz einfach: Du nimmt einen zweiten uC und misst die Impedanz vom Pin 
des ersten. :-P

von Bernd (Gast)


Lesenswert?

> Gerüchteweise hat jeder AtMega mehr als nur einen Portpin.

> Oliver

*1 Gibst du dich nur blöd oder bist du es wirklich?

> Ganz einfach: Du nimmt einen zweiten uC und misst die Impedanz vom Pin
> des ersten. :-P

siehe *1

von H.Joachim S. (crazyhorse)


Lesenswert?

Uiui Bernd - du bist ja gut drauf.

Dann schmeiss ich mal den 4aus1-Dekoder in den Diskussionsraum :-)

von Teo D. (teoderix)


Lesenswert?

Mir fällt grad nicht ein wie dieses Takt lose Schieberegister in den 
W2812 heißt aber sowas für 2Bit!?

von Felix Adam (Gast)


Angehängte Dateien:

Lesenswert?

Das könnte wie im Anhang gezeichnet gehen.

Ist der Pin floating, fließt kein Basisstrom (dazu ggfs. Zenerspannung 
anpassen und Vorwiderstände für Transistoren nicht vergessen).

Ist der Pin low, kann der PNP-Basisstrom ungleich 0 werden.

Ist der Pin High, kann der NPN-Basisstrom ungleich 0 werden.

von Falk B. (falk)


Lesenswert?

@Bernd (Gast)

>Nun möchte ich 2 Relais mit einem Pin schalten und suche eine (einfache)
>Schaltung.

Sooo einfach ist es nicht wie einen 2. Portpin zu nehmen.

>Output 5 Volt, Relais 1 ein, Relais 2 aus
>Output 0 Volt, Relais 2 ein, Relais 1 aus
>Imput float,   Relais 1 & 2 aus

Kriegt man hin, wenn man 2 Komparatoren nimmt und bei >3V bzw. <2V das 
jeweilige Relais schaltet. Wenn dann das Pin per hochohmigem 
Spannungsteiler auf VCC/2 legt, sind im Falle von Tristate beide Relais 
aus.

von Falk B. (falk)


Lesenswert?

@ Felix Adam (Gast)

>    PNP_NPN.png

>Das könnte wie im Anhang gezeichnet gehen.

Ja, aber es fehlt noch ein Basiswiderstand.

von Felix Adam (Gast)


Lesenswert?

Steht im Absatz mit "floating..."

von Alex B. (Firma: Ucore Fotografie www.ucore.de) (alex22) Benutzerseite


Lesenswert?

Hallo Bernd,
es fällt schwer vernünftige Antworten zu geben, basierend auf den 
wenigen Informationen, die du zur Verfügung stellst. Es liest sich, als 
sei die Hardware schon "fixiert" und nun soll die Funktion erweitert 
werden.
Die einfachste (beste?) Lösung wäre es sicherlich einen anderen MCU zu 
verwenden bzw. an einer anderen Stelle der Schaltung einen Pin zu sparen 
(z.B. Verzicht auf einen Quarz, falls möglich, und stattdessen die 
interne Clock zu verwendne, oder anstelle eines Quarzes einen externen 
Oszillator verwenden, der nur einen Pin braucht, falls das bei deinem 
MCU geht).

Ansonsten, was man sich vorstellen könnte, wovon ich aber nur begrenzt 
etwas halte: Mit dem Pin ein RC-Glied (als tiefpass) via PWM speisen und 
hinter dem RC-Glied dann eine Komparatorschaltung mit mehreren 
Schaltschwellen. Eines der Probleme dabei wird sein, dass die Zustände 
nicht völlig beliebig angewählt werden können, sondern nur in einer 
gewissen Sequenz. Ausser natürlich, du würdest (wiederum "analog") eine 
Anzugsverzögerung implementieren.
Eine andere Möglichkeit wäre es sicherlich auch hinter den Pin des MCU 
eine Schaltung aufzusetzen, die die Frequenz auswertet und dann eine 
Fallunterscheidung über Frequenz zu realisieren. Das kann z.B. ein 
Bandpass-Filter sein, kann auch ein zweiter (sehr kleiner) MCU sein, das 
kannst du mit den "TimerBlox" von Linear Technology machen etc..

Hoffe dir damit ein bisschen geholfen zu haben...
Eine "schöne" Lösung fällt mir so spontan leider nicht ein.

Grüße,
Alex

von Falk B. (falk)


Lesenswert?

@ Felix Adam (Gast)

>Steht im Absatz mit "floating..."

Nö. Es fehlt immer noch der Basiswiderstand. Schau dir mal die Ströme 
an, wenn der Ausgang aktiv 0/5V treibt.

von geht doch (Gast)


Lesenswert?

Na ja, die ganze Fummelei mit Komparator & Co dürfte aufwendiger werden, 
als einen größeren oder zweiten uC zu nehmen. Oder ist hier der Weg das 
Ziel?

von Felix Adam (Gast)


Lesenswert?

Lest ihr eigentlich auch mal oder wollt ihr alle nur rumtrollen?

Das Bild entstand auf die Schnelle. Als es ein PNG geworden ist, habe 
ich das .asc geschlossen und nicht gespeichert. Und nochmal zeichnen, um 
die Basiswiderstände extra einzufügen, was über den Text auch notfalls 
geht, wollte ich nicht. Ist das sooo schwer zu verstehen?

von Falk B. (falk)


Lesenswert?

@ Felix Adam (Gast)

>Lest ihr eigentlich auch mal oder wollt ihr alle nur rumtrollen?

OK, jetzt hab ich es kapiert.

>Das Bild entstand auf die Schnelle. Als es ein PNG geworden ist, habe
>ich das .asc geschlossen und nicht gespeichert. Und nochmal zeichnen, um
>die Basiswiderstände extra einzufügen, was über den Text auch notfalls
>geht, wollte ich nicht. Ist das sooo schwer zu verstehen?

Ja, ist es! So einen Mist macht man nicht! Das irritiert maximal. Oder 
man muss EXPLIZIT hinschreiben.

ACHTUNG, da fehlt der Vorwiderstand im Bild!

von Felix Adam (Gast)


Lesenswert?

Im Bild fehlen die nicht. Genaugenommen sind die Transistoren nur an der 
Basis angeschlossen, daher ist der Basiswiderstand nicht nötig.

Ich las zu sowas mal einen guten Spruch:

"Wenn du dich auf die Fehler anderer konzentrierst und dauernd an ihnen 
herumnörgelst, gedeiht deine Gier mehr und mehr, ohne Chance, sie zu 
beenden."

von Michael U. (amiga)


Lesenswert?

Hallo,

ich würde die beiden Z-Dioden eher je 3,3V machen, um sicher mit der 
Summe 2*Z-Diode + 2xUbe über den 5V Betriebsspannung zu sein. Die 
Z-Dioden mit kleinen Spannungen haben keinen sonderlich ausgeprägten 
Knick in der Kennlinie. Den Spannungsteiler ganz weg, dafür jeweils ein 
Widerstand 4,7k zwischen E und B des jeweiligen Transistors und in den 
Pfad zum µC dann eben noch ein paar hundert Ohm. Bei 3,3V Z-Diode wäre 
knapp 1 Volt, also 100 Ohm vielleicht.
Der Basisstrom muß natürlich für den Relaiskram reichen.

Gruß aus Berlin
Michael

von Max M. (jens2001)


Lesenswert?

Bernd schrieb:
> Nun möchte ich 2 Relais mit einem Pin schalten und suche eine (einfache)
> Schaltung

Es gibt dafür keine EINFACHE Schaltung!
Wenn es sie gäbe müsstes du nicht suchen!

von Bernd (Gast)


Lesenswert?

Max M. schrieb:
> Bernd schrieb:
>> Nun möchte ich 2 Relais mit einem Pin schalten und suche eine (einfache)
>> Schaltung
>
> Es gibt dafür keine EINFACHE Schaltung!
> Wenn es sie gäbe müsstes du nicht suchen!

Du hast vermutlich recht, Max.

Den Vorschlag mit den Zenerdioden (siehe oben) habe ich versucht 
umzusetzen. Das ist aber eine ziemliche Bastelei.

Als Lösung werde ich einen ATTiny10 o. ä. an den Pin des Megas (plus 2 
Transistoren) zu hängen.

Vielen Dank an alle, die konstruktive Vorschläge gepostet haben.

von Falk B. (falk)


Lesenswert?

@ Felix Adam (Gast)

>Im Bild fehlen die nicht. Genaugenommen sind die Transistoren nur an der
>Basis angeschlossen, daher ist der Basiswiderstand nicht nötig.

Selten so eine dumme Ausrede gehört . . .

von geht doch (Gast)


Lesenswert?

Bernd schrieb:
> *1 Gibst du dich nur blöd oder bist du es wirklich?
>
>> Ganz einfach: Du nimmt einen zweiten uC und misst die Impedanz vom Pin
>> des ersten. :-P
>
> siehe *1

Bernd schrieb:
> Als Lösung werde ich einen ATTiny10 o. ä. an den Pin des Megas (plus 2
> Transistoren) zu hängen.

Aha, gerade noch blöd und jetzt die Lösung. ;-)

von Bernd (Gast)


Lesenswert?

geht doch schrieb:
> Bernd schrieb:
>> *1 Gibst du dich nur blöd oder bist du es wirklich?
>>
>>> Ganz einfach: Du nimmt einen zweiten uC und misst die Impedanz vom Pin
>>> des ersten. :-P
>>
>> siehe *1
>
> Bernd schrieb:
>> Als Lösung werde ich einen ATTiny10 o. ä. an den Pin des Megas (plus 2
>> Transistoren) zu hängen.
>
> Aha, gerade noch blöd und jetzt die Lösung. ;-)

Nein. Die Impedanz werde ich garantiert nicht messen: Bin doch nicht 
blöd :)

von Michael U. (amiga)


Lesenswert?

Hallo,

irgendjemand soll mal gesagt haben: würde man heute die Sicherheitsnadel 
erfinden, hätte sie 7 Transistoren und 12 bewegliche Teile...

mindestens 4 (eher 6) statt 7 Bauteilen zusammenzulöten und sich eine 
Software dafür auszudenken ist wirklich ein merklicher Vorteil.

Gruß aus Berlin
Michael

: Bearbeitet durch User
von Earl S. (Gast)


Angehängte Dateien:

Lesenswert?

oder du nimmst Relais mit Ruhekontakten, dann kannst du die beiden 
rechten Transistoren und den Widerstand weglassen.

von Bernd (Gast)


Lesenswert?

Earl S. schrieb:
> oder du nimmst Relais mit Ruhekontakten, dann kannst du die beiden
> rechten Transistoren und den Widerstand weglassen.

Die Schaltung funktioniert nur mit vier Transistoren.

Pin   Transistoren
---   ------------
5 V   unten links & oben rechts leiten  -> Relais 1 ein, Relais 2 aus
0 V   oben links & unten rechts leiten  -> Relais 1 aus, Relais 2 ein
float oben links & unten links leiten   -> beide Relais aus

Danke. :)

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Bernd schrieb:
> Den Vorschlag mit den Zenerdioden (siehe oben) habe ich versucht
> umzusetzen. Das ist aber eine ziemliche Bastelei.
>
> Als Lösung werde ich einen ATTiny10 o. ä. an den Pin des Megas (plus 2
> Transistoren) zu hängen.

 Gibst du dich nur blöd oder bist du es wirklich?

 Von aussen sieht auch der ATTINY nur 1 oder 0. HiZ kann der nicht
 erkennen.
 Anstatt von Anfang an einen ATTINY vorzuschalten und dann mit einem
 Impuls von 100us fur Relais1 ein, 200us fur Relais1 aus, 300us fur
 Relais2 ein, 400us fur Relais2 aus oder so ahnlich zu versuchen, du
 versuchst verzweifelt eine einfache Losung fur etwas, was gar nicht
 so einfach ist, zu finden.
 Wieso kommst du nicht selber drauf, wenn es so einfach ist ?
 Weil du blod bist ?
 Aber nein, du spuckst hier die Leute an, ohne selbst ein bisschen
 Ahnung bzw. Gehirn zu haben.

 Leute mit IQ > 70 hatten so etwas schon lange gemacht und da ein TINY85
 auch nur etwas mehr als 1E kostet, hatten die auch TINY85 genommen, um
 in Zukunft vielleicht etwas mehr damit zu tun, als nur Relais ein- oder
 ausschalten.

von Ulrich F. (Gast)


Lesenswert?

DMX512 macht vor, was man alles mit einem Pin anstellen kann.
Das 1Wire Zeugs ist ebenfalls ein gutes Beispiel dafür.

Auch bei diesem Problem gilt: Das gabs alles schon.
Also abschauen, und genauso machen.

von Bernd (Gast)


Lesenswert?

@Marc Vesely (Firma: Vescomp) (logarithmus)

Du verwechselst da etwas. Blöd bist nur du.

> Leute mit IQ > 70 hatten so etwas schon lange gemacht ...

Genau das ist dein Problem: deiner ist < 70.

> Weil du blod bist ?

Du bist so blöd, dass du nicht einmal weißt wie man blöd schreibt.

Nebenbei: du musst sogar auch noch plenken, genau wie en kleiner dummer 
Junge, der du ja auch bist-.

Wenn man deinen "Beitrag" liest, sieht man förmlich wie du mit den Füßen 
scharrst und auf Schnappatmung umgestellt hast. Atom- & MegaLOL.

von B. S. (bestucki)


Lesenswert?

Marc V. schrieb:
> Von aussen sieht auch der ATTINY nur 1 oder 0. HiZ kann der nicht
>  erkennen.

Warum nicht? Er kann doch den ADC verwenden. Dazu noch ein Widerstand 
nach GND und einer nach VCC.

Aber ich würde eher ein One-Wire Protokoll verwenden, ist halt 
flexibler. Evt. will man später doch beide Relais gleichzeitig schalten 
oder ein Monoflop und sich nicht ums Ausschalten kümmern müssen. Zudem 
kann man zu schnelles Umschalten einfach unterdrücken. Etwas Verzögerung 
durch ein Protokoll ist bei Relais ja meistens egal, die sind auch nicht 
blitzschnell.

von Ulrich F. (Gast)


Lesenswert?

Frei nach Göte:
> Wenn eine Eskalationsspirale los läuft, suche
> man die Schuld immer beim klügeren!

von Ratzjo Mittelbau (Gast)


Lesenswert?

Ulrich F. schrieb:
> Frei nach Göte:
>> Wenn eine Eskalationsspirale los läuft, suche
>> man die Schuld immer beim klügeren!

Na, dann brauchst Du Dir ja keine Sorgen zu machen, daß man die Schuld 
bei Dir suchen könnte.

von Earl S. (Gast)


Lesenswert?

Bernd schrieb:
> Die Schaltung funktioniert nur mit vier Transistoren.
>
> Pin   Transistoren
> ---   ------------
> 5 V   unten links & oben rechts leiten  -> Relais 1 ein, Relais 2 aus
> 0 V   oben links & unten rechts leiten  -> Relais 1 aus, Relais 2 ein
> float oben links & unten links leiten   -> beide Relais aus

mit zwei Transistoren sind bei hochohmigem Ausgang beide Relais 
angezogen. Ruhekontakte sind dann beide geöffnet.

be s. schrieb:
> Aber ich würde eher ein One-Wire Protokoll verwenden, ist halt
> flexibler. Evt. will man später doch beide Relais gleichzeitig schalten
> oder ein Monoflop und sich nicht ums Ausschalten kümmern müssen. Zudem
> kann man zu schnelles Umschalten einfach unterdrücken. Etwas Verzögerung
> durch ein Protokoll ist bei Relais ja meistens egal, die sind auch nicht
> blitzschnell.

der TO hat ein Problem und sucht eine Lösung.
Du hast eine Lösung und suchst Probleme, das ist nicht immer 
zielführend.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Bernd schrieb:
>> Weil du blod bist ?
>
> Du bist so blöd, dass du nicht einmal weißt wie man blöd schreibt.

 Natürlich weiß ich das, nur will ich die Tastatur nicht jedesmal auf
 Deutsch umstellen. Und Umlaute mit 'oe' zu schreiben ist unschön.
 Leute mit IQ > 70 wissen das.
 Du mit deinem IQ von kaum 50 bist natürlich entschuldigt, deswegen
 habe ich es nur für dich umgestellt.
 Und jetzt troll dich.

von Joschua C. (Gast)



Lesenswert?

Die Induktivitäten sollen die Relaisspulen sein.

uC Pin auf High: Unterer TRansistor leitet, untere Spule wird bestromt 
und mit dem Low-Zustand entsprechend. Wenn der uC-Pin im Z-Zustand ist, 
leitet keiner der Transistoren.

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.