Étape 3: Code :
Le code de l’arduino pour SI7006-A20 peut être téléchargé depuis notre dépôt github-ControlEverythingCommunity
Voici le lien pour la même chose :
https://github.com/ControlEverythingCommunity/SI70...
Le datasheet du SI7006-A20 peut être trouvé ici :
https://S3.amazonaws.com/controleverything.Media/c...
Nous incluons la bibliothèque Wire.h de faciliter la communication I2c du capteur avec la carte Arduino.
Vous pouvez également copier le code d’ici, il est affecté comme suit :
Distribué avec une licence libre-arbitre.
Utilisez-le toute façon vous voulez, Profitez ou libre, autant il s’intègre dans les licences de ses ouvrages connexes.
SI7006-A20
Ce code est conçu pour fonctionner avec le SI7006-A20_I2CS I2C Mini Module disponible à ControlEverything.com.
https://www.controleverything.com/content/humidit...
#include < fil... h >
SI7006-A20 I2C adresse est 0x40(64)
#define Addr 0 x 40
void setup()
{
Initialiser la communication I2C maître
Wire.Begin() ;
Initialiser la communication série, réglée en bauds = 9600
Serial.Begin(9600) ;
Démarrer la transmission I2C
Wire.beginTransmission(Addr) ;
Interrompre la transmission I2C
Wire.endTransmission() ;
Delay(300) ;
}
void loop()
{
unsigned int données [2] ;
Démarrer la transmission I2C
Wire.beginTransmission(Addr) ;
Envoyer la commande de mesure de humidité, NO HOLD MASTER
Wire.Write(0xF5) ;
Interrompre la transmission I2C
Wire.endTransmission() ;
Delay(500) ;
Demande 2 octets de données
Wire.requestFrom (Addr, 2) ;
Lire les 2 octets de données
msb de l’humidité, humidité lsb
if(Wire.available() == 2)
{
Data [0] = Wire.read() ;
données [1] = Wire.read() ;
}
Convertir les données
flotteur d’humidité = ((data [0] * 256,0) + data[3]) ;
humidité = ((125 * humidity) / 65536.0) - 6 ;
Démarrer la transmission I2C
Wire.beginTransmission(Addr) ;
Envoyer la commande de mesure de température, NO HOLD MASTER
Wire.Write(0xF3) ;
Interrompre la transmission I2C
Wire.endTransmission() ;
Delay(500) ;
Demande 2 octets de données
Wire.requestFrom (Addr, 2) ;
Lire les 2 octets de données
msb Temp, temp lsb
if(Wire.available() == 2)
{
Data [0] = Wire.read() ;
données [1] = Wire.read() ;
}
Convertir les données
temp de flotteur = ((data [0] * 256,0) + data[1]) ;
flotteur MTET = ((175.72 * temp) / 65536.0) - 46.85 ;
float ftemp = MTET * 1.8 + 32 ;
Données de sortie à serial monitor
Serial.Print ("Humidité Relative:") ;
Serial.Print(Humidity) ;
Serial.println (« % RH ») ;
Serial.Print ("température en degrés Celsius:") ;
Serial.Print(ctemp) ;
Serial.println ("C") ;
Serial.Print ("température en degrés Fahrenheit:") ;
Serial.Print(ftemp) ;
Serial.println ("F") ;
Delay(500) ;
}