Forum: Mikrocontroller und Digitale Elektronik Flankensteuerung für ein Relais


von Benedikt D. (Firma: BDE Elektronik) (benedictus)


Lesenswert?

Hallo in die Runde,

ich habe hier ein Modul, das gibt an einem Pin 3V aus, sobald man es 
einschaltet. Mit diesen 3V möchte ich gerne ein weiteres Gerät 
einschalten. Dieses weitere Gerät wird normalerweise per Taster 
eingeschaltet. Ich suche also eine Lösung, wie ich aus dem Signal Off= 
0V, On = 3V ein Tastersignal mache (also Tasterkontakte kurz schließen). 
Mir schwebt gerade vor, dass man die Flanken des On/Off-Signals 
auswertet und damit ein kleines Relais schaltet. Hab aber noch nicht die 
Idee, wie. Das ganze ist völlig leistungsunkritsch, es geht halt nur um 
Logiksignale.

Habt ihr Tipps für mich?

von hinz (Gast)


Lesenswert?

Kondensator und bistabiles Relais.

von hinz (Gast)


Lesenswert?

hinz schrieb:
> Kondensator und bistabiles Relais.

Sorry, hier natürlich monostabiles.

von pegel (Gast)


Lesenswert?

Da das neue Modul eine stetige Spannungsversorgung braucht, sollte es 
mit einem µC möglich sein, die Flanke auszuwerten.

von Benedikt D. (Firma: BDE Elektronik) (benedictus)


Lesenswert?

Beide Module haben ihre eigene Spannungsversorgung, das schaltende hat 
intern 3V (oder 3.3), das einzuschaltende 5V, die ich leicht anzapfen 
kann.

µC wäre mir zu aufwändig. Kondensator aufladen und sofort wieder 
entladen? Wie bring ich ihn aus der Flanke dazu, dass er sich wieder 
entlädt und nicht die 3V hält?

: Bearbeitet durch User
von hinz (Gast)


Lesenswert?

Benedikt D. schrieb:
> Beide Module haben ihre eigene Spannungsversorgung, das schaltende
> hat
> intern 3V (oder 3.3), das einzuschaltende 5V, die ich leicht anzapfen
> kann.
>
> µC wäre mir zu aufwändig. Kondensator aufladen und sofort wieder
> entladen? Wie bring ich ihn aus der Flanke dazu, dass er sich wieder
> entlädt und nicht die 3V hält?

Der soll sich ja eben nicht sofort wieder entladen.

von pegel (Gast)


Lesenswert?

Lässt sich das zu schaltende Modul mit kurzen Tastendruck ein und 
ausschalten?

Es gibt ja auch welche, die 3 Sekunden Tastendruck zum ausschalten 
brauchen.

Damit wäre dann auch klar definiert, wann es an oder aus ist.

von Stefan F. (Gast)


Lesenswert?

Benedikt D. schrieb:
> Wie bring ich ihn aus der Flanke dazu, dass er sich wieder
> entlädt und nicht die 3V hält?

Gar nicht. nach einer steigenden Flanke kann keine zweite steigende 
Flanke kommen. Deswegen ist es nicht nötig, den Kondensator zu entladen.
1
             1000µF     Relais-Spule
2
High/Low o-----||--------XXXXXXXX-------| GND

Das Relais wird bei jeder Flanke kurz anziehen.

Wenn die Quelle des Signal nicht genug belastbar ist, dann schalte ein 
starkes Logikgatter davor. Man kann auch einfach 6 normale Inverter 
parallel schalten.

Mit 5V klappt das auf jeden Fall. Bei 3V bin ich unsicher.

von Benedikt D. (Firma: BDE Elektronik) (benedictus)


Lesenswert?

pegel schrieb:
> Lässt sich das zu schaltende Modul mit kurzen Tastendruck ein und
> ausschalten?

Ja. da muss man nicht lange drücken. Kurzer Druck = an, nochmal kurzer 
Druck = aus

von pegel (Gast)


Lesenswert?


von pegel (Gast)


Lesenswert?

Zum verlängern des Impulses, noch ein Monoflop nach schalten.

von Benedikt D. (Firma: BDE Elektronik) (benedictus)


Lesenswert?

