では、次はI2Cの実験です。
何で買ったか判らないけど・・・方位センサーHMC6352があったので、これを接続してみました。
HMC6352は、Vcc、GND、SDA、SCLの4本を接続します。
で、ArduinoとはSDAをA4、SCLをA5に接続するならわしのようです。
で、プログラムは
#include <LiquidCrystal.h>
#include <Wire.h>
const int i2cAddress = 0x42 >> 1;
LiquidCrystal lcd(12,11,10,5,4,3,2);
void setup()
{
Wire.begin();
}
void loop()
{
int h;
h = readHeading();
lcd.clear();
lcd.setCursor(0,0);
lcd.print( h,DEC );
delay( 250 );
}
int readHeading()
{
int heading;
Wire.beginTransmission(i2cAddress);
Wire.send("A");
Wire.endTransmission();
delay(6);
Wire.requestFrom(i2cAddress, 2);
heading = Wire.receive();
heading = heading << 8;
heading += Wire.receive();
return(heading);
}
これで、方位を0~3600の数値でLCDに表示します。