
Isi kandungan:
2025 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2025-01-23 15:01



APA ITU PWM?
PWM STANDS FOR PULSE WIDTH MODULATION adalah teknik di mana lebar nadi bervariasi.
Untuk memahami konsep ini dengan jelas mempertimbangkan denyut jam atau isyarat gelombang persegi mana pun ia mempunyai kitaran tugas 50% yang bermaksud tempoh Ton dan Toff adalah sama, Tempoh total di mana isyarat itu tinggi dan tempoh di mana isyarat rendah disebut jumlah jangka waktu.
Untuk gambar yang ditunjukkan di atas gelombang ini mempunyai kitaran tugas 50%
Kitaran tugas = (Masa ON / Jumlah Masa) * 100
Waktu ON - masa yang mana isyaratnya tinggi
Waktu OFF - masa lawan yang mana isyaratnya rendah Jumlah masa -Jumlah masa nadi (masa ON dan OFF)
Langkah 1: Memilih Mikrokontroler

Memilih mikrokontroler yang sesuai untuk projek ini adalah bahagian penting dari projek PWM isyarat dapat dihasilkan dalam mikrokontroler dengan saluran PWM (CCP register). Untuk projek ini saya bercadang untuk berpegang pada pic16f877. anda boleh memuat turun pautan lembaran data yang diberikan di bawah
Lembaran data PIC16F877a klik di sini
Modul CCP bertanggungjawab untuk menghasilkan isyarat PWM. CCP1 dan CCP2 digandakan dengan PORTC. PORTC adalah port dua arah lebar 8-bit. Daftar arah data yang sesuai adalah TRISC. Menetapkan TRISC bit (= 1) akan menjadikan pin PORTC yang sesuai sebagai input. Membersihkan bit TRISC (= 0) akan menjadikan pin PORTC yang sesuai sebagai output.
TRISC = 0; // Menghapus bit ini akan menjadikan PORTC sebagai output
Langkah 2: CONFIGURE CCP MODULE


CCP - MODUL CAPTURE / COMPARE / PWM
Setiap modul Capture / Bandingkan / PWM (CCP) mengandungi register 16-bit yang boleh beroperasi sebagai:
• Daftar Tangkap 16-bit
• Daftar perbandingan 16-bit
• Daftar PWM Master / Slave Duty Cycle
Konfigurasikan daftar CCP1CON ke mod PWM
Keterangan Daftar
CCPxCON Daftar ini digunakan untuk Mengkonfigurasi modul CCP untuk operasi Tangkap / Bandingkan / PWM.
CCPRxL Daftar ini menyimpan bit 8-Msb PWM, 2 bit lebih rendah akan menjadi sebahagian daripada daftar CCPxCON.
Kaunter bebas TMR2 yang akan dibandingkan dengan CCPR1L dan PR2 untuk menghasilkan output PWM.
Sekarang saya akan menggunakan binari untuk mewakili bit untuk mengkonfigurasi daftar CCP1CON.
rujuk gambar di atas.
CCP1CON = 0b00001111;
Anda juga boleh format hex
CCP1CON = 0x0F; // mengkonfigurasi daftar CCP1CON untuk mod PWM
Langkah 3: Mengkonfigurasi Modul Timer2 (Daftar TMR2)

Timer2 adalah pemasa 8-bit dengan prescaler dan postscaler. Ia dapat digunakan sebagai asas waktu PWM untuk mod PWM modul CCP. Daftar TMR2 boleh dibaca dan boleh ditulis dan dibersihkan di mana-mana peranti Tetapkan Semula.
Daftar T2CON ditunjukkan
Prescale dan postscale akan menyesuaikan frekuensi output gelombang PWM yang dihasilkan.
Kekerapan = frekuensi jam / (4 * prescaler * (PR2-TMR2) * Postscaler * count)
Di mana Tout = 1 / frekuensi
T2CON = 0b00000100;
Ini akan menghasilkan kristal 2.5 KHz @ 1Mhz atau 100KHz @ 4MHz (secara praktikal ada batasan untuk frekuensi PWM ini merujuk lembaran data tertentu untuk maklumat lebih lanjut)
perwakilan hex
T2CON = 0x04; // aktifkan T2CON tanpa konfigurasi Prescaler dan skala pos
Langkah 4: Mengkonfigurasi PR2 (Daftar Tempoh2 Timer2)
Modul Timer2 mempunyai daftar jangka masa 8-bit, PR2. Penambah masa Timer2 dari 00h sehingga sepadan dengan PR2 dan kemudian diset semula ke 00h pada kitaran kenaikan seterusnya. PR2 adalah daftar yang boleh dibaca dan boleh ditulis. Daftar PR2 dimulakan ke FFh setelah Reset.
Menetapkan julat yang sesuai untuk PR2 akan memungkinkan penggunaan untuk mengubah kitaran tugas gelombang PWM yang dihasilkan
PR2 = 100; // Tetapkan masa Kitaran ke 100 untuk mengubah kitaran tugas dari 0-100
Untuk kesederhanaan saya menggunakan PR2 = 100 dengan membuat CCPR1L = 80; 80% kitaran tugas dapat dicapai.
Langkah 5: Konfigurasikan Modul CCPR1l
Oleh kerana PR2 = 100 CCPR1l dapat dikonfigurasi di mana saja antara 0-100 untuk mendapatkan kitaran tugas yang diinginkan.
Langkah 6: Tulis Lakaran pada Anda MPLAB X IDE Kod Yang Diberi Di Bawah

