電源是非常有用的測試設備,但是大多數(如果不是全部)都是手動控制的。在這個Maker Pro項目中,我們將RIOTOUS與電壓控制電源相結合,以創建物聯網控制的電源。
RIOTOUS電源的硬件有兩個主要方面:
基于LM317的可變線性穩壓器
設置LM317輸出電壓的PWM發生器
LM317是一款線性穩壓器,具有三個引腳:VIN,VOUT和ADJ。 VIN和VOUT引腳分別用于電壓輸入和電壓輸出,ADJ引腳代表“調整”,用于調節電壓輸出。
如果使用下面的電路對于LM317,輸出電壓在下面的等式中給出。
然而,事實證明,如果反饋電阻R1留在原位并且R2被電壓源替換,則LM317的輸出電壓比輸入電壓高約1.3V。因此,如果我們可以從PIC16F1825創建可變電壓,我們應該能夠控制LM317輸出。 PIC16F1825具有可用于產生可變電壓源的DAC,但這是一個5位DAC,因此只有32種可能的電壓。相反,我們將使用平滑的PWM源來創建一個電壓源,其幅度由PWM信號的占空比控制。
使用PIC16F1825的PWM信號存在一個問題,是PWM信號的最大輸出電壓是PIC的電源電壓。因此,我們可以從LM317中獲得的最大電壓為3.3V + 1.3V = 4.6V。要解決這個問題,請使用運算放大器,將PWM信號的輸出電壓乘以10,這樣可以實現1.3V至34.7V的電壓范圍。
工作原理:軟件
客戶端(RIOTOUS-powered PIC)通過配置IO端口,內部振蕩器和RIOTOUS框架來啟動。完成此操作后,將啟用中斷,然后微控制器嘗試連接到指定的Wi-Fi網絡。連接后,系統會嘗試連接到服務器,一旦建立成功連接,就會執行主while循環。
在此循環中,代碼首先檢查服務器是否有發送數據以調整占空比,如果有,則將輸入占空比字符串轉換為整數,然后轉移到占空比變量。一旦處理了輸入數據,PIC就會運行PWN生成代碼。雖然PIC確實有一個板載PWM模塊,但是嘗試使其工作時會引起很多麻煩(特別是當CCP1使用ESP引腳所需的RX引腳時)。因此,PWM信號是在代碼中生成的,并且實現起來非常簡單。
在主循環的每次迭代中,計數器變量遞增,并將該值與周期變量進行比較。如果定時器超過了周期變量,則重置定時器。如果定時器值低于占空比值,則PIC將PWM引腳設置為1,否則將其設置為0.
服務器程序是使用VB.net編寫的,包含一個簡單的表單應用程序,一個用于啟用服務器的按鈕,一個用于設置電壓的按鈕,以及一個允許用戶選擇所需輸出電壓的滑塊。加載時,表單應用程序初始化RIOTOUS服務器,當單擊按鈕Start Server時,使用端口333在機器的IP地址上啟動RIOTOUS服務器。表單中包含一個計時器作為程序自動收報機。檢查RIOTOUS事件,但由于我們的客戶端不向服務器發送數據,因此不需要此自動收報機。調整水平條時,“電壓標簽”將更改為顯示水平條表示的電壓,按下“設置電壓”按鈕后,服務器會將新的占空比發送給PIC。
構造
這個項目可以使用許多不同的技術構建,包括條形板,面包板,矩陣板和定制PCB。對于這個項目,我選擇使用面包板制作電路,但這確實提供了一兩個挑戰。首先,該項目不適合一個小面包板,因此需要將兩個連接在一起。其次,ESP-01不是面包板友好的。因此,需要一個適配器來使ESP-01與面包板一起工作,這是通過使用一小塊條形板和一些頭來實現的。
雖然這個項目沒有提供電源所需的其他功能,例如整流和輸出顯示,但它顯示了一個概念證據,即RIOTOUS和ESP8266可以用來制作任何互聯網控制的東西。如果添加其他組件,包括變壓器,電源連接,大型平滑電容器和各種其他電源組件,那么這個項目很快就可以成為功能齊全的物聯網電源!
-
電源
+關注
關注
184文章
17592瀏覽量
249503
發布評論請先 登錄
相關推薦
評論