Ich bin so ziemlich ein Anfänger in der Elektronik und arbeite derzeit an einem persönlichen Projekt, bei dem ich ein Gerät habe, das ein digitales Signal (Rechteckwelle) von 0 V bis 2,7 V ausgibt, und das muss ich lesen Signal mit meinem Arduino. Das reicht leider nicht für den Arduino Mega 2560, da die Mindestspannung, um den digitalen Pin hoch zu schalten, mindestens 3 V beträgt.
Ich habe etwas "recherchiert" und bin auf den Hex-Level-Shifter MC14504B gestoßen, der die perfekte Lösung für mein Problem zu sein schien. Allerdings ... Ich habe einige Probleme beim Interpretieren des Datenblatts ...
TL; DR: Ich muss mein 2,7-V-Signal auf mindestens 3 V oder mehr pegeln.
Dies ist das Logikdiagramm des Pegelumsetzers:
Und das sind die Eigenschaften:
Ich bin mir nicht ganz sicher, wie ich diese Zahlen interpretieren soll. Ich plane, den TTL-CMOS-Modus zu verwenden.
Soweit ich das beurteilen kann, beträgt meine Spannung am Ausgang ~ 5 V, wenn Vdd 5 V beträgt, solange der Eingang als 1 (hoch) gilt, was perfekt ist. Wäre eine 3,3-V-Vdd in Ordnung, da Arduino mindestens 3 V benötigt, um einen Pin hoch zu schalten?
Nun zu meiner eigentlichen Frage ... Ich verstehe den Teil Vcc und Vin (Vol, Voh) nicht.
Aus der Tabelle können wir ersehen, dass, wenn Vcc 5 V und Vdd 10 V beträgt, Vin eine logische 0 ist, wenn die an den Eingang angelegte Spannung <= 0,8 V beträgt, dasselbe gilt, wenn Vcc 5 V und Vdd 15 V beträgt.
Soweit ich das beurteilen kann, wird der Eingang als hoch angesehen, wenn mindestens 2 V oder mehr an den Eingang angelegt werden, wenn Vcc = 5 V und Vdd = 10 V / 15 V, aber sowohl Voh als auch Vol ändern sich abhängig von Vdd? Was bedeutet das für meinen Anwendungsfall?
Was ist, wenn ich sowohl für Vcc als auch für Vdd 5 V verwende? Was ist, wenn ich sowohl für Vcc als auch für Vdd 3,3 V verwende? Was ist, wenn ich 3,3 V für Vcc und 5 V für Vdd und umgekehrt verwende? Was passiert in diesen Szenarien? Könnte das bitte jemand ganz einfach erklären? Mir scheint hier etwas zu fehlen, da meine Interpretation für mich keinen Sinn ergibt.
Danke schön!
TL; DR: Verwenden Sie Vcc = 5 V, Vdd = 5 V, TTL-CMOS-Modus, und Sie sollten in Ordnung sein.
„Solange der Eingang als 1 (hoch) gilt, beträgt meine Spannung am Ausgang ~5 V, wenn Vdd 5 V beträgt, was perfekt ist. Wäre eine 3,3-V-Vdd in Ordnung, da Arduino mindestens 3 V benötigt, um a zu drehen Stecknadel hoch?"
Richtig, Sie erhalten eine Ausgabe von ~ 5 V, wenn Sie Vdd = 5 V verwenden. Im TTL-CMOS-Modus müssen Vdd und Vcc jedoch beide mindestens 5 V betragen (Abbildung 4 des Datenblatts). Da der Schaltpunkt der Eingangslogik 1,5 V für Vcc = Vdd = 5 V beträgt, funktioniert dies mit Ihrem 2,7-V-Logikeingang einwandfrei.
"Nun zu meiner eigentlichen Frage... Ich verstehe den Teil Vcc und Vin (Vol, Voh) nicht."
Dieses Datenblatt listet seine Daten auf ziemlich seltsame Weise auf, und es ist nicht ganz klar, was es bedeutet. Meine Interpretation ist, dass "VOL = 1,0 VDC" bedeutet, dass bei Betrieb in diesem Zustand die Ausgangsspannung garantiert weniger als 1 VDC beträgt. Glücklicherweise glaube ich nicht, dass es wirklich ein Problem für Ihre Anwendung ist.
"Der Eingang wird als hoch angesehen, wenn mindestens 2 V oder mehr an den Eingang angelegt werden, wenn Vcc = 5 V und Vdd = 10 V/15 V, aber sowohl Voh als auch Vol sich abhängig von Vdd ändern? Was bedeutet das für meinen Anwendungsfall?"
Ja, Sie interpretieren das richtig. Ignorieren Sie für Ihren Anwendungsfall die Zahlen „Voh und Vol“ im Abschnitt „Eingangsspannung“ und achten Sie stattdessen mehr auf den obersten Abschnitt mit der Bezeichnung „Ausgangsspannung“, der nur besagt, dass Sie Vdd = 5 V verwenden Erhalten Sie ~ 5V Ausgang.
„Was ist, wenn ich 5 V für Vcc und Vdd verwende? Was ist, wenn ich 3,3 V für Vcc und Vdd verwende? Was ist, wenn ich 3,3 V für Vcc und 5 V für Vdd verwende und umgekehrt.“
Siehe auch Abbildung 4. Im TTL-CMOS-Modus müssen Sie 5 V für Vcc und Vdd verwenden. Ich würde sagen, dass die Verwendung von 5 V für beide die richtige Lösung für Ihre Anwendung ist.
Solange Ihnen eine logische Umkehrung nichts ausmacht, können Sie etwas Einfaches wie einen Transistor und zwei Widerstände verwenden.
Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan
Sensorausgangsspannungen über etwa 0,8 V schalten Q1 ein. R2 zieht den Arduino-Eingang auf seine Versorgungsschiene, wenn Q1 ausgeschaltet ist. Wenn Sie einen I/O-Pin-Eingang mit einem programmierbaren Pull-up-Widerstand verwenden, können Sie R2 weglassen. Die meisten Kleinsignal-NPN-BJTs reichen für Q1 aus.
Arduino-Eingänge müssen die angegebenen Logikpegel für den Spielraum erfüllen.
VIL <= 0,3 Vcc max.
VIH >= 0,7 Vcc min
Daher muss die Eingangsrechteckwelle >= 0,4 Vcc und für 5 V oder 0,4 * 5 = 2,0 Vpp sein und Sie haben 2,7 V mit 0,7 V Spielraum.
Alternativ können Sie AC an den Eingang mit R-Vorspannung an Vcc/2 koppeln.
Es gibt viele Level-Shifter-Lösungen für 2,7 V bis 5 V.
Rev B.
Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan
TTL-Eingangsspannungspegel sind >=0,8 V niedrig und >=2,0 V hoch. Der MC14504B akzeptiert diese Logikpegel im TTL-Modus mit Vcc = +5 V. Ihre Signalpegel sind 0 V und 2,7 V, also ist alles in Ordnung.
Der MC14504B hat CMOS-Ausgänge, die von 0 V bis Vdd gehen. Der Arduino arbeitet mit 5 V, also sollten Sie auch Vdd auf +5 V setzen.
Ignacio Vazquez-Abrams
Selvek
0xd4v3
Selvek
0xd4v3
Peter Mortensen