準(zhǔn)備工作
硬件:
虹科工業(yè)樹(shù)莓派1臺(tái)
DIO模塊1個(gè)
Windows系統(tǒng)電腦1臺(tái)
LED電路
軟件(PC上):
Chrome內(nèi)核瀏覽器、SSH連接軟件(如putty)
操作步驟
1.工業(yè)樹(shù)莓派(RevPi)連好DIO模塊,連網(wǎng)線(xiàn)、電源線(xiàn)上電。
2.電腦的瀏覽器打開(kāi)樹(shù)莓派所在IP地址,登錄其管理后臺(tái),賬號(hào)為admin,默認(rèn)密碼見(jiàn)機(jī)身貼紙。
3.打開(kāi)PiCtory管理界面。
4.按物理設(shè)備的左右順序添加擺放主模塊和DIO模塊(從左邊找到相應(yīng)的模塊,然后拖到右邊區(qū)域進(jìn)行擺放)。
5.單擊選定擺放好的DIO模塊,在網(wǎng)頁(yè)界面右下角的變量設(shè)置區(qū),最下面的位置找到OutputPWMActive和OutputPWMFrequency兩個(gè)變量。
OutputPWMActive變量長(zhǎng)度為16bit,以掩碼形式表示DIO模塊各DO通道PWM使能情況,某位為1表示該位對(duì)應(yīng)的通道PWM使能,某位為0表示該位只用作普通DO輸出,填入框中的數(shù)應(yīng)為十進(jìn)制數(shù)。比方說(shuō),如果我只需要第三、第五通道設(shè)為PWM,其它仍是直接DO的話(huà),那該變量應(yīng)設(shè)為 00000000 00010100 = 20。此處,我們將該變量設(shè)為65535,也就是16bit全為1,表示所有通道PWM功能開(kāi)啟。
而OutputPWMFrequency變量則是選擇形式設(shè)定的,選項(xiàng)有“40Hz 1%”、“80Hz 2%”等。我們這里所選的是“200Hz 5%”,其意義為PWM頻率為200Hz,占空比最小單位是5%。
6.配置完成后點(diǎn)上方菜單的File -》 Save as Start-Config. 保存到啟動(dòng)方案,然后點(diǎn)Tools -》 Reset Driver立即使配置生效。我們這里做的事情,其實(shí)是把這兩個(gè)變量的復(fù)位默認(rèn)值,改為了我們剛剛設(shè)置的參數(shù),而開(kāi)機(jī)復(fù)位時(shí)會(huì)自動(dòng)讀取改默認(rèn)值。
應(yīng)當(dāng)注意:OutputPWMActive變量復(fù)位之后通過(guò)任何途徑修改其當(dāng)前值是不會(huì)生效的,必須要設(shè)為復(fù)位默認(rèn)值才能生效!
7.接下來(lái),我們準(zhǔn)備使用Python編程來(lái)嘗試控制DO1通道的PWM。
首先,我們要知道,DO1通道的PWM占空比當(dāng)前值,是由PWM_1變量決定的,該變量名在同時(shí)使用多個(gè)DIO模塊時(shí)會(huì)有變化(會(huì)自動(dòng)改名,避免重名),需以PiCtory右下角變量列表中顯示的名稱(chēng)為準(zhǔn)。
該變量的取值范圍是0-100的整數(shù),表示占空比百分比數(shù),復(fù)位默認(rèn)值不修改時(shí)各通道均為0。
前面我們提到,當(dāng)設(shè)置PWM頻率時(shí),占空比最小單位也會(huì)變化,且頻率越高時(shí),占空比最小單位越大,但不用擔(dān)心,即使我們的最小單位是5%,我們?cè)诔绦蛑邪言撟兞恐翟O(shè)為5倍數(shù)以外的數(shù)也是不會(huì)報(bào)錯(cuò)的,系統(tǒng)會(huì)自動(dòng)取最近可用的數(shù)進(jìn)行輸出設(shè)置。
8.在DO1通道上接上LED電路,限流電阻阻值請(qǐng)按照LED實(shí)際規(guī)格選取合適的值。
整個(gè)LED回路結(jié)構(gòu)為:
DO1 — 限流電阻 — LED — 地
9.現(xiàn)在,我們獲取該變量在過(guò)程映像中對(duì)應(yīng)的地址(編程時(shí)需要通過(guò)過(guò)程映像中對(duì)應(yīng)的地址來(lái)訪(fǎng)問(wèn)讀寫(xiě)變量)。先用SSH軟件連上RevPi,登錄名是pi,默認(rèn)密碼和本文第2步中的密碼相同(見(jiàn)機(jī)身貼紙)。
10.SSH登錄成功后,執(zhí)行如下指令:
piTest -v PWM_1
返回結(jié)果中第二行的offset,即為我們所需要的地址值(十進(jìn)制83)。
11.有了地址變量之后開(kāi)始正式編程,我們?cè)赟SH中執(zhí)行命令python3,以進(jìn)入python環(huán)境。命令行開(kāi)頭的前綴變成“》》》 ”即表明已進(jìn)入python環(huán)境,按Ctrl+D可退出。
12.測(cè)試執(zhí)行如下代碼:
此時(shí),LED應(yīng)該會(huì)以45%亮度亮起,此時(shí)再執(zhí)行:
則LED應(yīng)以最高亮度亮起。writeByteToOffset函數(shù)的第一個(gè)參數(shù)是寫(xiě)入的地址,第二個(gè)參數(shù)是寫(xiě)入的值。
13.先退出python環(huán)境,然后執(zhí)行如下命令創(chuàng)建名為的python腳本到默認(rèn)的主目錄:
nano PWMtest.py
然后在nano編輯器中填入如下代碼:
然后Ctrl+X退出,按Y確認(rèn)保存,再回車(chē)確認(rèn)名字即可完成腳本創(chuàng)建。這就是一個(gè)簡(jiǎn)單的呼吸燈例程。
14.執(zhí)行如下指令給剛才創(chuàng)建的腳本添加執(zhí)行權(quán)限:
chmod +x PWMtest.py
然后,即可通過(guò)如下指令啟動(dòng)腳本:
。/PWMtest.py
由于腳本中設(shè)置了死循環(huán),退出需要按Ctrl+C。
需要了解更多詳情,請(qǐng)聯(lián)系虹科工業(yè)物聯(lián)網(wǎng)團(tuán)隊(duì):
注意事項(xiàng)
1.當(dāng)DIO模塊3組電源都用24V供電時(shí),PWM輸出的高電平約為24V。
2.由于OutputPWMActive直接改值不會(huì)生效,若某一通道設(shè)置了PWM模式,又臨時(shí)需要作為普通DO使用,可通過(guò)編程設(shè)置其占空比為100和0來(lái)實(shí)現(xiàn)高低邏輯電平輸出。
3.DIO模塊的每通道最大輸出電流為500mA(默認(rèn)的高邊輸出模式狀態(tài)下),使用需要較大電流PWM驅(qū)動(dòng)的設(shè)備(如直流電機(jī)、電磁閥)時(shí)需注意是否超限。
責(zé)任編輯:haq
-
PWM
+關(guān)注
關(guān)注
114文章
5119瀏覽量
213183 -
python
+關(guān)注
關(guān)注
55文章
4768瀏覽量
84376 -
樹(shù)莓派
+關(guān)注
關(guān)注
116文章
1696瀏覽量
105456 -
虹科電子
+關(guān)注
關(guān)注
0文章
588瀏覽量
14214
原文標(biāo)題:免費(fèi)教程速遞!虹科手把手教您用工業(yè)樹(shù)莓派做基于Python的PWM控制
文章出處:【微信號(hào):Hongketeam,微信公眾號(hào):廣州虹科電子科技有限公司】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論