ds18x20 — DS18x20-lämpötilasensorin ajuri

ds18x20-moduuli tarjoaa ajurin Maximin/Dallasin DS18B20-, DS18S20- ja DS1822-tyyppisille 1-Wire-digitaalilämpötilasensoreille. Se rakentuu onewire-moduulin päälle ja tukee useita sensoreita, jotka jakavat saman väylän.

Esimerkki:

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))

Luokat

class ds18x20.DS18X20(onewire: OneWire)

Luo DS18x20-ajurin, joka on sidottu annettuun onewire.OneWire-väylään. Useat DS18x20-sensorit voivat jakaa saman väylän.

scan() list[bytearray]

Etsii taustalla olevasta 1-Wire-väylästä ja palauttaa listan ROM-koodeista, jotka vastaavat DS18x20-perheen laitteita. Vain ROM-koodit, joiden perhekoodi on 0x10 (DS18S20), 0x22 (DS1822) tai 0x28 (DS18B20), palautetaan; muut samalla väylällä olevat 1-Wire-laitteet suodatetaan pois.

convert_temp() None

Lähettää lämpötilan muunnoskäskyn kaikille väylän DS18x20-sensoreille samanaikaisesti (käyttäen SKIP ROM -komentoa). Tämän metodin kutsun jälkeen sinun on odotettava muunnoksen valmistumista (enintään 750 ms oletusarvoisella 12-bittisellä resoluutiolla) ennen kuin kutsut metodia read_temp().

read_scratch(rom: bytes | bytearray) bytearray

Lukee 9 tavun työmuistin (scratchpad) laitteelta, jonka osoittaa rom, ja palauttaa sen bytearray-objektina. Työmuistin CRC tarkistetaan; nostaa poikkeuksen Exception viestillä "CRC error" CRC-virheen sattuessa.

Muista

Palautettu puskuri on ajurin sisäinen puskuri, ja seuraavat kutsut ylikirjoittavat sen.

write_scratch(rom: bytes | bytearray, buf: bytes | bytearray) None

Kirjoittaa 3 tavua laitteen työmuistiin, jonka osoittaa rom. buf on sisällettävä korkean hälytyksen kynnysarvon (TH), matalan hälytyksen kynnysarvon (TL) ja konfiguraatiorekisterin arvot.

read_temp(rom: bytes | bytearray) float

Lukee viimeksi muunnetun lämpötilan laitteelta, jonka osoittaa rom, ja palauttaa sen celsiusasteina float-arvona. Käsittelee sekä DS18S20- (perhekoodi 0x10) että DS18B20- / DS1822-koodaukset (perhekoodit 0x28 / 0x22), mukaan lukien negatiiviset lämpötilat.

Kutsu metodia convert_temp() ja odota muunnoksen valmistumista ennen tämän metodin kutsumista.