Wie kann ich wissen, ob ich sicher bin, meinen Roboter mit mehr Spannung auszubrennen?

Ich habe einen Wowwee-Animatronic-Roboter, an dem ich herumgebastelt habe, mit dem Ziel, mein Arduino daran anzuschließen, damit ich ihn von meinem Computer aus steuern kann.

Das Problem ist, dass ich mit einem Multimeter getestet habe, dass die Spannung an den Steuerleitungen / Pins des Roboters 3,3 V beträgt; aber das Arduino gibt 5V über seine Pins aus.

Wird das Anschließen des Arduino und die Verwendung seiner 5-V-Stifte den Roboter beschädigen? Und da dies wahrscheinlich subjektiv für die spezifische Elektronik des Roboters ist, gibt es eine Möglichkeit, zu testen / zu sehen / zu analysieren, ob es in Ordnung wäre, ein digitales 5-V-Signal in seinen Leitungen zu verwenden?

Wenn nicht, habe ich die Möglichkeit untersucht, einfach einen Widerstand an jedem der Ausgangspins des Arduino anzubringen, um die Spannung wieder auf etwa 3,3 V zu senken (obwohl ich nicht sicher bin, ob ich möglicherweise eine tiefer gehende Lösung benötige, als würde das das digitale Signal "korrumpieren"?).

Antworten (3)

Arduino-Ausgänge

Einige Controller haben "5-V-tolerante" Eingänge, sodass Sie 5 V von Ihrem Arduino bereitstellen können und der Roboter ein logisches Hoch registriert und nicht durch das Überspannungssignal beeinträchtigt wird. Ich bin mir nicht sicher, ob der Roboter diese Funktion hat; Sie müssen wahrscheinlich das Datenblatt für den Mikrocontroller im Roboter überprüfen. Wenn diese Funktion nicht vorhanden ist, können Sie mit einem 5 V -> 3,3 V-Wandler mit Spannungsteiler davonkommen.

In dieser Konfiguration benötigen Sie zwei Widerstände an jedem Ausgangspin:

Geben Sie hier die Bildbeschreibung ein

v ich N ist Ihr 5V-Signal vom Arduino, v Ö u T muss 3,3 V oder weniger betragen. Diese Spannungen hängen durch die Gleichung zusammen:

v Ö u T = v ich N R 2 R 1 + R 2

Ich schlage vor, dass Sie verwenden könnten R 2 = 33   k Ω Und R 1 = 22   k Ω für eine sichere Ausgabe von 3V. Andere Kombinationen oder Widerstände mit höherer Toleranz könnten Sie näher an 3,3 V bringen oder den Stromverbrauch dieser Widerstände reduzieren, aber das ist wahrscheinlich nicht notwendig.

Arduino-Eingänge

Ich bin mir nicht sicher, was die Schnittstelle an diesem Roboter ist (da Sie kein Datenblatt oder Schema bereitgestellt haben), aber ich vermute, dass es einige Signale geben wird, die vom Roboter ausgegeben und als Eingaben für das Arduino verwendet werden .

Die Ausgänge des Roboters liegen bei 3,3 V oder weniger, während der Arduino (gemäß der Tabelle "DC-Eigenschaften" im ATmega-Datenblatt) erwartet, dass die folgende Ungleichung für die Eingangshochspannung gilt v ICH H :

v C C + 0,5 >= v ICH H >= 0,6 v C C

Praktisch bedeutet diese Ungleichheit, dass Ihr Arduino mindestens 3 V Eingänge benötigt, bevor er ein logisch hohes Signal registriert. Die Steuerung des Roboters kann diese Anforderungen erfüllen oder auch nicht. (Beachten Sie, dass der I2C-Bus erfordert 0,7 v C C , oder 3,5 V, was nicht passieren wird).

