Raspberry pi GPIO入力ピンがランダムな値を与える


12

私は最近、Raspberry Piでたくさん遊んでいます。しかし、私には問題があります。

入力ピンを設定して、電気が送られているかどうかを確認すると、かなり不安定な答えが返されます。

私の問題を明確にするために行ったいくつかの観察:

  1. 回路を接続し、入力ピンに電気が流れるとき、それが与える値は常にTRUEまたは1です。

  2. その一部であるLEDを削除して回路を切断すると(入力値を0にする必要がある場合)、ランダムな値が得られ、0から1の間でシフトします。

  3. Piからすべてのケーブルを取り外すと、一貫した値0が得られます

  4. すべてのGPIOケーブルを取り外した場合、値0が得られますが、単に入力ピンに電気を導く金属片を接触させると(反対側には何も導かれない)、再びランダムな値から始まります。出力ピンに何かが接続されていない限り、ランダムな値は得られません。どこにでもリードする必要はなく、出力ピンに触れるだけです。そして、他の金属片が入力ピンに触れなければなりません。それらの間にはまったく接続がありません。

入力GPIOピンが金属に触れると、なぜランダムな値が与えられるのか疑問に思います。

さらに興味深いことに、実際に電気を送ったときに、一貫した1またはTRUEが得られるのはなぜですか?


ステートメント番号4の編集:出力ピンにも何か接続されている場合を除き、ランダムな値は表示されません。どこにでもリードする必要はなく、出力ピンに触れるだけです。そして、他の金属片が入力ピンに触れなければなりません。それらの間の接続はまったくありません
グスタフ14年

Raspberry Pi Stack Exchangeへようこそ!質問を編集して、コメントする代わりにその情報の変更を修正できることを知っていますか?また、チャットに時々アクセスしてください。私たちは常に新しい会社を愛しており、このサイトが有用で成長しており、ユーザーベースが関与していることを示すのに役立ちます。ありがとう!
RPiAwesomeness 14年

1
これは、ピンがフローティングになっているためです。詳細情報electronics.stackexchange.com/a/35705
Gerben

回答:


14

問題

回路を接続し、入力ピンに電気が流れるとき、それが与える値は常にTRUEまたは1です。

本当ですが、グランドがGPIO入力ピンに接続されるとどうなりますか?与える値は常にfalseになります

  • 入力ピンに電源が接続されている場合:入力ピンは1(真)を検出します。
  • 入力ピンにグランドが接続されている場合:入力ピンは0(偽)を検出します。
  • 入力ピンにも接続されていない場合:入力ピンが混乱します。

何も接続されていない場合、ピンは「フローティング」状態になり、出力は予測できません。未定義の状態であり、0でも1でもありません。検出された値は奇妙に変化する可能性があるため、ランダムな結果になります。電子工学では、これは第三状態として知られています

ウィキペディアの記事の詳細:

デジタル回路では、高インピーダンス(hi-Z、トライステート、またはフローティングとも呼ばれる)出力は、出力回路によって定義された論理レベルに駆動されません。信号は論理的な高レベルにも低レベルにも駆動されません。この3番目の条件は、「トライステート」という説明につながります。このような信号は、開回路(または「フローティング」ワイヤ)として見ることができます。

一般的な解決策

解決策はプルダウン抵抗です。これは、回線が0または1になったときに何もしない追加のコンポーネントと考えてください。しかし、回線がアイドル状態になると、突然作動して0になります。

Raspberry Piソリューション

幸いなことに、Rpiにはプルダウンが組み込まれているため、プログラムでアクティブにする必要があります。そのためのpythonスクリプトを次に示します。

import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(23, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)
//Now your input is stable.

サイドノート

電源をピンに直接接続しないでください。危険です。回路に十分な抵抗があることを確認してください。また、3.3Vのみを受け入れるため、5V電源をGPIOに直接接続しないでください。


Windows 10 IoTコアプラットフォームで実行している場合、同等のC#コードを知っていますか?
ビジェイチャブダ

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