ds18x20 — pilote du capteur de température DS18x20¶
Le module ds18x20 fournit un pilote pour les capteurs de température numériques 1-Wire Maxim/Dallas DS18B20, DS18S20 et DS1822. Il est construit au-dessus du module onewire et prend en charge plusieurs capteurs partageant un seul bus.
Exemple
import time
from machine import Pin
from onewire import OneWire
from ds18x20 import DS18X20
ds = DS18X20(OneWire(Pin("P7")))
roms = ds.scan()
ds.convert_temp()
time.sleep_ms(750)
for rom in roms:
print(rom, ds.read_temp(rom))
Classes¶
- class ds18x20.DS18X20(onewire: OneWire)¶
Construit un pilote DS18x20 lié au bus
onewire.OneWiredonné. Plusieurs capteurs DS18x20 peuvent partager le même bus.- scan() list[bytearray]¶
Parcourt le bus 1-Wire sous-jacent et renvoie une liste des codes ROM correspondant aux dispositifs de la famille DS18x20. Seules les ROM dont le code de famille est
0x10(DS18S20),0x22(DS1822) ou0x28(DS18B20) sont renvoyées ; les autres dispositifs 1-Wire présents sur le même bus sont filtrés.
- convert_temp() None¶
Émet une commande de conversion de température à tous les capteurs DS18x20 du bus simultanément (à l’aide de SKIP ROM). Après l’appel de cette méthode, vous devez attendre la fin de la conversion (jusqu’à 750 ms à la résolution par défaut de 12 bits) avant d’appeler
read_temp().
- read_scratch(rom: bytes | bytearray) bytearray¶
Lit le scratchpad de 9 octets du dispositif adressé par rom et le renvoie sous forme d’un
bytearray. Le CRC du scratchpad est vérifié ; lève uneExceptionavec le message"CRC error"en cas de non-concordance du CRC.Note
Le tampon renvoyé est le tampon interne du pilote et est écrasé par les appels suivants.
- write_scratch(rom: bytes | bytearray, buf: bytes | bytearray) None¶
Écrit 3 octets dans le scratchpad du dispositif adressé par rom. buf doit contenir les valeurs du seuil d’alarme haute (TH), du seuil d’alarme basse (TL) et du registre de configuration.
- read_temp(rom: bytes | bytearray) float¶
Lit la température la plus récemment convertie depuis le dispositif adressé par rom et la renvoie en degrés Celsius sous forme d’un
float. Gère à la fois les encodages DS18S20 (code de famille0x10) et DS18B20 / DS1822 (codes de famille0x28/0x22), y compris les températures négatives.Appelez
convert_temp()et attendez la fin de la conversion avant d’appeler cette méthode.