詳しく知りたい、試しに使ってみたい、カスタマイズについてなど、お気軽にお問い合せください。
光磁気センサ
水中で光、磁気を検出する際に利用できるセンサユニットです。
可動部分の位置検出、スイッチングなどにご利用いただけます。
使用可能深度 : ~ 3,500m
磁気センサインターフェース : 3.3V I2C(10bit)
光センサインターフェース : 3.3V アナログ出力(最大5000lx)
サイズ : 60mm(タテ)×60mm(ヨコ)×25mm(厚さ)
サンプルスケッチ
#include <Wire.h>
//
// 光磁気センサ作動確認用
// レジスタアドレス0x0~0x4,0xbのデータを0.5s毎に順に読み出してシリアル出力する
// アドレス0x0,0x01がADC結果
//
// 光磁気センサ作動確認用
// レジスタアドレス0x0~0x4,0xbのデータを0.5s毎に順に読み出してシリアル出力する
// アドレス0x0,0x01がADC結果
//
int s_addr = 0x56; // Slave address : デフォルト
//int s_addr = 0x57; // 基板上でショートした場合
int wd_addr = 0x0;
//int s_addr = 0x57; // 基板上でショートした場合
int wd_addr = 0x0;
void setup() {
// put your setup code here, to run once:
// put your setup code here, to run once:
Wire.begin();
Serial.begin(115200);
}
Serial.begin(115200);
}
void loop() {
// put your main code here, to run repeatedly:
// put your main code here, to run repeatedly:
int lower, upper;
int data = 0x0000;
int data = 0x0000;
// Lower
Wire.beginTransmission(s_addr);
Wire.write(0x00);
Wire.endTransmission(false);
Wire.beginTransmission(s_addr);
Wire.write(0x00);
Wire.endTransmission(false);
Wire.requestFrom(s_addr, 1);
lower = Wire.read();
// Serial.print(“Lower: 0x”);
// Serial.println(lower, HEX);
lower = Wire.read();
// Serial.print(“Lower: 0x”);
// Serial.println(lower, HEX);
// Uppwer
Wire.beginTransmission(s_addr);
Wire.write(0x01);
Wire.endTransmission(false);
Wire.beginTransmission(s_addr);
Wire.write(0x01);
Wire.endTransmission(false);
Wire.requestFrom(s_addr, 1);
upper = Wire.read() & 0x03;
// Serial.print(“Upper: 0x”);
// Serial.println(upper, HEX);
upper = Wire.read() & 0x03;
// Serial.print(“Upper: 0x”);
// Serial.println(upper, HEX);
data = (upper << 8) | lower;
Serial.print(“MAG Data: “);
Serial.println(data);
Serial.println(data);
Serial.print(“LIGHT: “);
Serial.print(analogRead(A0) * 5.0 / 1023.0);
Serial.println(“V“);
Serial.print(analogRead(A0) * 5.0 / 1023.0);
Serial.println(“V“);
/*
if(wd_addr == 0x4)
wd_addr = 0xb;
else if(wd_addr == 0xb)
wd_addr = 0x0;
else
wd_addr += 1;
*/
if(wd_addr == 0x4)
wd_addr = 0xb;
else if(wd_addr == 0xb)
wd_addr = 0x0;
else
wd_addr += 1;
*/
delay(1000);
// delay(500);
}
}