« DS18B20 » : différence entre les versions
Aller à la navigation
Aller à la recherche
Aucun résumé des modifications |
Aucun résumé des modifications |
||
| Ligne 31 : | Ligne 31 : | ||
|} | |} | ||
= Câblage = | |||
== Arduino UNO == | |||
[[Image:ARDUINO_UNO_R3_PINS.jpg]] | [[Image:ARDUINO_UNO_R3_PINS.jpg]] | ||
| Ligne 44 : | Ligne 44 : | ||
{{ Box Remarque | objet=Il est nécessaire de brancher une résistance de pull-up de 4.7K Ohm entre la broche {{Arduino Digital|pin=D2}} et la broche {{Arduino VCC|pin=+5V|type=OUT}}.}} | {{ Box Remarque | objet=Il est nécessaire de brancher une résistance de pull-up de 4.7K Ohm entre la broche {{Arduino Digital|pin=D2}} et la broche {{Arduino VCC|pin=+5V|type=OUT}}.}} | ||
== Arduino Nano R4 == | |||
[[Image:ARDUINO_NANO_R4_PINS.jpg]] | [[Image:ARDUINO_NANO_R4_PINS.jpg]] | ||
| Ligne 53 : | Ligne 53 : | ||
* Fil '''noir''' du '''DS18B20''' sur le port {{Arduino GND}} de l''''Arduino Uno R3'''. | * Fil '''noir''' du '''DS18B20''' sur le port {{Arduino GND}} de l''''Arduino Uno R3'''. | ||
= Programme = | |||
{{ Box Remarque | objet=Ce programme nécessite l'installation de la librairie OneWire pour pouvoir fonctionner. }} | {{ Box Remarque | objet=Ce programme nécessite l'installation de la librairie OneWire pour pouvoir fonctionner. }} | ||
Dernière version du 2 février 2026 à 19:22
Présentation
Le DS18B20 est un capteur de température étanche (IP68) numérique. Le capteur fonctionne sous une tension comprise entre 3.0 VCC et 5.5 VCC.
| Type de mesure : | Température |
|---|---|
| Plage de mesure : | -10 à +85°C (0.5%) |
| Température de fonctionnement : | -55 à +125°C |
| Indice de protection : | IP68 |
| Protocole de communication : | Digitale |
| Adresse I²C : | — |
| Tension d'alimentation : | 3.0 à 5.0 V |
| Consommation courant : | — |
| Connecteur | JWT à 3 broches |
|---|---|
| Fil jaune | DATA |
| Fil rouge | 5+ OUT |
| Fil noir | GND |
Câblage
Arduino UNO
Le capteur se branche directement à l'Arduino Uno R3 comme ceci :
- Fil jaune du DS18B20 sur le port D2 de l'Arduino Uno R3.
- Fil rouge du DS18B20 sur le port +5V OUT de l'Arduino Uno R3.
- Fil noir du DS18B20 sur le port GND de l'Arduino Uno R3.
| Il est nécessaire de brancher une résistance de pull-up de 4.7K Ohm entre la broche D2 et la broche +5V OUT. |
Arduino Nano R4
Le capteur se branche directement à l'Arduino Nano R4 comme ceci :
- Fil jaune du DS18B20 sur le port D2 de l'Arduino Uno R3.
- Fil rouge du DS18B20 sur le port +5V OUT de l'Arduino Uno R3.
- Fil noir du DS18B20 sur le port GND de l'Arduino Uno R3.
Programme
| Ce programme nécessite l'installation de la librairie OneWire pour pouvoir fonctionner. |
Ce programme permet de lire la valeur mesurée par le capteur de température. Cette valeur est ensuite transmise via l'interface série. Elle peut être lue via le moniteur série du compilateur.
#include <OneWire.h>
int DS18S20_Pin = 2; //DS18S20 Signal pin on digital 2
//Temperature chip i/o
OneWire ds(DS18S20_Pin); // on digital pin 2
void setup(void) {
Serial.begin(9600);
}
void loop(void) {
float temperature = getTemp();
Serial.println(temperature);
delay(100); //just here to slow down the output so it is easier to read
}
float getTemp(){
//returns the temperature from one DS18S20 in DEG Celsius
byte data[12];
byte addr[8];
if ( !ds.search(addr)) {
//no more sensors on chain, reset search
ds.reset_search();
return -1000;
}
if ( OneWire::crc8( addr, 7) != addr[7]) {
Serial.println("CRC is not valid!");
return -1000;
}
if ( addr[0] != 0x10 && addr[0] != 0x28) {
Serial.print("Device is not recognized");
return -1000;
}
ds.reset();
ds.select(addr);
ds.write(0x44,1); // start conversion, with parasite power on at the end
byte present = ds.reset();
ds.select(addr);
ds.write(0xBE); // Read Scratchpad
for (int i = 0; i < 9; i++) { // we need 9 bytes
data[i] = ds.read();
}
ds.reset_search();
byte MSB = data[1];
byte LSB = data[0];
float tempRead = ((MSB << 8) | LSB); //using two's compliment
float TemperatureSum = tempRead / 16;
return TemperatureSum;
}