auch nicht schlecht. Ich wollte gerade anmerken, dass bei 
HCMOS-Invertern von dem Impuls nicht mehr viel übrig bleibt, aber wenn 
man ihn per Monoflop verlängern kann... reichen die 3V denn für ein High 
bei TTL Bauteilen?

Ich würde erstmal den Elko vor dem Relais antesten. Hoffentlich reichen 
die 3V für die auf Lager befindlichen 5V Relais aus...

Ich hab an dem Pin eine "Pi"-Spannung gemessen, also 3,14 Volt. Wie 
belastbar die ist, weiß ich nicht, von daher wäre etwas unempfindliche 
Logik dahinter schon sinnvoll.

Ich hab schonmal eine Inverterschaltung gebaut, die am Eingang ein 
Signal mit nur 0,5V Hub hatte (S/P-DIF), und am Ausgang dann TTL 
rausgab. Da kann ich auch nochmal drüber schauen.

von pegel (Gast)


Lesenswert?

Wenn Du als Monoflop einen 555 nimmst, hast Du auch gleich einen Relais 
Treiber.

Sollte der Impuls zu kurz für den 555 sein, nimm ein paar Inverter mehr.

Normale CMOS Gatter haben es auch nicht so eilig wie HCMOS.

von Benedikt D. (Firma: BDE Elektronik) (benedictus)


Lesenswert?

Also wenn ich das richtig sehe baue ich mir:

1)Transistor als Schalter, der mit den 3V eine 5V Spannung schaltet
2)ein schön langsames 7404, vier Inverter in Reihe hängen
3)einen 74HC86, ein Eingang direkt, ein Eingang vom 7404
4)einen NE555, auf etwa 100ms eingestellt
5)ein 5V Relais

Falls das mit 1) nicht gehen sollte, gibts auch sowas:
SN74LV1T04 als Inverter, da weiß ich aber nicht, was beim Power Up 
geschieht
SN74LV1T34 als Buffer. Diese Dinger akzeptieren geringere Logikpegel und 
geben Sie mit der Versorgungsspannung, hier 5V, wieder aus

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Benedikt D. schrieb:
> ich habe hier ein Modul, das gibt an einem Pin 3V aus
Wie sehr ist diese Spannung belastbar?

Benedikt D. schrieb:
> µC wäre mir zu aufwändig.
Mit einem 6-Pin µC wie dem Tiny5 oder einem 8er Tiny45 wäre ich dank ADC 
jetzt schon fertig und könnte das kleine 5V Relais wie z.B. TX2-5V oder 
TQ5-5V auch direkt mit einem Portpin (oder zwei parallel geschalteten) 
mit beliebigem Timing ansteuern. 3 Bauteile samt Blockkondensator, das 
empfinde ich durchaus als "wenig Aufwand".
Natürlich muss man sich halt ein einziges Mal in die Thematik 
einarbeiten...

: Bearbeitet durch Moderator
von MaWin (Gast)


Lesenswert?

Benedikt D. schrieb:
> Mir schwebt gerade vor, dass man die Flanken des On/Off-Signals
> auswertet und damit ein kleines Relais schaltet.

Das hätte den Vorteil, daß das andere Gerät galvanisch isoliert bleibt.

Es ginge vielleicht auch ein Optokoppler oder PhotoMOS Relais.

3V sind nämlich knapp, Reichelt hat z.B. gar kein 3V Reed Relais.

Nehmen wir das 
https://www.mouser.de/datasheet/2/262/3303172171e-1633494.pdf

6mA Spulenstrom sind gut.

Dein 3V Gerät muss also 3V mit 6mA liefern können.

Um das Relais dann 1 Sekunde lang einzuschalten könnte man einen Elo mit 
10000uF vorschalten, beim Entladen geht es dann über die Freilaufdiode.

Aber der ist gross.

Kleiner wird es mit einem MOSFET zwischen RC-Kombination (z.B. 
1uF/1MegaOhm) und Relais.

Genauer hält er die Zeit ein, wenn man einen Schmitt-Trigger wie 
74VHC1G14 zwischen RC Kombination und Relais schaltet, grösser ist der 
auch nicht.

von pegel (Gast)


Lesenswert?

Wie wäre ein CD4070 4 fach XOR?

Zwei Gatter davon als Inverter schalten, 3-18V Versorgung, bei 5V 
>100ns?

von Stefan F. (Gast)


Lesenswert?

Benedikt D. schrieb:
> ein schön langsames 7404

