Raspberry Piの起動時に一部のGPIOピンがHIGHになっているのはなぜですか?


18

ボードのリファレンスのピン18にLEDを接続して、簡単な回路を配線しました。単純なプログラムを実行してピン18をHIGHにすると、LEDがオンになり、数秒後にピン18をLOWに設定して、最後にGPIO.cleanup()でプログラムを終了します。

この時点でLEDはオフになります。つまり、ピン18はオフ(LOW)になります。次に、Raspberry Piを再起動または再起動します。RaspberryPiを再起動する前にピンがオフになっていても、起動時に再びピン18のLEDがオンになります。

なぜこれが起こっているのでしょうか?Raspberry Piの起動時にピン18をオフにするなど、特定のピンを構成するにはどうすればよいですか?また、Raspberry Piの起動時にGPIOピンがHIGHにならないようにします。

ピン18がロボットのDCモーターに接続されており、Raspberry Piが起動するとモーターがオンになり、これは私が望むものではないため、この問題が心配ですロボットの構造全体、および接続されているピンによっては、一部のモーターが起動する場合と起動しない場合があります。すべてのモーターを同期して手動でオンにします。

もう1つのことは、すべてのピンにこの問題があるわけではないということです。Raspberry Piが起動するときに停止するものもあれば、そうでないものもあります。


そのLEDは、高く設定したときと同じくらい明るく点灯していますか、それとも暗く光っていますか?
goldilocks

3.3ボルトが印加されています。
ビクトルラズベリー

/sys/class/gpioピン18に入ってエクスポートすると、何も変更しない場合、システムはどの状態にあると言いますか?
goldilocks

「/ sys / class / gpio」と書くと、「-bash:/ sys / class / gpio:Is a directory」と表示されます。特定のピンをエクスポートする方法がわかりません。
ビクトルラズベリー

それについての説明がたくさんあるので、逆流することはありません。その例は、に重くecho、書き込み、つまり何かを設定します。それをエクスポートした後、それを控え、単にcat読み取りを使用して、方向と値を確認します。
goldilocks

回答:


25

電源投入時に、GPIOは内部抵抗を介してHighまたはLowにプルされます。特定のGPIOのプルが高いか低いかは、BCM2835 ARM Peripheralsの 102ページで詳しく説明されています。

Linuxカーネルが起動し、デバイスツリーが(おそらく)有効になっていると、デバイスツリーの設定に従ってGPIOが再構成されます。からロードされたモジュール/etc/modulesは、GPIO状態も更新できます。

起動時に実行している他のソフトウェアは、デバイスツリーの設定とモジュールのロード後にGPIOを再構成する可能性があります。

システムの起動時に誤ってトリガーされる可能性のあるハードウェアがある場合は、ハードウェアソリューションを見つけるのが最も安全です。



2

私はそれがかなり遅いことを知っています。答える。ピンを手動で低に設定し、cronジョブを起動ごとに実行するようにスケジュールするPythonスクリプトまたはbashスクリプトを作成できます。システム/重要なファイルを変更する必要はありません。cronとは別に

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