10.控制1線設備
1線總線是一種串行總線,僅使用一根電線進行通信(除了用於接地和電源的電線)。DS18B20溫度傳感器是一種非常流行的單線設備,在這裡我們將展示如何使用onewire模塊從這樣的設備讀取。
要使以下代碼正常工作,您需要至少有一個DS18S20或DS18B20溫度傳感器,其數據線連接到GPIO12。您還必須為傳感器供電,並在數據引腳和電源引腳之間連接一個4.7k歐姆的電阻。
導入 時間
導入 機器
導入 onewire , ds18x20
#設備在GPIO12
dat = machine上。針(12 )
#創建onewire對象
ds = ds18x20 。DS18X20 (onewire 。OneWire (DAT ))
#掃描總線上的設備
roms = ds 。scan ()
print ('found devices:' , roms )
#循環10次和打印所有的溫度
為 我 在 範圍(10 ):
打印(“溫度:' , 端= '' )
DS 。convert_temp ()
時間。sleep_ms (750 )
用於 ROM 中 ROM的:
打印(DS 。read_temp (ROM ), 結束= '' )
打印()
請注意,您必須執行該convert_temp()功能以啟動溫度讀數,然後等待至少750ms才能讀取該值。
1線總線是一種串行總線,僅使用一根電線進行通信(除了用於接地和電源的電線)。DS18B20溫度傳感器是一種非常流行的單線設備,在這裡我們將展示如何使用onewire模塊從這樣的設備讀取。
要使以下代碼正常工作,您需要至少有一個DS18S20或DS18B20溫度傳感器,其數據線連接到GPIO12。您還必須為傳感器供電,並在數據引腳和電源引腳之間連接一個4.7k歐姆的電阻。
導入 時間
導入 機器
導入 onewire , ds18x20
#設備在GPIO12
dat = machine上。針(12 )
#創建onewire對象
ds = ds18x20 。DS18X20 (onewire 。OneWire (DAT ))
#掃描總線上的設備
roms = ds 。scan ()
print ('found devices:' , roms )
#循環10次和打印所有的溫度
為 我 在 範圍(10 ):
打印(“溫度:' , 端= '' )
DS 。convert_temp ()
時間。sleep_ms (750 )
用於 ROM 中 ROM的:
打印(DS 。read_temp (ROM ), 結束= '' )
打印()
請注意,您必須執行該convert_temp()功能以啟動溫度讀數,然後等待至少750ms才能讀取該值。