Étape 5: Arduino CODE
#include < OneWireTempSensor.h >#include < OneWire.h >
#include < LiquidCrystal.h >
int DS18S20_Pin = 7 ; Broche DS18S20 Signal digital 7 par rahulmitra
Innovente lcd (12, 11, 5, 4, 3, 2) ;
Température à puce d’e/s
OneWire ds(DS18S20_Pin) ; sur la broche numérique 7 par rahulmitra
void setup(void) {}
Serial.Begin(9600) ;
LCD.Begin (16, 2) ;
Imprimer un message à l’écran LCD.
LCD.Print ("Rahul Mitra") ;
}
void loop(void) {}
flotteur de température = getTemp() ;
Serial.println(temperature) ;
lcd.setCursor (0, 1) ;
LCD.Print ("Temp:") ;
LCD.Print(temperature) ;
LCD.Print ("* C") ;
Delay(100) ; ici juste pour ralentir la sortie n’est plus facile à lire
}
flotteur getTemp() {}
renvoie la température d’un DS18S20 en degrés Celsius
octet de données [12] ;
addr octet [8] ;
Si (! ds.search(addr)) {}
pas plus de capteurs sur chaîne, réinitialiser recherche
DS.reset_search() ;
retour -1000 ;
}
Si (OneWire::crc8 (addr, 7)! = {addr[7])}
Serial.println (« le CRC est non valide!") ;
retour -1000 ;
}
Si (addr [0]! = 0 x 10 & & addr [0]! = 0 x 28) {}
Serial.Print ("la périphérique n’est pas reconnu") ;
retour -1000 ;
}
DS.Reset() ;
DS.Select(addr) ;
DS.Write(0x44,1) ; lancer la conversion, avec puissance parasite sur à la fin
octet présent = ds.reset() ;
DS.Select(addr) ;
DS.Write(0xBE) ; Bloc-notes de lecture
pour (int i = 0; j’ai < 9; i ++) {/ / nous avons besoin de 9 octets
données [i] = ds.read() ;
}
DS.reset_search() ;
octet MSB = données [1] ;
octet LSB = data [0] ;
float tempRead = ((MSB << 8) | LSB) ; à l’aide de deux compliment
float TemperatureSum = tempRead / 16 ;
Return TemperatureSum ;
}