« DS18B20 » : différence entre les versions
Aller à la navigation
Aller à la recherche
| (Une version intermédiaire par le même utilisateur non affichée) | |||
| Ligne 51 : | Ligne 51 : | ||
Le capteur se branche directement à l''''Arduino Nano R4''' comme ceci : | Le capteur se branche directement à l''''Arduino Nano R4''' comme ceci : | ||
* Fil <span style="color:yellow">'''jaune'''</span> du '''DS18B20''' sur le port {{Arduino Digital|pin=D2}} de l''''Arduino | * Fil <span style="color:yellow">'''jaune'''</span> du '''DS18B20''' sur le port {{Arduino Digital|pin=D2}} de l''''Arduino Nano R4'''. | ||
* Fil <span style="color:red">'''rouge'''</span> du '''DS18B20''' sur le port {{Arduino VCC|pin=+5V|type=OUT}} de l''''Arduino | * Fil <span style="color:red">'''rouge'''</span> du '''DS18B20''' sur le port {{Arduino VCC|pin=+5V|type=OUT}} de l''''Arduino Nano R4'''. | ||
* Fil '''noir''' du '''DS18B20''' sur le port {{Arduino GND}} de l''''Arduino | * Fil '''noir''' du '''DS18B20''' sur le port {{Arduino GND}} de l''''Arduino Nano R4'''. | ||
{{ 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 ESP32 == | |||
{{ Box Attention | objet=Les E/S de cette carte fonctionnent sous 3.3V.}} | |||
[[Image:ARDUINO_NANO_ESP32_PINS.jpg]] | |||
Le capteur se branche directement à l''''Arduino Nano ESP32''' comme ceci : | |||
* Fil <span style="color:yellow">'''jaune'''</span> du '''DS18B20''' sur le port {{Arduino Digital|pin=D2}} de l''''Arduino Nano ESP32'''. | |||
* Fil <span style="color:red">'''rouge'''</span> du '''DS18B20''' sur le port {{Arduino VCC|pin=3V3|type=OUT}} de l''''Arduino Nano ESP32'''. | |||
* Fil '''noir''' du '''DS18B20''' sur le port {{Arduino GND}} de l''''Arduino Nano ESP32'''. | |||
{{ 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=3V3|type=OUT}}.}} | |||
= Programme = | = Programme = | ||
Dernière version du 23 avril 2026 à 22:08
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%) |
| Précision : | 0.5°C |
| 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 : | — |
| Librairies : | OneWire [1] |
| 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 Nano R4.
- Fil rouge du DS18B20 sur le port +5V OUT de l'Arduino Nano R4.
- Fil noir du DS18B20 sur le port GND de l'Arduino Nano R4.
| 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 ESP32
|
|
Les E/S de cette carte fonctionnent sous 3.3V. |
Le capteur se branche directement à l'Arduino Nano ESP32 comme ceci :
- Fil jaune du DS18B20 sur le port D2 de l'Arduino Nano ESP32.
- Fil rouge du DS18B20 sur le port 3V3 OUT de l'Arduino Nano ESP32.
- Fil noir du DS18B20 sur le port GND de l'Arduino Nano ESP32.
| Il est nécessaire de brancher une résistance de pull-up de 4.7K Ohm entre la broche D2 et la broche 3V3 OUT. |
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;
}


