Comunicación GPIO-UART-a-Arduino

12

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.

Setithing
fuente

Respuestas:

3

También puede usar un único MOSFET de mejora de n canales para cada pin si tiene algunos de esos. Vea la publicación Raspberry Pi y dispositivos I2C de diferente voltaje , o la página 43 en la especificación del bus I²C . Dado que solo necesita dos pines, esto podría ser el truco para usted.

teraquendya
fuente
Usé este enfoque conectando mi Pi a mi Arduino. Esta publicación de blog tiene fotos de una placa de pruebas y un diagrama muy claro si no estás muy seguro: fritz-hut.com/connecting-an-arduino-and-raspberry-pi
Stefan Mohr
2

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 :)

Andre Miller
fuente
1

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.

Gus Reiter
fuente
1

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.

Tirath Singh
fuente