Communication GPIO-UART-vers Arduino

12

J'ai essayé sans succès de faire parler le Raspberry Pi à un Arduino. J'utilise un convertisseur 3,3 V-5 V pour permuter les tensions. J'ai mis une LED sur la broche UART TX, et il semble qu'il inversait les données. Si cela est vrai, de quel circuit ai-je besoin pour le faire communiquer avec l'Arduino?

J'utilise un convertisseur de niveau logique Cool Components . C'est un transistor pour 3,3 V à 5 V et une résistance pour 5 V à 3,3 V.

Setithing
la source

Réponses:

3

Vous pouvez également utiliser un seul MOSFET d'amélioration à n canaux pour chaque broche si vous en avez quelques-uns autour. Voir les appareils post Raspberry Pi et I2C de tension différente , ou page 43 dans la spécification du bus I²C . Comme vous n'avez besoin que de deux broches, cela pourrait faire l'affaire pour vous.

teraquendya
la source
J'ai utilisé cette approche en connectant mon Pi à mon Arduino. Cet article de blog contient des photos d'une maquette et un diagramme très clair si vous n'êtes pas super confiant: fritz-hut.com/connecting-an-arduino-and-raspberry-pi
Stefan Mohr
2

J'utilise un CD4050 pour faire la conversion de niveau de 5V à 3,3V et aussi pour servir de tampon pour protéger mon Raspberry Pi. L'Arduino devrait voir 3,3 V comme un niveau logique élevé, vous ne devriez donc pas avoir besoin de convertir de 3,3 V à 5 V (je me corrige ici, selon la page Web de l'Arduino, toute tension supérieure à 3 V est considérée comme logique élevée).

J'ai rassemblé un exemple rapide d'utilisation du CD4050, du Raspberry Pi GPIO UART et d'Arduino ici: http://www.andremiller.net/content/raspberry-pi-and-arduino-via-gpio-uart

Tous les commentaires sont les bienvenus, cela fonctionne, mais j'aurais peut-être mal fait :)

Andre Miller
la source
1

En fait, j'ai rencontré le même problème et l'ai résolu en exécutant un atmega328 barebones avec un chargeur de démarrage Arduino à 3,3 volts, mais à 8 MHz. Le 8 Mhz peut causer un problème si vous avez des exigences de synchronisation strictes. Moi-même, je ne prévois que d'utiliser l'Arduino pour générer du PWM pour une bande LED RVB, donc ça va si la fréquence du PWM est la moitié de la normale. Jusqu'à présent, mes tests préliminaires ont indiqué que l'Arduino peut très bien recevoir le message.

Gus Reiter
la source
1

Il existe une solution simple, vous pouvez supprimer toute source d'alimentation externe d'Arduino et connecter la broche GPIO 1 du Raspberry Pi à la broche Arduino de 5 V à l'aide d'un fil de pontage de cette façon, l'alimentation principale de l'Arduino sera de 3,3 V et toutes ses broches auront 3,3 V au lieu de 5 V. Vous pouvez maintenant connecter directement les broches Uart de Pi et Arduino. A travaillé pour moi.

Tirath Singh
la source