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.