GPIO-UART-Arduino通信


12

私は幸運にもRaspberry PiをArduinoに話させようとしていました。3.3 Vから5 Vへのコンバーターを使用して電圧を交換しています。私は入れなかったLEDを UART TXピンに、そして、それはデータを反転されたように見えます。これが当てはまる場合、Arduinoと通信するためにどの回路が必要ですか?

Cool Components Logic Level Converterを使用しています。3.3 V〜5 Vのトランジスタと5 V〜3.3 Vの抵抗です。

回答:


5

Raspberry PiのGPIOは3.3 Vであり、5 Vトレラントではありません。つまり、それらに5 Vを駆動すると、入力が切断される可能性があります。http://elinux.org/RPi_Low-level_peripheralsにはピンに関する情報があります。

次のボードのいずれかを使用できます。

http://store.nkcelectronics.com/5v-to-33v-logic-level-shifter-bo.html

または、Digi-KeyまたはMouser Electronicsから74LS245を購入して、次のように接続します。

低コストの5 Vから3.3 Vへのコンバーター


3

いくつかのピンがある場合は、各ピンに1つのnチャネルエンハンスメントMOSFETを使用することもできます。異なる電圧のポストRaspberry PiおよびI2Cデバイス、またはI²Cバス仕様の 43ページを参照してください。2本のピンしか必要ないので、これでうまくいくかもしれません。


PiをArduinoに接続するこのアプローチを使用しました。このブログ投稿には、ブレッドボードの写真と自信がない場合の非常に明確な図があります:fritz-hut.com/connecting-an-arduino-and-raspberry-pi
Stefan Mohr

2

5Vから3.3Vへのレベル変換を行うために、またRaspberry Piを保護するためのバッファーとして機能するために、CD4050を使用しています。Arduinoは3.3Vを論理高と見なす必要があるため、3.3Vから5Vに変換する必要はありません(Arduino Webページによると、3Vを超える電圧は論理高と見なされます)。

ここでは、CD4050、Raspberry Pi GPIO UART、およびArduinoを使用した簡単な例をまとめました。http://www.andremiller.net/content/raspberry-pi-and-arduino-via-gpio-uart

コメントは大歓迎です、それは機能していますが、私は間違っているかもしれません:)


1

私は実際に同じ問題に出くわし、Arduinoブートローダーで3.3ボルトで8 MHzのベアボーンatmega328を実行することで解決しました。厳しいタイミング要件がある場合、8 MHzで問題が発生する可能性があります。私自身は、Arduinoを使用してRGB LEDストリップのPWMを生成することのみを計画しているため、pwmの周波数が通常の半分であれば問題ありません。これまでの予備テストでは、Arduinoがメッセージを正常に受信できることが示されました。


1

Arduinoの外部電源を取り外し、ジャンパー線を使用してArduinoのGPIOピン1を5vピンに接続することができる1つの簡単なソリューションがあります。これで、PiとArduinoのUartピンを直接接続できます。私のために働いた。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.