Beispielsweise kann ein 3,3-V-Arduino nur ~2,4 V als logisches Hoch liefern. Sie können einen 3,3-V-Arduino nicht an einen 5-V-Arduino anschließen, 2,4 V an einem Eingangspin würden vom 5-V-Arduino ignoriert.

Was zu tun ist

Suchen und lesen Sie in erster Linie die Datenblätter für die Controller auf Ihrem Roboter und Arduino. Das Datenblatt des Arduino ATmega32 finden Sie hier .

Wenn die Robotersteuerung 5-V-Eingänge verträgt und 3-V- oder höhere Ausgänge liefert, dann können Sie loslegen.

Wenn nicht, benötigen Sie eine Pegelumsetzungs- oder Pegelverschiebungsschaltung . Dies kann aus diskreten Elementen wie Widerständen und Transistoren (besonders einfach in Richtung 5 V -> 3,3 V), aus generischen Pegelumsetzern wie dem 74ALVC oder aus protokollspezifischen Umsetzern wie dem PCA9306 für I2C erstellt werden.

Verwenden Sie alternativ einen Mikrocontroller, der mit 3,3 V betrieben wird. Sparkfun verkauft ein 3,3-V-Board "Arduino Pro", oder PJRC bietet ein 3,3-V-Teensy an . Wenn Sie bereit sind, sich von der Arduino-Welt zu entfernen, gibt es viele Prozessoren, die mit 3,3 V laufen.

Fantastische, ausführliche Informationen; sehr geschätzt.

Am besten schaust du im Datenblatt des Roboters nach. Es sollte sagen, was die minimalen und maximalen logisch hohen Eingangspegel sind. Beispielsweise haben einige 3,3-V-Systeme "5-V-tolerante" Eingänge. Ohne definitive Daten müssen Sie jedoch davon ausgehen, dass es nicht mehr als die 3,3 V verarbeiten kann, die es ausgibt.

Nein, ein einzelner Widerstand reicht nicht aus, da Sie anscheinend keine garantierte Mindeststromaufnahme für einen digitalen Eingang bei logisch hoch haben. Sie können daher nicht wissen, wie viel Spannung an einem einzelnen Vorwiderstand abfällt. Was Sie brauchen, sind zwei Widerstände in einer Spannungsteilerkonfiguration. 3,3 V sind fast 2/3 von 5 V, also sollte 1 kΩ in Reihe gefolgt von 2 kΩ gegen Masse ausreichen. Der Widerstandsteiler zieht 5 V / 3 kΩ = 1,7 mA vom Arduino-Ausgang. Ich gehe davon aus, dass das innerhalb seiner Möglichkeiten liegt, aber das müssen Sie überprüfen.

