今天學弟問了我一個有趣的問題
我拿的pic18F4550 的PWM範例
原本是這樣
OpenPWM1(150); //頻率20K
CCPR2L=75; //Dutycycle 50%
可是如果使用到
#include <pwm.h>
寫好的指令後
SetDCPWM1(75*4);
程式要這樣設定,才會dutycycle 才會變成50%
嗯
重新看了一下pic18f4550的datasheet才發現
原來,PIC18F系列 在PWM的模式下,dutycycle會提升4倍的解析度
好厲害的做法
不過可惜的是,我不是很清楚真正提升解析度的做法
雖然我之前用的dsPIC30F 系列 的MCPWM 會提升2倍的解析度
但dsPIC30F寫的就比較清楚了
原來一個簡單的PWM,裡面就有很多有趣的想法和技術在裡面了
你好 , 我想請教你一些問題@@
回覆刪除我現在再做專題自走車,我用的核心是pic18f4520,以及伺服馬達S03T STD
用馬達控制左右轉,我的問題是怎麼設定週期20ms給pwm和給1.5ms的duty cycle
我上網爬文也都是說伺服器週期都要給20ms
大於或小於1.5ms的duty cycle就會左右轉
OpenPWM1(150); //頻率20K
請問你150怎麼換算成20K@@
CCPR2L=75; //Dutycycle 50%
SetDCPWM1(75*4);
這個怎麼算出是50%
[版主回覆08/04/2010 17:07:07]因為pic18f4550 的pwm的dutycycle的解析度是period的4倍,至於原理,我也不是很清楚,但是是一個很不錯的設計。
那請問 你會用pic控制伺服馬達嗎@@
回覆刪除[版主回覆08/04/2010 17:34:34]嗯,就送pwm 就行了,但是因為PIC18F4550的PWM頻率最低是3K,所以不行用這個模組使用,你要自己寫PWM控制伺服機~
現在日本好像開始用序列式信號控制servo,比較少用PWM了
回覆刪除我說雙足機器人啦,其領域我不知道是否如此
[版主回覆08/25/2010 14:02:45]序列控制的好處,就是可以多軸,且方便。但是相對的成本就提高嚕
台灣最愛的就是cost down
你好我想請問一下因為我也是用PIC18F4550做自走車 想知道能不能夠用PWM來知道馬達轉速 這樣就不用使用編碼器來測轉速了
回覆刪除不行……
刪除你好我想請問一下 你會用馬達的霍爾編碼器嗎? 6線式的 找了很多資料可是卻不知道怎麼用 還是你有推薦的教學論壇或網站呢?
回覆刪除不是很懂你指的是什麼, 如果是無刷直流馬達的HALL SENSOR的話,那就是配合六步方波使用, 如果是直麼有刷馬達的話,就要接上encoder專用的interface 比較方便使用。 建議你可以和購買的廠商要datasheet or SPEC 來研究一下。
刪除好的謝謝你 我有另一個想法是打算用馬達轉一圈的脈波數並利用一秒鐘有幾個脈波數即可知道馬達轉速 但是現在是不知道如何撰寫程式= =
刪除這個方法不太可行,原因: 1、電壓or電流不準,馬達的輸出力道不同。2、馬達是非線性的。3、負載不同也會有不同的結果。
刪除最後,你的問題有點大, 你要把問題縮小範圍,我們才有辦法幫你。