Hallo,
eine wahrscheinlich ganz einfache Frage:
Ich habe einen Microcontroller, bei welchem ich am IO Eingang den
internen PullUp aktiviert habe.
Von einer 24V Leitung, welche über einen Taster geschliffen wird, senke
ich mit einer Z-Diode die Spannung auf 5V und führe diese zum Eingang
des Microcontrollers.
Da der PullUp aktiviert ist und 5V beim Drücken des Tasters anliegen,
weiß ich nun nicht, wann der Taster gedrückt ist und wann nicht.
Wie verwandle ich die 5V am besten in GND, so dass beim Drücken des
Tasters GND am Eingang anliegt?
Transistor?
Danke
Mach im Vergleich zum internen Pullup einen niederohmigen Pull-Down an
den Eingang.
Abgesehen davon: ausgehend von 24V sollte das eher so aussehen:
1
24V 24V
2
+ +
3
| |
4
| |
5
o o
6
'\ '\
7
\ \
8
o \ o \
9
| |
10
| |
11
.-. .-.
12
| | | |
13
| | 10k | | 10k
14
'-' '-'
15
| | ___
16
o----o------- o---|___|----
17
| | | 1k
18
.-. | .-.
19
|2k7 | |2k7
20
| | z | |
21
'-' A 5V1 '-'
22
| | |
23
'----o------- '----o-------
24
| |
25
=== ===
26
GND GND
27
(created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)
Wenn du den internen Pullup abschalten kannst, dann auch gerne etwas
hochohmiger.
Die rechte Variante reicht auch, wenn deine 24V Signal einigermaßen
stabil sind und nicht deutlich höher werden können. Der 1k schützt
zusammen mit den ESD-Dioden des Eingangs auch, wenn mal 25V anliegen
sollten.
Danke für deine Skizze, aber irgendwie werde ich darauf nicht so schlau.
Durch den Spannungsteiler liegen in der Mitte 4.6V an (wenn ich das
richtig gerechnet habe).
Lege ich die 4.6V nun an meinen Mikrocontroller an, so wird der Port auf
HIGH gezogen (wobei auch der PullUP aktiv ist und dieser den sowieso auf
HIGH zieht. Ich müsste aber aus den 24V ein LOW zaubern (<2.5V).
Ich kann natürlich den Spannungsteiler entsprechend anpassen, oder
verstehe ich da irgendwas falsch?
Hallo,
warum schaltest Du den internen PullUp nicht einfach aus und fragst auf
Low-aktiv ab?
Natürlich kannst Du an den Spannungsteiler auch die Basis eines
npn-Transistors anschließen, Emitter an GND und Kollektor an den IO mit
aktivem PullUp. Die Basisstrombegrenzung erledigt der 10k, Z-Diode ist
dann überflüssig.
Gruß aus Berlin
Michael
Thomas schrieb:> Was genau meinst du mit Low active? Pull down Widerstand?
Hab mal gegoogelt:
http://vinduino.blogspot.com/2013/07/active-high-vs-active-low-button.html
Low active heißt -> PullUP verwenden und an den Schalter GND hängen.
Kann ich leider nicht, an den 24V kann ich nichts ändern, die sind so
fix.
Michael U. schrieb:> Natürlich kannst Du an den Spannungsteiler auch die Basis eines> npn-Transistors anschließen, Emitter an GND und Kollektor an den IO mit> aktivem PullUp. Die Basisstrombegrenzung erledigt der 10k, Z-Diode ist> dann überflüssig.
Eine ganz blöde Frage: Worin liegt der Unterschied, ob ich einen NPN
Transistor verwende, oder via Spannungsteiler die Spannung auf ~0.5V
senke?
lG
Dann steuere mit den 24V einen Optokoppler oder NPN Transistor an.
Dessen Ausgang verbindest du mit dem Mikrocontroller.
Grundschaltungen zu Optokopplern und Transistoren findest du sicher
selber.
Tom schrieb:> Durch den Spannungsteiler liegen in der Mitte 4.6V an (wenn ich das> richtig gerechnet habe).
Ja, etwa.
> Lege ich die 4.6V nun an meinen Mikrocontroller an, so wird der Port auf> HIGH gezogen (wobei auch der PullUP aktiv ist und dieser den sowieso auf> HIGH zieht. Ich müsste aber aus den 24V ein LOW zaubern (<2.5V).
Wann willst du LOW haben? Wenn der Taster gedrückt wird oder wenn er
losgelassen wird?
Wenn der Taster geöffnet ist, dann wirkt der interne Pullup nicht mehr,
weil der externe 2k7-R deutlich kleiner ist als der interne.
Du erhälst HIGH, wenn der Taster gedrückt ist und LOW, wenn er offen
ist.
Wenn du es umgekehrt benötigst: Als erste Wahl würde man die SW
anpassen, zweitens kann man den Taster parallel zum 2k7 anschließen.
Natürlich geht auch ein Transistor; wenn der Taster gedrückt ist, leitet
dieser und wird den Eingang auf LOW ziehen.
Hast du Zugriff auf die SW?
>> Ich kann natürlich den Spannungsteiler entsprechend anpassen, oder> verstehe ich da irgendwas falsch?
Es kann auch sein, dass ich/wir dein Problem nicht verstehen.
Abhilfe würde eine Skizze schaffen, was du jetzt umgesetzt hast und die
Information, welchen Pegel du bei offenem und bei geschlossenem Taster
am Eingang haben möchtest.
Stefanus F. schrieb:> HildeK schrieb:>> Es kann auch sein, dass ich/wir dein Problem nicht verstehen.> Ich glaube, er kann, will oder darf die Software nicht ändern.
Oder es fehlen einfache Grundlagen der Schaltungstechnik?
Stefanus F. schrieb:> Ich glaube, er kann, will oder darf die Software nicht ändern.
Kann sein, aber kann er den Taster frei anschließen, also auch nach GND?
Bzw. was kann er anpassen und was nicht? Und will er LOW oder HIGH bei
gedrückter Taste? Ist die Taste frei wählbar? Könnt diese auch als
Öffner ausgeführt werden?
Was wäre anpassbar und was nicht?
Fragen über Fragen ...
HildeK schrieb:> Wann willst du LOW haben? Wenn der Taster gedrückt wird oder wenn er> losgelassen wird?> Wenn der Taster geöffnet ist, dann wirkt der interne Pullup nicht mehr,> weil der externe 2k7-R deutlich kleiner ist als der interne. Du erhälst> HIGH, wenn der Taster gedrückt ist und LOW, wenn er offen ist. Wenn du> es umgekehrt benötigst: Als erste Wahl würde man die SW anpassen,> zweitens kann man den Taster parallel zum 2k7 anschließen. Natürlich> geht auch ein Transistor; wenn der Taster gedrückt ist, leitet dieser> und wird den Eingang auf LOW ziehen.> Hast du Zugriff auf die SW?
Danke für die tolle Beschreibung, ich hatte den Schaltplan falsch
verstanden.
Jetzt ist mir auch klar, wie die Schaltung funktioniert :).
Die Software kann ich anpassen.
Der 2k7 ist praktisch mein pull down, wenn der Schalter geöffnet ist.
Manfred schrieb:> Oder es fehlen einfache Grundlagen der Schaltungstechnik
Und ja, das war wohl gerade meine Hauptproblem.
Ich kann alles anpassen, ausser die 24V vom Taster, die sind so fix.
Die Leitung vom Taster zum Microcontroller sind einige Meter lang.
Ich denke, ich werde den Schaltplan mit einer Z Diode umsetzen.
Thomas schrieb:> Der 2k7 ist praktisch mein pull down, wenn der Schalter geöffnet ist.
Exakt.
Ich habe den recht niedrigen Wert vorgeschlagen, weil nicht klar war, ob
du die SW anpassen und damit den internen Pull-Up abschalten kannst.
Beim Tiny25 z.B. hat der irgendwas im Bereich von 30k-50k.
Thomas schrieb:> Ich kann alles anpassen, ausser die 24V vom Taster, die sind so fix.> Die Leitung vom Taster zum Microcontroller sind einige Meter lang.
Da ist mit Störungen durch Einstreuung zu rechnen (der Taster ist am
Gerät, das die 24V liefert?). Also: an Entprellung denken und den
Pull-Down auch niederohmig lassen.
> Ich denke, ich werde den Schaltplan mit einer Z Diode umsetzen.
Ist das dein Realisierungsvorschlag?
1
.-------------.
2
| 24V |
3
| + |
4
| | |
5
| \ o |
6
| \ |
7
| \. Gerät mit Taster
8
| o |
9
'-------------'
10
| <------ längere Leitung
11
z
12
A 19V
13
|
14
o------
15
|
16
.-.
17
| |
18
| |
19
'-'
20
|
21
|
22
===
23
GND
24
(created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)
Übrigens: eine 19V-Z-Diode wird es nicht geben. Deshalb würde ich
weiterhin einen meiner obigen Vorschläge ans Herz legen.
Relais schrieb:> Warum so kompliziert? Einfach einen Spannungsteiler mit zwei> Widerständen an den Eingang (47k und 10k). Fertig.
Du hast die Aufgabenstellung nicht verstanden.
Der Eingang des µC soll auf Low gezogen werden, wenn der Taster betätigt
wird. Im µC ist der interne Pull-Up Widerstand aktiviert.
Und jetzt frage bitte nicht, warum er das Programm nicht ändert. Da
haben andere schon gefragt.
Stefanus F. schrieb:> Und jetzt frage bitte nicht, warum er das Programm nicht ändert. Da> haben andere schon gefragt.
Das hätte ich jetzt glatt getan :-) Wäre doch das Simpelste.
Thomas schrieb:> Ich kann alles anpassen, ausser die 24V vom Taster, die sind so fix.> Die Leitung vom Taster zum Microcontroller sind einige Meter lang.
Mit "ich kann alles anpassen, ausser die 24V vom Taster" meinte ich auch
die Software :) ...
@HildeK Ich werde deine erste Variante mit einer 5.1V Z-Diode verwenden.
Danke!
lG
Thomas schrieb:> Mit "ich kann alles anpassen, ausser die 24V vom Taster" meinte ich auch> die Software :) ...
Du echt ein Meister der Mehrdeutigen Sätze.
Kannst du die Software anpassen, oder nicht?
HildeK schrieb:> Mach im Vergleich zum internen Pullup einen niederohmigen Pull-Down an> den Eingang.> Abgesehen davon: ausgehend von 24V sollte das eher so aussehen: 24V> 24V> + +> | |> | |> o o> '\ '\> \ \> o \ o \> | |> | |> .-. .-.> | | | |> | | 10k | | 10k> '-' '-'> | | ___> o----o------- o---|___|----> | | | 1k> .-. | .-.> |2k7 | |2k7> | | z | |> '-' A 5V1 '-'> | | |> '----o------- '----o-------> | |> === ===> GND GND
Ich hätte da jetzt noch eine Frage zur ersten Schaltung mit der Z-Diode.
Nehmen wir an, ich nehme folgende Z- Diode:
https://www.reichelt.com/de/en/zener-diode-sod-323-5-1v-300mw-bzx-384-c5v1-nxp-p219420.html
Und als Grundlage zur Berechnung des Vorwiderstands folgende Seite:
https://www.elektronik-kompendium.de/sites/slt/1012151.htm
So heißt es:
===
Deshalb muss der Z-Diode ein Widerstand in Reihe vorgeschaltet werden
(Vorwiderstand), der in Abhängigkeit der Anwendung und der Stromentnahme
dafür sorgt, dass der minimale Sperrstrom nicht unterschritten und der
maximale Sperrstrom nicht überschritten wird.
===
Also muss bei 0,3W folgendes mindetsens an Strom angelegt werden:
Izmax = 0.3W / 5.1V = 0.058A
Izmin = 0.0058A
Da würde ich aber einen 3k Widerstand oder kleiner benötigen? Oder hab
ich da einen Denkfehler?
Thomas schrieb:> So heißt es:> ===> Deshalb muss der Z-Diode ein Widerstand in Reihe vorgeschaltet werden> (Vorwiderstand), der in Abhängigkeit der Anwendung und der Stromentnahme> dafür sorgt, dass der minimale Sperrstrom nicht unterschritten und der> maximale Sperrstrom nicht überschritten wird.> ===
Ja, so heißt es :-).
Das war jetzt ein Auszug, wenn du die Z-Diode als einfachsten
Spannungsregler einsetzt. Da hat man gewöhnlich eine wechselnde Last und
will aber, dass die Spannung einigermaßen konstant bleibt. Also muss bei
größter Last noch immer etwas Strom durch die Z-Diode fließen. Ideal
wäre ein konstanter Strom durch die Diode, dann liefert sie auch eine
konstante Spannung. Ohne Last darf allerdings nicht so viel fließen,
dass sie kaputt geht. Typisch hat sie 5.1V bei 5mA Strom
> Also muss bei 0,3W folgendes mindetsens an Strom angelegt werden:> Izmax = 0.3W / 5.1V = 0.058A
Mehr darf durch die Z-Diode nicht fließen, sonst überschreitet sie die
maximalen 300mW.
> Izmin = 0.0058A
Der Wert kommt nicht aus dem Datenblatt, es gibt keinen Izmin. Das wäre
bestenfalls eine Faustregel, aber auch da bin ich nicht dabei, denn wenn
schon, dann hat das nichts mit dem Izmax zu tun, höchstens mit 'good
practice', wenn man eine Stabilisierungsschaltung bauen will. Die
Z-Diode sollte (s.o.) einen minimalen Strom bekommen, so dass ihre
Begrenzungsspannung auch noch einigermaßen passt. Bei z.B. nur 100µA
durch die 5V1-Diode kann es halt sein, dass dann halt nur noch 4.5V oder
4.7V anliegen (Werte geschätzt).
Du hast aber in der Anwendung so gut wie keinen Laststrom (das wäre das,
was in den Eingang des µC fließt). Wenn du die Widerstände so wählst,
wie ich oben vorgeschlagen hatte, dann fließt fast kein Strom durch die
Z-Diode. Sie dient nur noch dazu, im Fall das die 24V mal versehentlich
deutlich mehr werden, den µC-Eingang zu schützen. Sollte durch die
5V1-Z-Diode die Spannung auf 4.7V begrenzt werden, dann kannst du das
entweder so lassen oder die 2k7 auf 3k3 erhöhen oder die 10k auf 8k2
verkleinern. Dann bekommt die Z-Diode etwas mehr Strom.
Der Teiler wurde ja so berechnet, dass du bei einer Eingangsspannung von
24.0V gerade mal 5.1V am µC bekommst. Das würde bereits ausreichen.
> Da würde ich aber einen 3k Widerstand oder kleiner benötigen? Oder hab> ich da einen Denkfehler?
Nur insofern, dass wir hier keine Spannung stabilisieren wollen und bei
Lastwechsel möglichst wenig Schwankung haben wollen. Es gibt gar keinen
Lastwechsel, wenn dein Taster offen ist, ist sowieso der Teil stromlos
und wenn er geschlossen ist, sollten wir halt nicht mehr als 5V
bekommen.
Ich weiß, ich gehe hier etwas "hemdsärmelig" vor, aber eine solche
Schaltung braucht keine große Wissenschaft hinter sich. Ich hab die
Schaltung nicht aufgebaut und würde einfach einen der Widerstände
anpassen, falls der HIGH-Pegel zu klein sein sollte.
Mach einfach vorher einen kleine Test: nimm die 24V, die Diode und einen
Widerstand (z.B. 33k) und schalte beide in Reihe. Miss die Spannung an
der Diode.
Stefanus F. schrieb:> Kannst du die Software anpassen, oder nicht?
Hatte er aber viel weiter oben schon mal positiv beantwortet. Damit kann
er invertieren und kann auch den PU ausschalten.
Thomas schrieb:> Die Software kann ich anpassen.