湿度センサーモジュール/AM2321のスケッチ
(1)Wire Libraryを参照して、以下のスケッチを作成しました。
//AM2321
#include <Wire.h>
void setup()
{
Serial.begin(9600);
Wire.begin();
Serial.print("humidity");
Serial.print("\t");
Serial.println("temperature");
}
void loop()
{
byte rdptr[20];
readAM2321(rdptr,8);
float H=(float)(rdptr[2]*256+rdptr[3])/10.0;
float T=(float)(rdptr[4]*256+rdptr[5])/10.0;
Serial.print(H,1);
Serial.print("\t");
Serial.println(T,1);
delay(1000);
}
void readAM2321(byte *rdptr, byte length )
{
int i;
byte deviceaddress=0x5C;
//step1
Wire.beginTransmission(deviceaddress);
Wire.write(0x00);
Wire.endTransmission();
delay(1);
//step2
Wire.beginTransmission(deviceaddress);
Wire.write( 0x03);
Wire.write(0x00);
Wire.write(0x04);
Wire.endTransmission();
delay(2);
//step3
Wire.requestFrom(deviceaddress,length);
delayMicroseconds(60);
if(length <= Wire.available())
{
for(i=0;i<length;i++)
{
rdptr[i] = Wire.read();
}
}
}