Forum: Mikrocontroller und Digitale Elektronik PullUp und Taster 24V


von Thomas (Gast)


Lesenswert?

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

von HildeK (Gast)


Lesenswert?

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.

von Tom (Gast)


Lesenswert?

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?

von Michael U. (amiga)


Lesenswert?

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

von Thomas (Gast)


Lesenswert?

Was genau meinst du mit Low active? Pull down Widerstand?

Lg

von Tom (Gast)


Lesenswert?

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

von Stefan F. (Gast)


Lesenswert?

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.

von HildeK (Gast)


Lesenswert?

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.

von Stefan F. (Gast)


Lesenswert?

HildeK schrieb:
> Es kann auch sein, dass ich/wir dein Problem nicht verstehen.

Ich glaube, er kann, will oder darf die Software nicht ändern.

von Manfred (Gast)


Lesenswert?

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?

von HildeK (Gast)


Lesenswert?

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 ...

von Thomas (Gast)


Lesenswert?

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.

von Thomas (Gast)


Lesenswert?

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.

von HildeK (Gast)


Lesenswert?

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.

von Relais (Gast)


Lesenswert?

Warum so kompliziert? Einfach einen Spannungsteiler mit zwei 
Widerständen an den Eingang (47k und 10k). Fertig.

von Stefan F. (Gast)


Lesenswert?

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.

von Relais (Gast)


Lesenswert?

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.

von Stefan F. (Gast)


Lesenswert?

Mit Transistor:
1
                    4,7kΩ          1kΩ
2
24V vom Taster o----[===]----+----[===]---| GND
3
                             |
4
                             |       +---------------o zum µC
5
                             |       |
6
                             |     |/
7
                             +-----|      BC337
8
                                   |\>
9
                                     |
10
                                     |
11
                                    GND

Mit Optokoppler:
1
                    4,7kΩ          1kΩ
2
24V vom Taster o----[===]----+----[===]---| GND
3
                             |
4
                             |
5
                             +----|>|-----| GND
6
7
                              LED vom Optokoppler
8
9
10
                                     +---------------o zum µC
11
                                     |
12
                                   |/
13
              Transistor           |
14
            vom Optokoppler        |\>
15
                                     |
16
                                     |
17
                                    GND

von Thomas (Gast)


Lesenswert?

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

von Stefan F. (Gast)


Lesenswert?

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?

von Thomas (Gast)


Lesenswert?

Stefanus F. schrieb:
> Kannst du die Software anpassen, oder nicht?

Sorry, ja Software kann angepasst werden :)

von Thomas (Gast)


Lesenswert?

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?

von HildeK (Gast)


Lesenswert?

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.

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.