¿Cómo puedo saber si estoy seguro de quemar mi robot con más voltaje?

4

Tengo un robot animatronic Wowwee con el que he estado haciendo pequeños ajustes, con el objetivo de conectarlo a mi arduino para poder controlarlo desde mi computadora.

El problema es que, con un multímetro, he probado que el voltaje en las líneas / pines de control del robot es 3.3v; pero el arduino produce 5v a través de sus pines.

¿Conectar el arduino y usar sus pines de 5 voltios dañará al robot? Y, dado que es probable que esto sea subjetivo para la electrónica específica del robot, ¿hay alguna manera de probar / ver / analizar si estaría bien usar una señal digital de 5 V en sus líneas?

Si no, he estado investigando la posibilidad de simplemente poner una resistencia en cada uno de los pines de salida del arduino para reducir el voltaje a alrededor de 3.3v (aunque no estoy seguro de que pueda necesitar más información). ¿Solución de profundidad, ya que eso "corrompería" la señal digital?).

    
pregunta Coldblackice

3 respuestas

7

Salidas de Arduino

Algunos controladores tienen entradas "tolerantes a 5 V", por lo que puede proporcionar 5 V desde su Arduino y el robot registrará una lógica alta y no se verá afectada negativamente por la señal de sobretensión. No estoy seguro si el robot tiene esta característica; probablemente tendrás que revisar la hoja de datos del microcontrolador en el robot. Si no tiene esta función, sí, puede salirse con un 5V - > Convertidor 3.3V utilizando un divisor de tensión.

Necesitas dos resistencias en cada pin de salida, en esta configuración:

\$V_{in}\$essuseñalde5VdelArduino,\$V_{out}\$debeserde3.3Vomenos.Estosvoltajesestánrelacionadosporlaecuación:

$$V_{out}=V_{in}*\frac{R_2}{R_1+R_2}$$

Lesugieroqueuse\$R_2=33\mbox{}k\Omega\$y\$R_1=22\mbox{}k\Omega\$paraunasalidasegurade3V.Otrascombinaciones,oresistenciasdemayortolerancia,podríanacercarloa3.3Voreducirlapotenciaqueconsumenestasresistencias,peroprobablementenoseanecesario.

EntradasArduino

Noestoysegurodecuáleslainterfazeneserobot(yaquenoproporcionóunahojadedatosounesquema),perosupongoquehabráalgunasseñalesquesonemitidasporelrobotyqueseusancomoentradasalarduino.

Lassalidasdelrobotestarána3.3Vomenos,mientrasqueArduino(segúnlatabla"Características de CC" en la hoja de datos de ATmega) espera que la siguiente desigualdad se mantenga para la entrada de alto voltaje \ $ V_ {IH} \ $:

$$ V_ {CC} + 0.5 > = V_ {IH} > = 0.6 * V_ {CC} $$

En la práctica, esta desigualdad significa que su Arduino requiere entradas mínimas de 3 V antes de registrar una señal de lógica alta. El controlador del robot puede cumplir estos requisitos, o puede que no. (Tenga en cuenta que el bus I2C requiere \ $ 0.7 * V_ {CC} \ $, o 3.5V, lo que no sucederá).

Por ejemplo, un Arduino de 3.3 V solo puede proporcionar ~ 2.4 V como una lógica alta. No se puede conectar un Arduino 3.3V a un Arduino 2.4V 5V en un pin de entrada que el Arduino 5V ignoraría.

Qué hacer

En primer lugar, busque y lea las hojas de datos de los controladores de su robot y Arduino. La hoja de datos ATmega32 de Arduino está aquí .

Si el controlador del robot tolera entradas de 5 V y proporciona salidas de 3 V o más, entonces ya está listo.

Si no, necesita un circuito de traducción de nivel o de cambio de nivel . Esto se puede crear a partir de elementos discretos como resistencias y transistores (especialmente fácil en la dirección 5V - > 3.3V), desde traductores de nivel genérico como 74ALVC , o de traductores específicos del protocolo como PCA9306 para I2C.

