PIC Lesson: PWM To Analog

PWM boleh menghasilkan analog voltage. PWM to Analog juga adalah merupakan DAC. Jika menggunakan R-2R Ladder, lapan output daripada microcontroller diperlukan untuk menghasilkan satu analog output. Menggunakan PWM, hanya satu output diperlukan bagi satu analog output dengan mengubah duty cycle nya sahaja. Litar PWM kepada voltan adalah seperti berikut.

Litar di atas sebenarnya adalah litar low pass filter di mana litar yang hanya menyalurkan frekuensi rendah dan menyekat frekuensi tinggi. Dalam isyarat PWM terdapat voltan DC dan AC yang dikenali harmonic. Apabila PWM melalui low pass filter, litar akan mengurangkan voltan AC yang berfrekuensi dan hanya menyalurkan voltan DC yang tidak berfrekuensi.

Dalam maksud lain, PWM adalah signal ‘ON’ dan ‘OFF’. Apabila melalui litar RC, capacitor akan charging ketika input 5V dan discharging ketika input 0V. Proses ini berlaku dengan sangat cepat dalam frekuensi PWM yang tinggi. Oleh itu, dengan mengubah duty cycle PWM tersebut, boleh mengubah voltan keluaran.

Contoh program yang saya hasilkan adalah menggunakan program PWM dan sambungkan kepada dua litar RC yang mempunyai kombinasi nilai RC berbeza. Vout1 adalah hasil voltan daripada nilai RC yang lebih tinggi berbanding Vout2. Dalam program ini saya juga mengubah frekuensi PWM bagi menunjukkan perubahan frekuensi tidak menunjukkan perubahan output yang ketara.

Berikut adalah program tersebut.

Berikut adalah videonya.


Post ini telah menerima 2,739 views sejak dikeluarkan pada 3:53 PM, Thursday, 12th August 2010
Category: PIC Lesson Tags: , ,
Anda sukakan post ini, apa kata anda subcribe blog ini. Post terbaru akan dihantar ke alamat e-mail anda.
Masukkan e-mail anda dan klik subcribe.

Anda mungkin belum baca post ini

11 komen untuk PIC Lesson: PWM To Analog

Pages: [2] 1 » Show All

  1. 11. Komen dari eason pada 4:33 PM, 17th November 2010

    MR shahrul
    I am sorry to trouble u again…
    i try to understand this code few days already,but i still got 2 function not understand.Can u explain to me more clearly?Below is the 2 function that i dun understand.Hope u dun mind to explain to me…thank you very much

    int read_a2d(unsigned char channel)
    {
    ADCON0=0b00000001; //Turn on A/D module
    ADCON1=0b10000000; //configures analog and voltage reference pins
    ADCON0=(ADCON0&0xC7)|(channel<<3); //select analog input channel
    __delay_ms(2);
    ADGO=1; //initiate conversion on the selected channel
    while(ADGO==1) continue; //wait until conversion done
    return(256*ADRESH+ADRESL);}

    void pwm_set(int freq, int duty)
    {
    int a;
    T2CON=0b00000111;
    PR2=(_XTAL_FREQ/(4*16))/(freq)-1;
    a=(PR2+1)*duty/25;
    CCPR2L=a/4;
    CCP2CON=(CCP2CON&0b11001111)|((a%4)<<4);
    }

Pages: [2] 1 » Show All

Dah baca, tinggalkan komen anda disini