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?
Da das neue Modul eine stetige Spannungsversorgung braucht, sollte es mit einem µC möglich sein, die Flanke auszuwerten.
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
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.
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.
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.
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
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.
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.
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
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
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.
Wie wäre ein CD4070 4 fach XOR?
Zwei Gatter davon als Inverter schalten, 3-18V Versorgung, bei 5V
>100ns?
Benedikt D. schrieb: > ein schön langsames 7404 Schön langsam und mit Schmitt-Trigger Funktion sind die CD4584B und CD40106B.
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!
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
pegel schrieb: > Wie wäre das? > > https://i.stack.imgur.com/Ofi3s.png Ich sehe nichts. Dateianhang vergessen?
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?
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.
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.
> ...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 |
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.
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.