Ahh, gut zu wissen; Dies hilft, die folgende Antwort besser zu verstehen, die ich theoretisch zu durchdenken versucht habe. Super, danke für die prompten Antworten! Ich beginne meine digitale Reise auf der Suche nach dem illusorischen Datenblatt :)
PS - irgendein Grund, warum meine Zeilen/Absätze nicht korrekt angeordnet sind? Ich bin neu hier, aber nachdem ich die Markdown-Informationen gelesen habe, sollte ein doppeltes Leerzeichen am Ende einer Zeile nicht eine neue Zeile ausschließen? Muss ich die Verwendung von Markdown irgendwo aktivieren?
@Coldblackice - Kommentare sind für kurze Antworten; sie unterstützen keine Zeilenumbrüche. Der für Kommentare aktivierte Markdown ist nur eine kleine Teilmenge der vollständigen Funktionen: Sie haben [link](http://example.com), _italic_, **bold**, and `code`. Weitere Informationen finden Sie in der Kommentarformatierung .

Welchen Wowee-Roboter hast du?
Es gibt eine beträchtliche Anzahl und ihre interne Schaltung kann variieren.

Hier ist ein Video und eine Seite zur Anbindung an den Woweee Elvis Robot – sieht nützlich aus.

Auch hier ein Video

Es besteht keine Gewissheit, dass ein 5-V-Signal in einem 3V3-System verwendet werden kann und Schäden verursachen kann. Sie können mit einem Teiler mit zwei Widerständen von 5 V auf 3 V3 umwandeln.
R1 von Arduino zu Wowee-Pin.
R2 vom Wowee-Eingangspin zur Masse.
R1 fällt (5-3,3) = 1,7 V.
R2 fällt um 3,3 V ab - vorausgesetzt, der Arduino-Eingangswiderstand ist hoch (was wahrscheinlich ist.
R1: R2 = 1,7: 3,3 ~ = 1,65: 3,3 = 1: 2.

Wenn also R1 etwas größer als R2/2 ist, werden die 5 V auf etwas weniger als 5 V geteilt. z.B

1k2 : 2k2. Vout = 5 x 2,2 / (1,2 + 2,2) = 3,24 V. Gleich 12k:22K 1k5:2k7 = 3,21V gleich 15k:27K. usw

Wenn Sie 1% Widerstände verwenden, werden Sie wahrscheinlich nahe genug an diesen Werten liegen.

Einzelwiderstand:

Die Verwendung eines einzelnen Eingangswiderstands wird wahrscheinlich nicht funktionieren. Zwei Widerstände teilen sich einen gemeinsamen Strom und teilen sich somit die Gesamtspannung proportional zu ihren Widerständen gemäß dem Ohmschen Gesetz.

  • V = I x R.

ABER wenn der Arduino ADC einen unendlichen (oder sehr hohen) Eingangswiderstand hat, stellt der sehr hohe Widerstand den größten Teil des Widerstands dar und lässt den größten Teil der Spannung fallen. Da wir nicht wissen, wie hoch der Eingangswiderstand des Aruino-ADC ist, wird angenommen, dass er "hoch" ist, da dies das normale Ziel eines ADC ist, und wir "überschwemmen" ihn mit einem Niederspannungsteiler. Die Spannung teilt die Spannung im Verhältnis der Spannungen. Ein einzelner Widerstand ist kein DIVIDER und nützt nichts.

Wasserbeispiel: Wenn Sie 100 psi an einem Ende einer 100-Meter-Wasserleitung anwenden und das andere Ende verschließen, beträgt der Druck am anderen Ende immer noch 100 psi, wenn kein Durchfluss vorhanden ist, unabhängig davon, ob das Rohr 0,5 Zoll oder 3 Zoll groß ist " oder 12" im Durchmesser. ABER wenn Sie einen Stromfluss zulassen, tritt ein Druckabfall auf. Der Wasserstromfluss durch den Rohrwiderstand verursacht einen Wasserdruckabfall. Hier verursacht der Stromfluss einen Spannungsabfall. Wenn der Durchfluss so ist, dass beispielsweise ein Abfall von 50 psi auftritt Rohr dann auf halbem Weg entlang des Gefälles etwa 25 psi und 20% des Weges entlang etwa 5 psi

Elvis -Seite – Links hierher ?

Danke für die Info. Es ist der Elvis, den ich habe. Warum brauchen Sie aus Neugier zwei Widerstände? Würde der erste Widerstand von arduino->Elvis nicht die ganze Arbeit erledigen und die Spannung auf 3,3 V zurückschneiden? Wofür würde ein weiterer Widerstand gegen Masse benötigt? Und während die Mathematik Ihrer Erklärung einfach zu befolgen war, ging meine elektronische Rostigkeit im "Was / Warum" verloren - Was ist die Begründung für die Verhältnisse zwischen Widerständen? Danke für die Hilfe. Übrigens, was die beiden oben verlinkten Elvis-Artikel betrifft – fehlen ihnen Informationen? Haben Sie kommentiert, dass sie anscheinend abgeschnitten wurden?
@Coldblackice - Siehe Ergänzung am Ende der Antwort.