-
1 # 散居獵人
-
2 # 創意電子DIY分享
想讓PWM頻率和佔空比都可以調節,並且可以透過外加電壓來控制,採用8腳的小微控制器實現是最方便的,只要編寫個這樣的程式即可實現。這裡推薦一款好用的8腳微控制器——ATtiny25,其Flash為2K,內建10位ADC、PWM及模擬比較器,工作電壓範圍為2.7~5.5V。上圖為貼片封裝的ATtiny25V微控制器,型號中帶有後綴字母“V”的,工作電壓可低至1.8V。若不會使用該微控制器,亦可以採用NE555時基電路來實現。上圖所示電路就是一個NE555構成的佔空比可調的矩形波發生器。改變RW的阻值即可調節輸出的佔空比,若想調整頻率,可以改變R40或C的標稱值。本電路可在5~15V電壓範圍內工作,輸出電流最大為200mA,具有較強的帶負載能力。
-
3 # 電子產品設計方案
實現PWM頻率和佔空比雙可調建議使用帶ADC和PWM功能的MCU來設計方案
按題主的意思僅需要兩個ADC通道接可調電壓來控制PWM的頻率和佔空比,一個PWM輸出通道,並不需要其它外設,選用一個8個腳的MCU即可
-
4 # 神筆碼農
我自己寫的函式,利用16位定時器3寫的2路或3路路同頻率(最大為時鐘頻率的1/2)和不同(當然也可以相同)佔空比(1~99)的函式,適用Atmega avr晶片:
void Tone(unsigned int feb,unsigned int mdutyL,unsigned int mdutyR) //feb:頻率,mduty:佔空比%
{
unsigned int mdutyT=(mdutyL+mdutyR)/2;
pinMode(hangpinL, OUTPUT);
pinMode(hangpinT, OUTPUT);
pinMode(hangpinR, OUTPUT);
TCCR3B = 0;
DDRE = 0x38;
TCCR3A = 0xAA;
TCCR3B = 0x10;
TCCR3C = 0xE0;
ICR3=8000000/feb-1; //頻率=16MHz/2/feb -1
OCR3A=mdutyL*80000/feb; //左佔空比
OCR3B=mdutyT*80000/feb; //中佔空比 10%
OCR3C=mdutyR*80000/feb; //右佔空比 50%
TCCR3B |= 0x01;
}
回覆列表
簡單極了,555或556 頻率和佔空比都可調。電路簡單成本低。用微控制器當然也行,任何一個口線都可以由時鐘中斷服務程式控制輸出PWM。不過呢,要看你要求頻率多高,太高的話,就要用FPGA。