Conexión de microcontroladores a través de GPIO

Esta es probablemente una pregunta básica para la mayoría de las personas aquí, pero soy nuevo en la electrónica y tiendo a aprender con el ejemplo, ¡así que pensé que era una buena pregunta!

Tengo una placa llamada Nano Pi Neo Plus 2 que es muy similar a una Raspberry Pi, solo que con un factor de forma más pequeño y más barata; considérala como una imitación china;)

También tengo un Arduino Nano.

Quiero enviar valores booleanos desde el Nano Pi al Arduino Nano, y después de investigar diferentes protocolos de comunicación, decidí usar GPIO simple y encenderlos y apagarlos para representar booleanos verdadero/falso.

Todo bien hasta ahora: encontré algunos ejemplos aproximados en Internet y conecté todo. ¡Desafortunadamente, ya he explotado un par de Arduino Nanos en el proceso!

Aquí es donde mi conocimiento de electrónica es muy limitado. No estoy seguro de si necesito resistencias en los pines GPIO (supongo que las necesito para evitar que exploten), pero no sé si deberían subir, bajar y qué valores (no tengo idea de cómo calcularlos) .

Estoy alimentando ambas placas con una sola fuente de alimentación de 5V. He medido el voltaje en los pines Nano Pi GPIO y la caída de voltaje fue de ~3.3v.

¿Podría alguien explicarme qué está mal con el circuito y los pasos que seguiría para calcular la configuración y los valores de la resistencia?

Este es el diseño de placa de pruebas que estoy usando actualmente. No pude encontrar una parte de Nano Pi en Fritzing, así que usé una Raspberry Pi para mostrar cómo se conectan.

Diseño actual

Aquí está el diseño de la placa de pruebas Fritzing si eso ayuda

La imagen realmente no ayuda, un esquema de cómo lo ha configurado sería mejor. No estoy seguro de lo que quiere decir con "la caída de voltaje fue ~ 3V3". ¿Quiere decir que los pines estaban en 3V3 o 1V7? Lo más probable es que haya pensado que tiene pines configurados como salidas en ambos y eso está causando problemas. No hay nada malo en conectar GPIO directamente mientras uno sea de salida y el otro de entrada.

Respuestas (3)

Como se menciona en el comentario, un esquema ayudaría. Además de eso: tan pronto como leo 'Arduino' y 'Pi' en la misma pregunta, todo mi cabello comienza a erizarse porque usan diferentes voltajes de E/S. Los Pis son de 3,3 voltios, los Arduinos son de 5 voltios. Estoy muy sorprendido de que tu Pi no explote.
En general, no está de más conectar los controladores mediante resistencias. La impedancia de entrada de un controlador es muy alta, por lo que no importará agregar una resistencia de 2.2K durante la operación. Pero protege sus controladores si tiene dos salidas conectadas.
Volviendo a la diferencia de voltaje: puede conectar de manera segura una salida del Pi a una entrada en su Arduino, pero como se mencionó, agregar una resistencia en serie es una precaución de seguridad.
Al revés, tienes que reducir el voltaje. Lo más simple y económico es usar dos resistencias como divisor de voltaje. Tienes que pasar de 5V a 3.3V que es una reducción de 0.66. Recomendaría 1200 ohmios más 2200 ohmios.

esquemático

simular este circuito : esquema creado con CircuitLab

Otra forma es un cambiador de nivel barato : ¡es una solución bidireccional simple!ingrese la descripción de la imagen aquí

Las respuestas de solo enlace no son buenas. La página del producto a la que se vinculó podría eliminarse y luego la respuesta se vuelve irrelevante. Podría ser una buena idea editar la respuesta para que se sostenga por sí sola o eliminarla antes de que reciba votos negativos.
Ok, imagen recién agregada

La mejor manera de hacer esto en general es usar un traductor de voltaje dual Vdd como el SN74AVC4T245 . Hay muchas piezas diferentes, pero recomiendo una con suministros dobles de Vdd que cubran los rangos que necesita y aquellas con una entrada para controlar la dirección (las bidireccionales que cambian automáticamente están disponibles pero dependen de una unidad de salida alta para forzar el cambio).

Conectar la salida de 5 V de tu Arduino a las entradas de 3,3 V de la Pi puede causar daños permanentes o varios tipos interesantes de funcionamiento incorrecto.