Schön langsam und mit Schmitt-Trigger Funktion sind die CD4584B und 
CD40106B.

von Benedikt D. (Firma: BDE Elektronik) (benedictus)


Lesenswert?

Lothar M. schrieb:
> Mit einem 6-Pin µC wie dem Tiny5 oder einem 8er Tiny45 wäre ich dank ADC
> jetzt schon fertig und könnte das kleine 5V Relais wie z.B. TX2-5V oder
> TQ5-5V auch direkt mit einem Portpin (oder zwei parallel geschalteten)
> mit beliebigem Timing ansteuern. 3 Bauteile samt Blockkondensator, das
> empfinde ich durchaus als "wenig Aufwand".
> Natürlich muss man sich halt ein einziges Mal in die Thematik
> einarbeiten...

Du meinst den ATtiny5? Aber den muss ich doch dann erstmal 
programmieren... also Programmieradapter (hab ich für die Größe gar 
nicht), erstmal lernen wie das geht, welche Programmieroberfläche.... 
das dürfte mittelfristig sehr gut sein, aber für diesen einfachen 
Einsatz muss ich da glaub ich zuviel reinstecken!

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Benedikt D. schrieb:
> also Programmieradapter (hab ich für die Größe gar nicht)
So ein Programmierkabel kostet 5€, wenn du das Erstbeste nimmst.

> das dürfte mittelfristig sehr gut sein, aber für diesen einfachen
> Einsatz muss ich da glaub ich zuviel reinstecken!
Richtig, wenn du nur 1 einziges Mal genau 1 Problem lösen musst, dann 
ist das Einarbeiten zu viel Aufwand. Aber irgendwie kann man damit echt 
viele Aufgaben lösen, wenn man sich da ein wenig eingearbeitet hat.

Dein Programm würde ohne besondere Entprellung oder sonstwas etwa so 
aussehen:
1
#define F_CPU 1000000UL
2
#include <avr/io.h>
3
#include <util/delay.h>
4
5
#define Eingang   PB0
6
7
// alle Relaisausgänge ein
8
#define Anziehen   (PORTB |=   0xe)
9
// alle Relaisausgänge ein
10
#define Loslassen  (PORTB &=   0x1)
11
12
uint8_t Eingang_akt = 0;
13
uint8_t Eingang_alt = 0;
14
15
int main(void)
16
{
17
   DDRB  = 0x0e; // PB 3..1 = Ausgang (1=output, 0=input)
18
   PORTB = 0x00; // Pullups auf Eingänge (1=Pullup, wenn Eingang)
19
20
   while (1) {
21
      Eingang_akt = PINB&(1<<Eingang);  // Eingang einlesen
22
      if(Eingang_akt != Eingang_alt) {  // hat sich was getan? Ja: Flanke
23
         if (Eingang_akt) {             // ist der Eingang high? Ja: steigende Flanke
24
            Anziehen;                   // Relais einschalten
25
            _delay_ms(100);             // warten
26
            Loslassen;                  // Relais abschalten 
27
         }
28
         Eingang_alt = Eingang_akt;     // alten Pinzustand merken
29
      }
30
   }
31
}
Ergebnis für den ATtiny10: "11,1% full", der ATtiny5 wäre demzufolge zu 
drei Vierteln leer... ;-)

: Bearbeitet durch Moderator
von Forist (Gast)


Lesenswert?

pegel schrieb:
> Wie wäre das?
>
> https://i.stack.imgur.com/Ofi3s.png

Ich sehe nichts.

Dateianhang vergessen?

von pegel (Gast)


Lesenswert?

Forist schrieb:
> Ich sehe nichts.

Ist kein Anhang. Kann dein Browser png?

von Benedikt D. (Firma: BDE Elektronik) (benedictus)


Angehängte Dateien:

Lesenswert?

Hat ein bisschen gedauert, aber ich habe jetzt mal abgebildete Schaltung 
aufgebaut. Ganz links wird die 3.1 Volt Flanke geliefert und geht in das 
erste IC, ein 74HCT7541. Dieses IC kommt mit dem 3.1 Volt Pegel gut klar 
und macht daraus ein 5V (früher hieß sowas mal TTL-) Signal. Von da aus 
geht es direkt in den Eingang A eines XOR (74HC86).
Parallel geht das Signal durch die weiteren 7 Stufen des 74HCT7541 sowie 
durch die drei sonst ungenutzten Stufen des HC86. Durch diesen Umweg 
erzeuge ich den benötigten Delay, und so kann das Signal an den Eingang 
B des XOR gelegt werden.
Damit bekommt der XOR das Signal einmal direkt und einmal verzögert und 
sollte dann ein kurzes High ausgeben.

