光の強度を測定するために、OPT101 をスレーブ arduino に接続しています。OPT101 回路から受信したデータを、シリアル モニターにデータを出力するマスター arduino に送信したいと考えています。コードをテストすると、画面に何も表示されません。(「こんにちは」を送信してテストしたため、i2c接続ではないことはわかっています)。私はarduino leonardoをスレーブとして、arduino unoをマスターとして使用しています。
OPT101 回路のコードは次のとおりです。
#define inPin0 0
void setup() {
Serial.begin(9600);
Serial.println();
}
void loop() {
int pinRead0 = analogRead(inPin0);
double pVolt0 = pinRead0 / 1024.00 * 5.0;
Serial.print(pVolt0, 4 );
Serial.println();
delay(100);
}
スレーブ コードと OPT101 コードを組み合わせてこれを取得するのにうんざりしました: #include
#define inPin0 0
void setup() {
Wire.begin(2);
}
void loop() {
Wire.beginTransmission(2);
Wire.onRequest(requestEvent);
Wire.endTransmission();
}
void requestEvent()
{
int pinRead0 = analogRead(inPin0);
int pVolt0 = pinRead0 / 1024.0 * 5.0;
Wire.write((byte)pVolt0);
}
そして、これは私のマスターコードです:
#include <Wire.h>
void setup()
{
Wire.begin();
Serial.begin(14400);
Wire.requestFrom(2, 8);
while(Wire.available())
{
char c = Wire.read();
Serial.print(c);
}
}
void loop()
{
}