問題タブ [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.
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、および質問を読んで助けてくれた他の人に感謝します。
c++ - M24512 EEPROM と Raspberry Pi を I2C で接続: Python を C++ に変換
I2C バスで M24512 EEPROM IC を Raspberry pi と接続する必要があります。アドレス 0x50 で i2cdetect -y 1 が表示されます。
私はそれをpython-smbusで動作させました:
出力を表示
それは完璧です。しかし、今は WiringPi lib を使用して C++ に変換したいと考えています。
EEPROM の読み取りは上記のコードを使用して適切に機能していますが、書き込みは機能していません..任意の提案 !!