- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 8 von 8

Thema: Anfängeralarm. Digitale Pins - wie richtig verbinden?

  1. #1

    Anfängeralarm. Digitale Pins - wie richtig verbinden?

    Anzeige

    Powerstation Test
    Hallo Forum!
    Ich bin erst vor kurzer Zeit auf NodeMCU gestoßen und habe mich etwas eingelesen.
    Die Programmierung ist kein Problem, aber elektrotechnisch bin ich komplett unterbelichtet
    und bräuchte etwas grundlegende Hilfe bei einem an sich ganz einfachen Projekt.

    Ich habe ein Device (Details egal), an dem eine zweipolige Miniklinke hängt.
    Der eine Pol GND, der andere Pol liefert je nach Zustand 0V (aus) oder 3V (an).
    Ich möchte einfach nur mit einem der digitalen Pins des NodeMCU diesen Zustand auslesen.
    Hab ganz viel gegoogelt und sehe vor lauter Schaltbildern und Pull-up-pull-down usw nicht
    mehr durch und will natürlich nichts aus Versehen wegblasen.
    Einfach an einen Pin und an GND des NodeMCU anschließen oder muss ich etwas beachten,
    Widerstände dazwischen bauen oder sonst was...?

    Zweiter Schritt:
    Angenommen das besagte Device liefert nur 2,5V. Könnte knapp werden für ein HIGH am
    NodeMCU, oder? Ich las HIGH wird ab etwa 2,475V erkannt... Was kann ich dazwischen hängen,
    um eine eindeutigere Spannung zu erhalten? Ich lese immer nur was von Voltage Dividern, also
    quasi das Gegenteil von dem, was ich hier brauche...
    Der ADC ist übrigens keine Option, am Ende geht es nämlich um mehr als nur ein Device.

    Vielen Dank für Eure Hilfe!

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    36
    Beiträge
    5.070
    Wilkommen im Forum,

    digitale Ein und Ausgänge kann man direkt verbinden, ohne etwas dazwischen. Auf was man achten muss ist nur die richtige Spannung. Man darf z.B. nicht einen Ausgang mit 5V direkt an einen Eingang mit 3V anschließen, da würde man einen Spannungsteiler benötigen (der die 5V auf die 3V teilt).

    Bei falscher Programmierung kann man auch etwas zerstören und zwar wenn man beide als Ausgang schaltet (wenn man z.B. 2 Mikrocontroller verbindet). Wenn ein µC auf high schaltet und der Andere auf low hat man einen Kurzschluss. Um sicherzustellen das soetwas nicht geschieht kann man einen Widerstand zwischen die beiden Controller schalten, der den Strom begrenzt.

    Pullup bzw Pulldown benötigt man nur um sicherzustellen das es richtige Pegel gibt. Wenn man z.B. einen Taster hat kann man nur auf einen Pegel schalten (außer man hat einen Wechsler), also auf +U oder 0V. Dementsrechend benötigt man einen Pullup (Taster schaltet auf 0V, Widerstand geht auf +U) oder Pulldown (Taster schaltet auf +U, Widerstand geht auf 0V).


    Digitale Logik (digitale ICs bzw µCs) hat fixe Pegel, die sogenannten Logikpegel. Dort gibt es einen Low- und einen Highpegel, dazwischen gibt es eine verbotene Zone. Die Logikpegel sind abhängig von der Versorgungsspannung und von der Familie (CMOS, TTL, HTL). https://de.wikipedia.org/wiki/Logikpegel

    Wenn du z.B. 3,3V TTL Pegel hast, werden Spannungen unter 0,8V als low und über 2V als high erkannt. Spannungen dazwischen sind nicht zulässig. Solltest du Spannungen dazwischen haben benötigst du einen Schmitt-Trigger, den kannst du dann so konfigurieren das du z.B. Spannungen unter 1,45V als Low und über 1,55V als high erkennst. Einen kleinen Bereich zwischen low und high sollte man nehmen (Hysterese), damit dieser nicht ständig schaltet.

    MfG Hannes

  3. #3
    Hallo Hannes,

    vielen Dank für Deine ausführliche Antwort.

    Den ersten Absatz verstehe ich, den letzten auch
    Alles dazwischen ist vermutlich für meine Frage auch nicht so relevant bzw mir auch klar.
    Ich habe einen technischen Beruf, ich weiß was das Ding tut, LOW, HIGH usw, ich weiß was digital
    ist und wie man das Ding programmiert. Nur nicht, wie man es elektrotechnisch richtig verkabelt.

    Dein erster Absatz scheint meine Frage zu beantworten, nur nochmal für mich Doofi zur Sicherheit.
    Nehmen wir mal an ich habe ein 3V Netzteil. Das soll nichts betreiben externes betreiben und auch nicht
    den NodeMCU. Ich will es einfach nur an den NodeMCU anschließen um zu gucken: Ist das Netzteil an oder aus?
    Dann kann ich das ohne zusätzliche Bauteile so tun wie ich völlig dilletantisch aufgemalt habe?

    Und Zusatzfrage: 3V, AN, klar, das gibt ein HIGH. Wenn es aber aus ist, 0V, gibt das dann bei der Verkabelung
    ein LOW oder ist der Pin dann 'floating'....?

    Klicke auf die Grafik für eine größere Ansicht