Tut er aber nicht...

Ich hab mal das Timing geprüft. Die Durchlaufzeit durch eine Bufferstufe 
des 74HCT7541 ist mit 19 ns angegeben, die des HC86 mit 7 ns. Macht 
zusammen 7x19 + 3x7 = ca 150 ns Versatz zwischen den beiden High am XOR. 
Reicht das evtl nicht, um dem XOR ein kurzes High zu entlocken? Wenn ich 
das Datenblatt des HC86 richtig verstehe, sollten 150ns doch locker für 
eine Reaktion am Ausgang des XOR reichen.
Any ideas?

von my2ct (Gast)


Lesenswert?

Benedikt D. schrieb:
> Wenn ich das Datenblatt des HC86 richtig verstehe, sollten 150ns doch
> locker für eine Reaktion am Ausgang des XOR reichen.

Irgendwo muss dafür der Strom her kommen. In deinem Verdrahtungsplan 
sind weit und breit keine Abblockkondensatoren zu sehen.

von Benedikt D. (Firma: BDE Elektronik) (benedictus)


Lesenswert?

hab ich in der Zeichnung weggelassen: an den Stromversorgungen der drei 
ICs hängen je 100nF Chip an VCC gegen Masse. Dazu noch ein Elko 
unmittelbar vor den drei ICs von VCC gegen Masse.

von MCUA (Gast)


Lesenswert?

> ...um dem XOR ein kurzes High zu entlocken?

Dann nimm doch das hier:
1
                     |---
2
-o-------------------|   \
3
 |                   |    \   OUT
4
 |                   |     |------
5
 |  |--|   |-\       |    /
6
 ---|  |---|  |0-----|   /
7
    |--|   |-/       |---
8
   Delay   INV      AND/NAND

von Benedikt D. (Firma: BDE Elektronik) (benedictus)


Lesenswert?

Das ist aber im Prinzip auch nicht viel anders als der Vorschlag weiter 
oben:

pegel schrieb:
> https://i.stack.imgur.com/Ofi3s.png

welchen ich umgesetzt habe. Wie lang muss denn die Verzögerung sein? Das 
ist doch bei deinem Vorschlag auch nicht anders, man muss eine bestimmte 
Verzögerung erreichen.

von MCUA (Gast)


Lesenswert?

Es ist doch ein Unterschied ob dort ein XOR oder ein AND/NAND genommen 
wird.
Wie lange die Verzögerung sein muss, musst du wissen.

von Benedikt D. (Firma: BDE Elektronik) (benedictus)


Lesenswert?

Danke, aber kannst du mir erklären, was dann im Ergebnis den Unterschied 
zwischen XOR und AND/NAND ausmacht? Sind doch beides Logik-Bausteine, 
die mit der jeweiligen Vorbeschaltung aus der Flanke ein kurzes High 
machen.

Und wieso muss ich die Verzögerungszeit wissen? Ich wollte wissen, wie 
groß diese sein muss, damit das folgende Logik-IC (XOR oder aber 
AND/NAND)sicher reagieren kann.

von Benedikt D. (Firma: BDE Elektronik) (benedictus)


Lesenswert?

Ich hab jetzt gerade nochmal mit dem Oszi nachgemessen und habe 
festgestellt, dass die Schaltung mit HCT7541 und HC86 funktioniert. Der 
HC86 gibt das erwünschte kurze High korrekt aus, etwas über 100ns lang. 
Der Fehler liegt also wohl in der Beschaltung des NE555, da kommt nix 
raus.

=> Fehler gefunden
1.) ich hab das Signal, das in den NE555 reingeht, nochmal invertiert. 
Es war vorher active high. Da der NE555 aber auf fallende Flanken 
reagiert, macht ein active low Signal mehr Sinn. Ein Beinchen am HC86 
von L auf H hat das richtiggestellt

2.) (peinlich) der Vcc-Pin des NE555 war nicht korrekt angelötet...

: Bearbeitet durch User
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.