GPIO-UART-zu-Arduino-Kommunikation


12

Ich habe ohne Glück versucht, den Raspberry Pi dazu zu bringen, mit einem Arduino zu sprechen. Ich verwende einen 3,3-V-zu-5-V-Wandler, um die Spannungen zu tauschen. Ich habe eine LED auf den UART TX-Pin gelegt, und es sieht so aus, als würden die Daten invertiert. Wenn dies zutrifft, welche Schaltung brauche ich, um mit dem Arduino zu kommunizieren?

Ich verwende einen Cool Components Logic Level Converter . Es ist ein Transistor für 3,3 V bis 5 V und ein Widerstand für 5 V bis 3,3 V.

Antworten:



3

Sie können auch einen einzelnen n-Kanal-Anreicherungs-MOSFET für jeden Pin verwenden, wenn Sie einige davon in der Nähe haben. Weitere Informationen finden Sie auf den Post- Raspberry-Pi-Geräten und I2C-Geräten mit unterschiedlicher Spannung oder auf Seite 43 in der I²C-Busspezifikation . Da Sie nur zwei Stifte benötigen, ist dies möglicherweise der richtige Trick für Sie.


Ich habe diesen Ansatz verwendet, um meinen Pi mit meinem Arduino zu verbinden. Dieser Blog-Beitrag enthält Fotos von einem Steckbrett und ein sehr klares Diagramm, wenn Sie nicht besonders sicher sind: fritz-hut.com/connecting-an-arduino-and-raspberry-pi
Stefan Mohr

2

Ich verwende einen CD4050, um die Pegelumwandlung von 5 V auf 3,3 V durchzuführen und gleichzeitig als Puffer zum Schutz meines Raspberry Pi zu fungieren. Der Arduino sollte 3,3 V als logisches Hoch anzeigen, sodass Sie nicht von 3,3 V auf 5 V konvertieren müssen (ich stehe hier korrigiert, laut der Arduino-Webseite wird jede Spannung über 3 V als logisches Hoch angesehen).

Ich habe hier ein kurzes Beispiel für die Verwendung des CD4050, Raspberry Pi GPIO UART und Arduino zusammengestellt: http://www.andremiller.net/content/raspberry-pi-and-arduino-via-gpio-uart

Kommentare sind willkommen, es funktioniert, aber ich hätte es vielleicht falsch gemacht :)


1

Ich bin tatsächlich auf dasselbe Problem gestoßen und habe es behoben, indem ich einen Barebones-atmega328 mit einem Arduino-Bootloader bei 3,3 Volt, aber 8 MHz, ausgeführt habe. Die 8 Mhz können ein Problem verursachen, wenn Sie strenge Timing-Anforderungen haben. Ich selbst plane nur, mit dem Arduino PWM für einen RGB-LED-Streifen zu generieren. Es ist also in Ordnung, wenn die Frequenz der PWM halb so hoch ist wie normal. Meine bisherigen vorläufigen Tests haben ergeben, dass der Arduino die Nachricht einwandfrei empfangen kann.


1

Es gibt eine einfache Lösung, mit der Sie jede externe Stromquelle von Arduino entfernen und den GPIO-Pin 1 von Raspberry Pi mit dem 5-V-Pin von Arduino über ein Überbrückungskabel verbinden können, sodass die Hauptstromversorgung von Arduino 3,3 V beträgt und alle Pins 3,3 V anstelle von 5 V haben. Jetzt können Sie Uart-Pins von Pi und Arduino direkt verbinden. Hat für mich gearbeitet.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.