一設計思路:1硬件電路選擇:1.1選用開發板: 因為開學前我自學了stm32,arduino,stm8s,想到該實驗的難易程度,沒有選擇趙新宇學長們用的stm32f103vet6,考慮到stm32f030的引腳不夠用,所以我最終選擇具有32位性能的8位單片機stm8s105k4t6.24個引腳。Stm8s105k4t6是雙通道6路10位ad,一個串口通信,一路spi,一路iic,一個八位定時器timer4,兩個16位通用定時器timer2,ttimer3,一個高級定時器timer1.在系統速度要求不高,數據處理量不大的情況下,選用stm8s已經很滿足課題的要求。 1.2選用顯示裝置:我看了下,趙新宇學長用的是3.2寸正點原子出品的觸摸屏,大概需要16更數據線,程序編寫起來有些吃力,且要占用很大的Flash空間,做一個高精度可控恒溫系統,完全是一種浪費。我選用的是4段共陰數碼管,用12線控制。當然可以用74hc595或者74hc164作為并轉串節省io口資源,但程序模塊已經調好,實驗最終也沒有完全占完io口資源,所以用12線控制還是可以滿足要求的。 1.3控制按鈕: 因為我選用的是數碼管,所以最好的辦法就是用按鍵選擇控制溫度。我一共設計了4個按鍵,最上面的按鍵代表的是串口發送功能。程序啟動后,如果按下最上面的按鍵,就可以啟動串口發送數據功能,可以實時的將采集到的數據發送到上位機,通過按下按鈕,可以切換是否需要發送當前溫度或設定溫度的功能。 下面3個按鍵是設定加熱溫度。第一個是選擇更改溫度的位數,十位,個位,小數位。第二個按鍵是邏輯加的功能,根據你選擇的位數,加10,1,0.1。而第3個按鍵的功能與第二個按鍵的功能類似,只是邏輯減的功能。 四個按鍵就可以具有設定加熱溫度,串口發送的功能。 1.4兩路PWM控制波 因為不確定加熱裝置,所以我選擇用一路控制電機,通過攪拌使水加熱均勻,另一類控制加熱裝置。目前只是知道加熱裝置要選用加熱爐,并不清楚控制芯片類型選擇,所以不好確定PWM波的頻率和相應的電路。 1.5指示燈 為了驗證按鍵是否正確按下,我設置了一個指示燈,只要一個按鍵有效按下,指示燈就可以翻轉一下。溫度采集了一次,指示燈也翻轉一次,這在實際過程中,可以顯示硬件是否出現故障。 1.6溫度采集:之前我和李瑞鵬商量去買lm35.但不知道怎么的,買來的lm35按照給定的電路圖就是沒有反應,而且出來的是一些莫名其妙的數據,感無解。而且我在第一次接電路的時候,突然發現有一個lm35燒了,很是無語,所以我后來選擇了精度稍微差點,速度特慢的ds18b20.因為不知道我們的控制速度是多大的,所以只能先試下,可以用。兩個ds18b20,每秒只能采集1-2組數據。 1.7電源模塊之前是用蓄電池做實驗,因為充電器爆了,所以只能選用開關可調穩壓電源芯片lm2596,xl6003.
|