Alternativamente, use un microcontrolador que funcione a 3.3V. Sparkfun vende una placa "Arduino Pro" de 3.3V, o PJRC ofrece una 3.3V Teensy . Si estás dispuesto a alejarte del mundo de Arduino, hay muchos procesadores que funcionan a 3.3V.

    
respondido por el Kevin Vermeer
2

Lo mejor sería buscar en la hoja de datos del robot. Debe decir cuáles son los niveles de entrada altos de lógica mínima y máxima. Por ejemplo, algunos sistemas de 3.3V tienen entradas "tolerantes a 5V". Sin embargo, sin ningún dato definitivo, debe asumir que no puede manejar más de los 3.3V que emite.

No, una resistencia individual no es suficiente, ya que aparentemente no tiene una especificación de consumo de corriente mínima garantizada para una entrada digital en lógica alta. Por lo tanto, no puede saber cuánto voltaje caerá una resistencia de una sola serie. Lo que necesita son dos resistencias en una configuración de divisor de voltaje. 3.3V está cerca de 2/3 de 5V, por lo que 1 kΩ en serie seguido de 2 kΩ a tierra debe hacer el truco. El divisor de resistencia dibujará 5V / 3 kΩ = 1.7 mA de la salida arduino. Espero que esté bien dentro de sus capacidades, pero eso es para que lo compruebes.

    
respondido por el Olin Lathrop
2

¿Qué robot Wowee tiene?
Hay un número significativo y su los circuitos internos pueden variar.

Aquí hay un video y una página sobre la interfaz con el Woweee Elvis Robot : se ve útil.

También hay un video aquí

No hay certeza de que se pueda usar una señal de 5V en un sistema 3V3 y puede causar daños. Puede convertir de 5V a 3V3 con un divisor de dos resistencias.
 R1 desde Arduino a Wowee pin.
 R2 desde el pin de entrada de Wowee al suelo.
  R1 cae (5-3.3) = 1.7V.
 R2 cae 3.3V - asumiendo que la resistencia de entrada de Arduino es alta (lo que probablemente dejó de ser.)  R1: R2 = 1.7: 3.3 ~ = 1.65: 3.3 = 1: 2.

Entonces, si R1 es un poco más que R2 / 2, los 5V se dividirán a algo menos de 5V. por ejemplo,

1k2: 2k2. Vout = 5 x 2.2 / (1.2 + 2.2) = 3.24V. Igualmente 12k: 22K  1k5: 2k7 = 3.21V igualmente 15k: 27K. etc

Si usa resistencias del 1%, probablemente estará lo suficientemente cerca de estos valores.

Resistencia única:

El uso de una resistencia de entrada única probablemente no funcionará. Dos resistencias comparten una corriente común y, por lo tanto, comparten el voltaje total en proporción a sus resistencias de acuerdo con la ley de Ohm.

  • V = I x R.

PERO si el Arduino ADC tiene una resistencia de entrada infinita (o muy alta), la resistencia muy alta representará la mayor parte de la resistencia, así como la caída de la mayor parte del voltaje. Como no sabemos cuál es la resistencia de entrada de Aruino ADC, se asume que es "alto", ya que ese es el objetivo normal de un ADC, y esto lo "inundamos" con un divisor de bajo voltaje. El voltaje DIVIDE el voltaje en la relación de los voltajes. Una resistencia única no es un DIVIDER, por lo que no sirve.

Ejemplo de agua: si aplica 100 psi en un extremo de una tubería de agua de 100 metros y tapa el extremo lejano, si no hay flujo, entonces la presión en el extremo lejano AÚN será de 100 psi, independientemente de si el tubo es de 0.5 "o 3" o 12 "de diámetro. PERO si permite el flujo de corriente, se producirá una caída de presión. El flujo de corriente de agua a través de la resistencia de la tubería causa una caída de presión de agua. Aquí el flujo de corriente produce una caída de voltaje. Si el flujo es tal que, por ejemplo, la caída de 50 psi se produce en la tubería y, a la mitad, la caída será de aproximadamente 25 psi y el 20% del recorrido será de aproximadamente 5 psi

Elvis página: enlaces a here ?

    
respondido por el Russell McMahon

Lea otras preguntas en las etiquetas