#include "GY39.h"
/*
GY-39-----mini
VCC----VCC
SCL----A5
SDA----A4
GND--GND
*/
//#define uint16_t unsigned int
#define GY39ADRESS 0x5b //GY-39器件地址
uint32_t P;
uint16_t Temp;
uint16_t Hum;
uint16_t Alt;
uint32_t Lux;
uint8_t data[4]={0,0,0,0};
uint16_t get_Temp(void)
{
iic_read(0x04,data,2);
Temp=data[0]*10+data[1];
Serial.print(data[0]);
Serial.print(" ");
Serial.println(data[1]);
return Temp;
}
uint32_t get_P(void)
{
iic_read(0x06,data,4);
P=data[0]*1000+data[1]*100+data[2]*10+data[3];
Serial.print(data[0]);
Serial.print(" ");
Serial.print(data[1]);
Serial.print(" ");
Serial.print(data[2]);
Serial.print(" ");
Serial.println(data[3]);
return P;
}
uint16_t get_Hum(void)
{
iic_read(0x0a,data,2);
Hum=data[0]*10+data[1];
Serial.print(data[0]);
Serial.print(" ");
Serial.println(data[1]);
return Hum;
}
uint16_t get_Alt(void)
{
iic_read(0x0c,data,2);
Alt=data[0]*10+data[1];
Serial.print(data[0]);
Serial.print(" ");
Serial.println(data[1]);
return Alt;
}
uint32_t get_Lux(void)
{
uint8_t data[4]={0,0,0,0};
iic_read(0x00,data,4);
Lux=data[0]*1000+data[1]*100+data[2]*10+data[3];
Serial.print(data[0]);
Serial.print(" ");
Serial.print(data[1]);
Serial.print(" ");
Serial.print(data[2]);
Serial.print(" ");
Serial.println(data[3]);
return Lux;
}
void iic_read(unsigned char subadress,unsigned char *data,uint8_t a)
{
for (int i=0;i<a;i++){
Wire.beginTransmission(GY39ADRESS);
Wire.write(subadress+i);
Wire.endTransmission(false);
delayMicroseconds(10);
Wire.requestFrom(GY39ADRESS,1);
data[i] = Wire.read();
}
}
- 1
- 2
- 3
前往页