1樓:匿名使用者
有線傳輸……那就是每個ds18b20用一個簡單的微控制器(比如2051)控制,然後使用rs485傳輸到atmega16上。
如果atmega16微控制器與上位機通訊要使用串列埠,但是5個ds18b20節點與atmega16的通訊也要使用串列埠(rs485),那就需要atmega16來切換串列埠通道了。
或者ds18b20獲得的溫度資料轉換為電流訊號,在被atmega16取樣前再轉換為電壓訊號。atmega16有10位的adc且有8個輸入通道,這樣把電壓訊號送入atmega16的adc轉換為數字訊號,再通過串列埠傳遞給上位機——這樣有個好處,每個ds18b20有一個微控制器控制執行,得到的溫度資料轉換為電流訊號直接送到線路上到atmega16。所以atmega16不需要查詢每個18b20的狀態或發出請求資料的命令,只要直接轉換相關線路上的電流訊號即可得到資料。
2樓:
採集的溫度資訊傳輸100米無非是訊號太弱,只要在輸出端接組放大器就ok了
,還是很弱的話在上位機端再接組。買好一點的。。。。
3樓:
這種感測器 供電是3到5.5伏 一百米 確實是有點遠 如果你在實際發現 確實是不行 你中間加一個放大和反饋 電路
4樓:
1、用0.5以上的遮蔽雙絞線作為傳輸線,在微控制器io口端接外部上拉電阻。
2、每個ds18b20就近接入微控制器作為一個感測器節點,用485等工業匯流排把微控制器聯網。
3、每個ds18b20就近接入微控制器作為一個感測器節點,用無線數傳模組把微控制器聯網。4、
ds18b20和微控制器之間通訊距離多遠?
5樓:
我用的3m,聽論壇上說做過20m的,消除電容你可以用遮蔽線,3m距離毫無影響。
ds18b20溫度感測器與微控制器間的通訊線(延長線)可以多長
6樓:匿名使用者
50~100m可能有點長,我沒有試過那麼長,那麼長的話訊號可能不穩定~~~最好加些訊號放大之類的吧,防止衰減·~
7樓:蘭煙墨戌
如果僅僅靠延長來導線50——100米可以說源是不可能bai的。我提供幾中解決du方案:1、多加
zhi一塊51微控制器和485協議的dao轉換晶片,採集以後用485傳送到100外。2、成本要求不嚴格的話,可以用無線串列埠模組,網上有賣的。如果想自己動手做,可以用51+24l01來做。
3、想好玩一點呢,用串列埠經過放大驅動一個鐳射發射頭,接收部分自己設計個簡單的放大就能實現通訊。如果採用第三種方案我們可以進一步**。
我在使用ds18b20檢測溫度,溫度20時,是正常的,溫度20時,返回值是0xff,0xff,請教高手為什麼
應該是你的程式上出來還存在小問題。 近期通過ds18b20再加lcd1602加序列輸出除錯成功,的lcddata埠p0 包括 包括 stc12c5a.h 定義xtal 11059200 杯晶振頻率 定義波特率9600 通訊波特率 定義uchar無符號字元型 定義的uint無符號整數 br p sbi...
我編寫ds18b20程式想顯示溫度在led燈上但
include reg52.h include include 要用到取絕對值函式abs define uchar unsigned char define uint unsigned int sbit ds p2 1 sbit ds p3 2 ds18b20 sbit duan p2 6 sbit...
ds18b20裡的溫度值正負判斷為什麼要判斷大於
科強小米 tem data l read byte 讀低8位資料,低8位資料格式 2 3,2 2,2 1,2 0,2 tem data h read byte 讀高8位資料,高8位資料格式 s,s,s,s,s,2 6,2 5 temp data tem data h 256 tem data l s...