¿Es necesario conectar el divisor de voltaje de RaspberryPi y Leonardo?

1

Según este artículo cuando conecte un RPi a un Uno a Se necesita un divisor de voltaje debido a la diferencia de voltaje.

¿Se aplica lo mismo a un RPi y Leonardo?

    
pregunta Bachalo

2 respuestas

1

En general, sí, lo que lees en ese artículo también se aplica a Leonardo.

Tanto el Arduino Uno como el Arduino Leonardo son placas de 5 V: todas las E / S funcionan aproximadamente entre 0 V y 5 V. Como RJR se menciona en los comentarios, es posible hacer Arduinos que operan a 3.3 V, pero eso está más allá de esta pregunta.

Para conectar el RaspberryPi con cualquier placa de 5 V, es posible que necesite algunos circuitos para ajustar los voltajes, pero depende de hacia dónde vayan los datos.

Si su Arduino está enviando señales al RPi, puede usar un cambiador de nivel, pero en realidad solo necesita un divisor de voltaje, como se muestra en el artículo. Un divisor de voltaje garantizará que el voltaje de la salida sea una fracción de la entrada. Un divisor simple como, digamos, 10 K entre el Arduino y el RPi (en serie) y 15 K entre la entrada RPi y el suelo (en paralelo, se podría decir) dará una relación de 2/3, por lo que 5 V en produce 3.3 V out (y 0 V in es todavía 0 V out). No hay forma de evitar esto, no ejecute señales de 5 V en la Raspberry Pi.

Actualización: Si su RPi está enviando señales al Arduino, usted necesitará podría usar desplazadores de nivel activos como el que Shannon mencionó o hacer suyo con algunos transistores. Sin embargo, como Chris mencionó en los comentarios, los niveles lógicos del microcontrolador en el Leonardo son tales que el voltaje de salida de alto nivel de una Raspberry Pi (mínimo de 2.4 V, según esta página ) en realidad se registrará como alta (es decir, un "1"), como el umbral no es superior a 0.2 * VCC + 0.9 V, que sería 1.9 V para VCC = 5 V, como se muestra a continuación ( source ):

Porlotanto,lasseñalesquesonsoloseñalesunidireccionalesquevandesdelaRaspberryPiAlaArduinononecesitanunaresistenciaoningúncircuitoexterno.Sinembargo,querrásermuycuidadosoalhaceresto;sielArduinocontrolaesaentradaa5Vporunmomentomientrasseinicializa,aúnpodríadañarlairreparablementedelaRaspberryPi.Creoqueelartículoalquehasvinculadotienelamismainformación,yrecomiendoestarmuysegurodeloqueestáshaciendosieligesestaruta.Dichoesto,esdelejoslaformamásconvenienteyelegante:soloquieroasegurarmedequenadiequemasuPi(e).

SilacomunicaciónesbidireccionalcomoI2C,tendrápuedenecesitaralgomásdetallado,perodadalainformaciónanterior,diríaqueseríacompletamenteposibleparaejecutarI2CentreunaRaspberryPiyunLeonardosiemprequelaresistenciadepull-upestéconectadaa3.3Vno5V,yqueelArduinonuncallevelalíneaalmáximo.EstopodríasermáspeligrosoporqueelpindeArduinoavecesestaráenmododesalida,porloqueesposiblequedeseetenermáscuidadosiusaalgocomoPinMode()oDigitalWrite()(perosupongoquehaybibliotecasI2CparaArduinoquetomanestoencuenta).

Engeneral,lainformaciónproporcionadaeneseartículodebesercorrectatantoparaelLeonardcomoparaelUno,peronuncaestádemáshacerunadobleverificación.Además,sideseateneruncuidadoespecial,puedeconsiderarusarundiodoZenerparafijarlatensiónpordebajode3.3V. Aquí hay un artículo que parece tener información sobre este y cualquier otro método que hice y no hice. Mención sobre cómo conectar circuitos de 3,3 V y 5 V. Buena suerte!

    
respondido por el krs013
0

Sí, el Leonardo aún usa la lógica de 5 V como el Arduino Uno. Buscarás un desplazador de nivel lógico como éste

    
respondido por el Funkyguy

Lea otras preguntas en las etiquetas