#sertakan
void delay (int a) // fungsi untuk menjana kelewatan {
untuk (int i = 0; i <a; i ++)
{
untuk (int j = 0; j <144; j ++);
}
}
kekosongan utama ()
{TRISC = 0; // Menghapus bit ini akan menjadikan PORTC sebagai output.
CCP1CON = 0x0F; // mengkonfigurasi daftar CCP1CON untuk mod PWM
T2CON = 0x04; // aktifkan T2CON tanpa konfigurasi Prescaler dan skala pos.
PR2 = 100; // Tetapkan masa Kitaran ke 100 untuk mengubah kitaran tugas dari 0-100
semasa (1) {
CCPR1L = 75; // menjana 75% kelewatan kitaran tugas (1);
}
}
Saya juga telah membuat sedikit pengubahsuaian pada kod sehingga frekuensi gelombang PWM yang dihasilkan
Ini adalah kod yang disimulasikan dalam proteus dan gelombang output PWM ditunjukkan di bawah Untuk memuat naik ini di papan pengembangan gambar anda gunakan #sertakan dengan bit konfigurasi yang sesuai.
Terima kasih
Disyorkan:
Rectifier Gelombang Penuh Gelombang (JL): 5 Langkah

Full Wave-Bridge Rectifier (JL): PendahuluanLaman yang sukar dipahami ini akan membimbing anda melalui semua langkah yang diperlukan untuk membina penerus jambatan gelombang penuh. Ia berguna dalam menukar arus AC ke arus DC.Bahagian (dengan pautan pembelian) (Gambar bahagian disertakan dengan kaitan
Hasilkan Pautan Gabungan Banggood (Rujukan) Lebih Mudah Daripada: 4 Langkah

Jana Pautan Afiliasi Banggood (Rujukan) Lebih Mudah Daripada: Versi ringkas arahan ini boleh didapati di blog peribadi saya Jualan afiliasi adalah sumber pendapatan tambahan yang hebat untuk pencipta kandungan, dan banyak orang yang berpakaian menggunakannya. Di laman web yang lebih popular yang mempunyai program gabungan adalah Ban
Lengan Robotik PIC Mikrokontroler: 6 Langkah (dengan Gambar)

Lengan Robotik PIC Mikrokontroler: Dari barisan pemasangan industri pembuatan kenderaan hinggalah robot telesurgeri di angkasa lepas, Robot Arms terdapat di mana-mana sahaja. Mekanisme robot ini serupa dengan manusia yang dapat diprogram untuk fungsi dan peningkatan yang serupa
Konfigurasi Fuse Bits Mikrokontroler AVR. Membuat dan Memuat naik dalam Memory Flash Mikrokontroler Program Berkelip LED: 5 Langkah

Konfigurasi Fuse Bits Mikrokontroler AVR. Membuat dan Memuat Naik dalam Memori Flash Mikrokontroler Program Berkelip LED: Dalam kes ini, kita akan membuat program sederhana dalam kod C dan membakarnya ke dalam memori mikrokontroler. Kami akan menulis program kami sendiri dan menyusun fail hex, menggunakan Atmel Studio sebagai platform pembangunan bersepadu. Kami akan mengkonfigurasi fius bi
Antena Gelung Resonan Gelombang Siaran AM Gelombang Sederhana .: 31 Langkah

Antena Gelung Resonan Gelombang Siaran AM Gelombang Sederhana: Antena gelung gelang siaran Medium Gelombang (MW) AM. Dibina menggunakan kabel 'ribbon' telefon 4 pasang (8 wayar) yang murah, & (pilihan) ditempatkan di selang plastik pengairan 13mm (~ setengah inci) taman murah. Versi sokongan diri yang lebih tegar lebih sesuai dengan