Parlons Arduino > Trucs & astuces

Cohabitation 5V - 3,3V

<< < (2/3) > >>

Didier44:
J'utilise régulièrement pour piloter mon réseau de test (une boucle !) en Wifi à partir d'une tablette un ESP8266 ou ESP32 relié à un Mega contenant DCC++. Je relie Tx->Rx et donc si je ne me trompe pas du 3.3V vers du 5V.
Sans dommage pour l'instant depuis 2 ans.
Et voila

Didier

trimarco232:
Bonjour,

concernant le mega et les esp, ce n'est pas à faire : l'expérience montre juste que les composants sont solides et que le concepteur a de la chance

concernant le module pololu, un coup d'oeil sur le datasheet du a4990 montre qu'il admet des tensions d'entrées de 0 à 6v et qu'il considère toute tension > 2v comme étant un 1 : il peut donc recevoir les signaux de l'esp32 sans autre forme de procès
le branchement direct des sorties ef1 et ef2 vers l'esp32 est également possible, car fonctionnant en collecteur ouvert. Il faut dans ce cas configurer les entrées de l'esp32 en pull-up

le module pomolu doit être alimenté par la tension du moteur qu'il commande : si ton moteur fonctionne avec 5v, ça le fera

trimarco232:
Rappel important pour Christophe :
t'assurer d'alimenter le module a4990 avec une tension suffisante pour faire fonctionner le moteur,
et dans tous les cas supérieure à 6v, tension de fonctionnement minimum du module avec 5v comme je l'ai écrit ci-avant, ça ne marche pas

trimarco232:
cas général, pour synthétiser :
sortie 5v vers entrée 3v3 :
il y a un risque d’abîmer l'émetteur et le récepteur, à prendre en compte par une des méthodes suivantes, par ordre préférentiel décroissant :
- s'assurer que la broche concernée du récepteur est du type "5 volts tolerant"
- utiliser un convertisseur comme préconisé par Dominique
- utiliser un diviseur de tension, suggestion de Tony04, tenir compte de la consommation en entrée du récepteur pour le calcul des valeurs
- utiliser une simple résistance en série, en s'assurant que l'entrée du récepteur est munie d'une diode de protection vers son alimentation 3v3
sortie 3v3 vers entrée 5v :
il n'y a normalement aucun risque pour les composants. Toutefois le fonctionnement peut se trouver faussé pour les sortie d'un niveau binaire haut. Il faut s'assurer que le paramètre de niveau de tension haut minimum de l'émetteur est supérieur au paramètre de tension haut minimum du récepteur
- dans notre cas, le Voh Min de l'esp32 est 0,8*vcc = 0,8*3v3 = 2v64   ;   le Vih Min du a4990 est de 2v   ;  on a donc Voh Min > Vih Min, ça marche
- si la condition Voh Min > Vih Min n'était pas remplie -> utiliser un convertisseur comme préconisé par Dominique
...
notez que quand je dis qu'il n'y a normalement pas de risque, il faut aussi comprendre les craintes de Christophe. Deux des entrées du a4990 sont en effet munies d'un pull-up destiné à couper le moteur quand l'esp32 est en mode reset, sorties en haute impédance (les 2 autres sont en pull-down). Le pull-up est constitué d'un générateur de courant qui présente effectivement une tension > 6v à la sortie de l'esp32. Mais, c'est voulu, ce courant est suffisamment faible pour ne pas constituer le moindre danger pour l'esp32 ou tout autre émetteur

bobyAndCo:
Merci à tous pour vos différentes réponses. Le sujet est loin d'être anecdotique. Je pense que l'utilisation de transistors est sans doute la meilleure dans les cas où c'est nécessaire. Il est vrai que le petit composant dont parle Dominique peut être bien pratique alors. Cependant, je pense qu'il ne faut pas s'effrayer de souder un 2N2222 et une ou deux resistances.

Merci Trimarco pour l'analyse très complète que tu fais. Chacun pouvant retrouver dans les différents cas de figure que tu énonces celui qui le concerne. J'ai pour ma part la réponse à ma question concernant le 3,3V vers 5V qui ne nécessite pas de composants particuliers. Je note bien la question des niveaux de tension pour les niveaux logiques, mais effectivement ici ça doit le faire.

Bien amicalement à tous.

Christophe

Navigation

[0] Index des messages

[#] Page suivante

[*] Page précédente

Utiliser la version classique