Name:	IMG_20190202_112134~2[1].jpg
Hits:	9
Größe:	27,7 KB
ID:	33973

  4. #4
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    36
    Beiträge
    5.070
    Kann man nicht sicher sagen ob es hochohmig ist oder du einen low Pegel hast. Wenn es intern einen Spannungsteiler gibt (für die Spannungseinstellung) wirst du einen Lowpegel haben. Macht das der Spannungsregler aber intern, könnte es sein das du so hochohmig bist das du einen Pullldown benötigst (z.B. 10k). Ich würde aber auf jeden Fall einen Pulldown einplanen, denn was passiert wenn du das NT absteckst?

    Die Skizze stimmt.

    MfG Hannes

  5. #5
    Ok, ich hab mich auch blöd ausgedrückt bei dem Versuch zu vereinfachen.
    Da hängt natürlich kein Netzteil dran (wozu auch?), sondern die Buchse eines Geräts, die (aus Gründen) entweder 0 oder 3V ausspuckt.
    Aber das Ergebnis ist ja das Gleiche.
    Diesen Zustand muss ich abfragen und per WLAN weitergeben (DAS ist alles schon programmiert).
    Könnte ich das, was Du nicht sicher sagen kannst, an der Buchse messen (wonach Suche ich....?) ?

    Abert wenn ich Dich richtig verstehe, kann ich es elektrisch bedenkenlos so verbinden und einfach ausprobieren, ob ich ein sauberes LOW bekomme...?

  6. #6
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    36
    Beiträge
    5.070
    Du musst herausfinden wie der Ausgang aufgebaut ist, also +U, 0V oder Push/Pull (+U und 0V wie bei Logik ICs) schaltet. Das kannst du relativ leicht mit einer Led (+Vorwiderstand) herausfinden.
    1) Du schließt die Led zwischen +U und Pin: Leuchtet die Led schaltet der Pin gegen 0V
    2) Du schließt die Led zwischen Pin und 0V: Leuchtet die Led schaltet der Pin auf +U
    3) Wenn es in beiden Varianten leuchtet hast du einen Push/Pull Ausgang

    Bei Fall 1 benötigst du einen Pullupwiderstand (zwischen +U und Pin)
    Bei Fall 2 benötigst du einen Pulldownwiderstand (zwischen Pin und 0V)
    Bei Fall 3 benötigst du keinen Widerstand, da es einen definierten High und Low Pegel gibt

    Wenn die Möglichkeit besteht das das Gerät entfernt wird benötigst du auch bei einem Push/Pull Ausgang einen Widerstand (Pullup oder Pulldown ist egal bzw anhängig von der Programmierung).

    MfG Hannes

  7. #7
    Vielen Dank Hannes, das hilft mir zumindest schon mal deutlich weiter (auch wenn ich es wieder nur halb verstehe)!
    Haha, ich lache die ganze Zeit über mich selbst - das ist wie "Hey Leute, ich hab ein super Lauftraining für
    mich ausgearbeitet und auch tolle Laufrouten rausgesucht, leider weiß ich nicht wie man sich die Schuhe
    zubindet..."

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    25.12.2018
    Beiträge
    459
    Eine andere, einfache und sichere Lösung ist, den Ausgang deines Netzteils/Gerätes mit einem passenden Widerstand (ca. 500-1000 Ohm) an einen Optokoppler (ein ganz gewöhnlicher Typ 817 genügt) anzuschließen. Der Ausgang des Optokopplers wird (ebenfalls mit einem Widerstand, ca. 1000 Ohm) zwischen Input-Pin und GND des µC geschaltet.
    Ist dein Netzteil eingeschaltet (3V), schaltet der Optokoppler durch, verbindet den Pin mit GND und zieht ihn auf low. Den Eingang programmierst du mit internem Pullup-Widerstand. Ist das Netzteil aus, wird der Pin damit auf high gezogen.

    Vorteil dieser Lösung:
    - Sie funktioniert auch, wenn deine Spannung des Netzteils geringer/höher ist als 3 V (ggf. brauchst du einen kleineren/größeren Widerstand am Optokoppler-Eingang).
    - Die beiden Geräte sind stromtechnisch getrennt. Ein Kurzschluss im Netzteil, der plötzlich 230 V auf die Leitung bringt (oder irgendeine ähnliche Katastrophe), würde nur den Optokoppler zerstören, nicht aber den Mikrocontroller.

    Und so sieht das aus:

    Klicke auf die Grafik für eine größere Ansicht

Name:	GPIO-Input-Circuit2.gif
Hits:	11
Größe:	7,5 KB
ID:	33974

    Beachte:
    - Zwischen GPIO-Pin und Optokoppler sollte noch ein Schutzwiderstand von 1000 Ohm.
    - Hier steht 5 V, wo du 3 V hast und statt eines Mikrocontrollers wurde hier ein Raspberry Pi mit 3,3 Volt Spannung für die Pins verwendet das Prinzip ist aber identisch.

Ähnliche Themen

  1. MEGA, wie viel digitale IO Pins sind verfügbar?
    Von spunky9003 im Forum Arduino -Plattform
    Antworten: 9
    Letzter Beitrag: 15.05.2018, 12:18
  2. 2 pins von 2 atmega direkt verbinden
    Von PREDATOR32 im Forum AVR Hardwarethemen
    Antworten: 1
    Letzter Beitrag: 09.04.2011, 19:26
  3. Eagle: Pins verbinden
    Von MrBigBrain im Forum Konstruktion/CAD/3D-Druck/Sketchup und Platinenlayout Eagle & Fritzing u.a.
    Antworten: 8
    Letzter Beitrag: 19.09.2007, 21:32
  4. 2 AVR verbinden / Alternativ-Pins?
    Von ShadowPhoenix im Forum AVR Hardwarethemen
    Antworten: 7
    Letzter Beitrag: 05.10.2005, 22:51
  5. *I2C* maximale eingänge per i2c auf 8 digitale Pins
    Von Christian Sturm im Forum Elektronik
    Antworten: 9
    Letzter Beitrag: 22.06.2004, 20:44

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen