He intentado sin suerte hacer que Raspberry Pi hable con un Arduino. Estoy usando un convertidor de 3.3 V a 5 V para intercambiar voltajes. Puse un LED en el pin UART TX, y parece que estaba invirtiendo los datos. Si esto es cierto, ¿qué circuito necesito para que se comunique con el Arduino?
Estoy usando un convertidor de nivel lógico de componentes geniales . Es un transistor para 3.3 V a 5 V y resistencia para 5 V a 3.3 V.
Estoy usando un CD4050 para hacer la conversión de nivel de 5V a 3.3V y también para actuar como un búfer para proteger mi Raspberry Pi. El Arduino debería ver 3.3V como un alto lógico, por lo que no debería necesitar convertir de 3.3V a 5V (aquí estoy corregido, de acuerdo con la página web de Arduino, cualquier voltaje por encima de 3V se considera lógicamente alto).
He reunido un ejemplo rápido del uso del CD4050, Raspberry Pi GPIO UART y Arduino aquí: http://www.andremiller.net/content/raspberry-pi-and-arduino-via-gpio-uart
Cualquier comentario es bienvenido, está funcionando, pero podría haberlo hecho mal :)
fuente
De hecho, me encontré con el mismo problema y lo resolví ejecutando un atmega328 de barebones con un cargador de arranque Arduino a 3.3 voltios, pero a 8 MHz. Los 8 Mhz pueden causar un problema si tiene requisitos de tiempo estrictos. Yo solo estoy planeando usar el Arduino para generar PWM para una tira de led rgb, por lo que está bien si la frecuencia de pwm es la mitad de lo normal. Mis pruebas preliminares hasta ahora han indicado que Arduino puede recibir el mensaje perfectamente.
fuente
Hay una solución simple: puede eliminar cualquier fuente de alimentación externa de Arduino y conectar el pin GPIO de Raspberry Pi 1 a 5v de Arduino usando un cable de puente de esa manera, la alimentación principal de Arduino será de 3.3v y todos sus pines tendrán 3.3v en lugar de 5v. Ahora puede conectar directamente los pines Uart de Pi y Arduino. Trabajó para mi.
fuente