-
大小: 2KB文件類型: .rar金幣: 2下載: 2 次發(fā)布日期: 2021-06-14
- 語言: Python
- 標簽: MicroPython??ds18x20??onewire??pyb??
資源簡介
MicroPython源碼庫,DS18B20數(shù)字溫度傳感器驅動(ds18x20.py)與單總線驅動(onewire.py)。

代碼片段和文件信息
#?DS18x20?temperature?sensor?driver?for?MicroPython.
#?MIT?license;?Copyright?(c)?2016?Damien?P.?George
from?micropython?import?const
_CONVERT?=?const(0x44)
_RD_SCRATCH?=?const(0xBE)
_WR_SCRATCH?=?const(0x4E)
class?DS18X20:
????def?__init__(self?onewire):
????????self.ow?=?onewire
????????self.buf?=?bytearray(9)
????def?scan(self):
????????return?[rom?for?rom?in?self.ow.scan()?if?rom[0]?in?(0x10?0x22?0x28)]
????def?convert_temp(self):
????????self.ow.reset(True)
????????self.ow.writebyte(self.ow.SKIP_ROM)
????????self.ow.writebyte(_CONVERT)
????def?read_scratch(self?rom):
????????self.ow.reset(True)
????????self.ow.select_rom(rom)
????????self.ow.writebyte(_RD_SCRATCH)
????????self.ow.readinto(self.buf)
????????if?self.ow.crc8(self.buf):
????????????raise?Exception(“CRC?error“)
????????return?self.buf
????def?write_scratch(self?rom?buf):
????????self.ow.reset(True)
????????self.ow.select_rom(rom)
????????self.ow.writebyte(_WR_SCRATCH)
????????self.ow.write(buf)
????def?read_temp(self?rom):
????????buf?=?self.read_scratch(rom)
????????if?rom[0]?==?0x10:
????????????if?buf[1]:
????????????????t?=?buf[0]?>>?1?|?0x80
????????????????t?=?-((~t?+?1)?&?0xFF)
????????????else:
????????????????t?=?buf[0]?>>?1
????????????return?t?-?0.25?+?(buf[7]?-?buf[6])?/?buf[7]
????????else:
????????????t?=?buf[1]?<8?|?buf[0]
????????????if?t?&?0x8000:??#?sign?bit?set
????????????????t?=?-((t?^?0xFFFF)?+?1)
????????????return?t?/?16
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1503??2020-04-16?20:06??ds18x20.py
?????文件???????2485??2020-04-16?20:07??onewire.py
-----------?---------??----------?-----??----
?????????????????3988????????????????????2
- 上一篇:python生成扭曲帶干擾驗證碼
- 下一篇:kNN(python實現(xiàn))
評論
共有 條評論