2017年12月9日 星期六

DS18B20的過河導航行前說明!

 想在不用外部程式庫的狀態下,自己能讀取DS18B20嗎?Simple!就是底下這張圖,只要8個步驟,就可以掌握DS18B20喲!想知道嗎?來參加<<DS18B20的過河導航行前說明會吧>>

岸邊熱身(Setup):準備及前置知識

首先,我們會簡介1-Wire通訊的訊息,必須有的常識是DS18B20於"平常"狀態,處於高電位的實現:上拉電阻的使用及直觀替代概念(彈簧)

淺水區(STEP 1-3):工具製作及練習

 以特務接頭的例子,來說明DS18B20如何作啟始(Reset)、命令發佈(Write)及資料讀取(Read),並於階段過程中檢驗官方數據與DS18B20實際表現的差異。

第一島礁(STEP-4):簡易讀取溫度值


常前置基礎工具準備好後,既可以獲得DS18B20的溫度數據組(LSB/MSB),並於了解DS18B20的數據架構及原理後,既可透過轉換程序,獲得初步的溫度值


島礁探索(STEP 5-6):讀取暫存器及CRC檢驗 

 既然,我們可以讀取暫存區的溫度數據組(LSB/MSB),那就可以讀取整組數據,同樣的,也可讀取ROM資料(但不會深入,因為這不是此次的主題),然後,就是數據的檢驗(CRC)的實務操作(不說原理,只明操作)程序,來檢驗溫度數據的正確性。
有了CRC的檢驗,那麼,我們就可以透過測試結果,回頭檢測關鍵程序(Read),並透過合理調整參數值,來增其數據穩定性(小概念:好的產品不是檢查出來的,而是透過檢查改善製程來達到產品的良率提升)

深水區(STEP-7):檢錯/中斷設置及類別化(Object)

 我們強化的工具,並使用CRC檢核DS18B20溫度數據正確性,基本上已完成主要工作,而透過檢錯功能的加入及回饋訊息(-127℃),能讓其安全性提高。禁止/停止中斷的設置,可增加讀取DS18B20的穩定性。
當上述的程序皆已達成後,基本上程式目標已完成。接下來,是將程式碼類別轉換成程式庫的過程,簡單但同樣是不容易,過程中,會說明類別化其實就是從名店轉換成加盟總店的過程的例子讓你更了解。最後,我們會獲得SimpleDs18b20的類別程式碼(.h/.cpp)

彼岸(STEP-8) :程式庫及範例

一步一步的從SimpleDs18b20函式碼(.h/.cpp),先撰寫範例程式(example),確認可正確執行後,再進行程式庫相關文件的生成(keywords-程式關鍵字/README.MD/LICENSE)。
最後,就是上傳到GitHub的簡易程序,到此,搞定,收功,享用海鮮吧!

少說了一個,那個最前面的Ghost是什麼意思?


"Everything you want is on the other side of fear!"

看了行前說明,難嗎?有點,但就是煩了點,不過你會收獲什麼?
嗯!你會知道怎麼看Datasheet、會知道DS18B20的時序圖、內部資料結構、CRC檢核操作、程式類別化、程式庫的建立與上傳!
然後呢?當你完成了這些,我想你已進了Arduino的大門,透過格物的過程,你知了,你就可以善用DS18B20了,既然你會用DS18B20,那麼,其他的又有什麼問題呢?一法通萬法通!

想要嗎?那麼就前進吧!開始這偉大的航程!


沒有留言:

張貼留言