問題タブ [wiringpi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
944 参照

c++ - c++ を使用して Raspberry Pi 3 で 3 つの mcp3008 を読み取る

SPI 経由で MCP3008 ACD に接続するために WiringPi ライブラリ (c++) を使用していますが、24 のアナログ入力を読み取る必要があるため、3 つの異なる MCP3008 に接続できる必要があります。WiringPi ライブラリで 3 つの異なるスレーブを管理する方法がわかりません。

回答: (私は自分の質問に答えるのに十分な評判を持っていないので、誰かに役立つ可能性がある場合に備えてここに残します)

mcp3004 ライブラリを使用すると、SPI インターフェイスを使用して AD コンバーターと通信できます。

MISO、MOSI、SCLK、および CE0 を対応するスレーブのピンに接続するだけです。主な問題は、3 つの異なるスレーブを使用する必要があったことですが、解決策は簡単です。すべてのスレーブは同じ MOSI、MISO、SCLK を持つ必要があるため、これらのピンをすべてラズベリーの MOSI、MISO、および SCLK ピンに接続する必要があります。

ここで、CE0 ラズベリー ピンを使用するスレーブに接続する必要があり、他のスレーブの CS ピンは HIGH にプルする必要があります (これはアクティブ ローであり、それらを非アクティブにしたいため)。これを行う方法として、OR-GATES (2 入力) を使用する方法があるため、スレーブごとに 1 つのゲートを使用します。入力の 1 つは CE0 ラズベリー ピン (他のスレーブでも同じ) で、もう 1 つの入力は GPIO ピン (スレーブごとに 1 つ異なる) で、OR-GATE 出力はスレーブ選択ピン (同じ) に接続されます。他のスレーブの場合)。

スレーブ 1 を使用する場合は、ピン 1 を LOW でプルし、digitalWrite(Pin1,LOW);他のピンを HIGHでプルする必要がありdigitalWrite(Pin2,HIGH); digitalWrite(PINn,HIGH)ます。これを行うと、最初のスレーブ CS ピンの値が CE0 になり、他のピンの値が HIGH になります (最初のスレーブが選択され、他のピンは選択されません)。

SPIは特定のタイミングでCSピンをプルアップおよびプルダウンするため、選択したいものを単純にLOWにプルし、もう一方をHIGHにプルすることはできません

@ Ptaq666、@ Jespe Juhl、および質問を読んで助けてくれた他の人に感謝します。

0 投票する
0 に答える
882 参照

c++ - M24512 EEPROM と Raspberry Pi を I2C で接続: Python を C++ に変換

I2C バスで M24512 EEPROM IC を Raspberry pi と接続する必要があります。アドレス 0x50 で i2cdetect -y 1 が表示されます。

私はそれをpython-smbusで動作させました:

出力を表示

それは完璧です。しかし、今は WiringPi lib を使用して C++ に変換したいと考えています。

EEPROM の読み取りは上記のコードを使用して適切に機能していますが、書き込みは機能していません..任意の提案 !!