Mündəricat:
- Addım 1: Mikrokontrolörün seçilməsi
- Addım 2: CCP MODÜLÜNÜ YAPILANDIRIN
- Addım 3: Timer2 Modulunun Konfiqurasiyası (TMR2 Qeydiyyatı)
- Addım 4: PR2 -ni konfiqurasiya edin (Timer2 Dövr Qeydiyyatı)
- Addım 5: CCPR1l Modulunu konfiqurasiya edin
- Addım 6: Eskizinizi MPLAB X IDE -yə yazın, Kod Aşağıda Verilmişdir
Video: PIC Mikrokontrolör ilə PWM Dalğası yaradın: 6 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:45
PWM NƏDİR?
Nəbz genişliyinin modulyasiyası üçün PWM STANDS, nəbz genişliyinin müxtəlif olduğu bir texnikadır.
Bu konsepsiyanı aydın şəkildə başa düşmək üçün bir saat nəbzini və ya hər hansı bir kvadrat dalğa siqnalını nəzərə alsaq, Ton və Toff dövrünün eyni olduğunu ifadə edən 50% iş dövrü var, Siqnalın yüksək olduğu və siqnalın aşağı olduğu müddətə ümumi deyilir. vaxt dövrü.
Yuxarıda göstərilən görüntü üçün bu dalğanın 50% bir iş dövrü var
Vəzifə dövrü = (AÇMA vaxtı / Toplam Zaman)*100
ON vaxtı - siqnalın yüksək olduğu vaxt
OFF vaxtı - siqnalı aşağı olan vaxt düşməni Toplam vaxt - Nəbzin ümumi müddəti (həm ON, həm də OFF vaxtı)
Addım 1: Mikrokontrolörün seçilməsi
Layihə üçün uyğun mikrokontrolörün seçilməsi, PWM siqnallarının PWM kanalları (CCP registrləri) olan mikrokontrolörlərdə yaradıla biləcəyi layihənin əsas hissəsidir. Bu layihə üçün pic16f877 ilə qalmağı planlaşdırıram. məlumat cədvəlini aşağıda yükləyə bilərsiniz
PIC16F877a məlumat cədvəli bura vurun
CCP modulu, PWM siqnalının istehsalından məsuldur. CCP1 və CCP2, PORTC ilə multipleksləşdirilmişdir. PORTC, 8 bitlik geniş iki istiqamətli bir portdur. Müvafiq məlumat istiqaməti qeydiyyatı TRISC -dir. TRISC bitini (= 1) təyin etmək, müvafiq PORTC pinini giriş olaraq almağa məcbur edəcək. Bir TRISC bitinin silinməsi (= 0) müvafiq PORTC pinini çıxışa çevirəcəkdir.
TRISC = 0; // Bu bitin silinməsi PORTC -ni çıxış kimi edəcək
Addım 2: CCP MODÜLÜNÜ YAPILANDIRIN
CCP - CAPTURE/COMPARE/PWM MODULLARI
Hər Capture/Compare/PWM (CCP) modulu, aşağıdakı kimi işləyə bilən 16 bitlik bir reyestrdən ibarətdir:
• 16-bit Capture qeydiyyatı
• 16 bit Müqayisə Qeydiyyatı
• PWM Master/Slave Duty Cycle qeydiyyatı
CCP1CON qeydiyyatını PWM rejiminə konfiqurasiya edin
Qeyd Təsviri
CCPxCON Bu qeyd CCP modulunu Capture/Compare/PWM əməliyyatları üçün konfiqurasiya etmək üçün istifadə olunur.
CCPRxL Bu qeyd PWM-in 8-Msb bitinə malikdir, aşağı 2-bit CCPxCON reyestrinin bir hissəsi olacaq.
PWM çıxışı yaratmaq üçün CCPR1L və PR2 ilə müqayisə ediləcək TMR2 Pulsuz çalışan sayğac.
İndi CCP1CON qeydini konfiqurasiya etmək üçün bitləri təmsil etmək üçün ikili istifadə edəcəyəm.
yuxarıdakı şəklə baxın.
CCP1CON = 0b00001111;
Onaltılıq format da edə bilərsiniz
CCP1CON = 0x0F; // PWM rejimi üçün CCP1CON qeydiyyatını konfiqurasiya etmək
Addım 3: Timer2 Modulunun Konfiqurasiyası (TMR2 Qeydiyyatı)
Timer2, bir prescaler və bir postscaler ilə 8 bitlik bir taymerdir. CCP modullarının modullarının PWM rejimi üçün PWM vaxt bazası kimi istifadə edilə bilər. TMR2 reyestri oxunaqlıdır və yazıla bilər və hər hansı bir cihazda sıfırlanır.
T2CON reyestri göstərilir
Öncədən və sonrakı miqyas, yaradılan PWM dalğasının çıxış tezliyini tənzimləyəcək.
Tezlik = saat tezliyi/(4*prescaler*(PR2-TMR2)*Postscaler*sayı)
Harada Tout = 1/tezlik
T2CON = 0b00000100;
Bu, 1 KHz -də və ya 4 MHz -də 100 KHz -də 2.5 KHz kristal istehsal edəcək (praktiki olaraq bu PWM tezliyi ilə bağlı daha çox məlumat üçün xüsusi məlumat cədvəlinə baxın)
hex təsviri
T2CON = 0x04; // T2CON -u Prescaler və postscale konfiqurasiyası olmadan aktiv edin
Addım 4: PR2 -ni konfiqurasiya edin (Timer2 Dövr Qeydiyyatı)
Timer2 modulunda 8 bitlik dövr qeydləri var, PR2. Timer2, 00h -dən PR2 ilə uyğunlaşana qədər artır və sonra növbəti artım dövründə 00h -ə sıfırlanır. PR2 oxunaqlı və yazıla bilən bir reyestrdir. Sıfırlandıqdan sonra PR2 reyestri FFh olaraq işə salınır.
PR2 üçün uyğun bir aralığın təyin edilməsi, istifadə edilən PWM dalğasının iş dövrünü dəyişdirməyə imkan verəcəkdir
PR2 = 100; // Vəzifə dövrünü 0-100 arasında dəyişmək üçün Dövr vaxtını 100 olaraq təyin edin
Sadəlik üçün CCPR1L = 80 edərək PR2 = 100 istifadə edirəm; 80% vəzifə dövrü əldə edilə bilər.
Addım 5: CCPR1l Modulunu konfiqurasiya edin
PR2 = 100 CCPR1l istənilən vəzifə dövrünü əldə etmək üçün 0-100 arasında hər hansı bir yerdə konfiqurasiya edilə bilər.
Addım 6: Eskizinizi MPLAB X IDE -yə yazın, Kod Aşağıda Verilmişdir
#daxil edin
void delay (int a) // gecikmə yaratmaq funksiyası {
üçün (int i = 0; i <a; i ++)
{
üçün (int j = 0; j <144; j ++);
}
}
void main ()
{TRISC = 0; // Bu bitin silinməsi PORTC -ni çıxış kimi edəcək.
CCP1CON = 0x0F; // PWM rejimi üçün CCP1CON qeydiyyatını konfiqurasiya etmək
T2CON = 0x04; // T2CON -u Prescaler və postscale konfiqurasiyası olmadan aktiv edin.
PR2 = 100; // Vəzifə dövrünü 0-100 arasında dəyişmək üçün Dövr vaxtını 100 olaraq təyin edin
isə (1) {
CCPR1L = 75; // 75% iş dövrü gecikməsi yaradıldı (1);
}
}
Yaradılan PWM dalğasının tezliyi üçün kodda bir az dəyişiklik etdim
Bu kod proteusda simulyasiya edilmiş və PWM dalğası aşağıda göstərilmişdir Bunu şəkil inkişaf etdirmə lövhələrinizə yükləmək üçün uyğun konfiqurasiya bitləri ilə #include istifadə edin.
Çox sağ ol
Tövsiyə:
ESP32 ilə PWM - Arduino IDE ilə ESP 32 -də PWM ilə LED Karartma: 6 addım
ESP32 ilə PWM | Arduino IDE ilə ESP 32 -də PWM ilə LED Karartma: Bu təlimatlarda Arduino IDE istifadə edərək ESP32 ilə PWM siqnallarının necə yaradılacağını görəcəyik. PWM əsasən hər hansı bir MCU -dan analoq çıxışı yaratmaq üçün istifadə olunur və bu analog çıxış 0V ilə 3.3V arasında ola bilər (esp32 vəziyyətində) & dan
ATtiny85 Mikrokontrolör ilə MAX7219 Sürücü LED Matrix 8x8 Necə İnterfeys Edilir: 7 addım
ATtiny85 Mikrokontrolör ilə MAX7219 Sürücülü LED Matrix 8x8 Necə İnterfeys Edilir: MAX7219 nəzarətçisi, Maxim Integrated tərəfindən istehsal olunur, 64 fərdi LED, 7 seqmentli rəqəmsal LED displeyləri ilə mikro nəzarətçiləri birləşdirə bilən kompakt, seriyalı giriş/çıxış ümumi katodlu ekran sürücüsüdür. 8 rəqəmə qədər, bar qrafiki göstəricisi
PIC Mikrokontrolör əsaslı Robotik Qol: 6 Addım (Şəkillərlə birlikdə)
PIC Mikrokontrolör əsaslı Robotik Kol: Avtomobil istehsal sənayesinin montaj xəttindən kosmosdakı telesurji robotlarına qədər hər yerdə Robotik Silahlara rast gəlmək olar. Bu robotların mexanizmləri oxşar funksiya və artımlar üçün proqramlaşdırıla bilən bir insana bənzəyir
Dot Matrix LED Ekran 8051 Mikrokontrolör ilə Arayüz: 5 addım
Dot Matrix LED Ekran 8051 Mikrodenetleyicisi ilə İnterfeys: Bu layihədə 8051 mikrokontrolörlü bir nöqtə matrisli LED displeyə keçəcəyik. Burada proteusda simulyasiya göstərəcəyik, eyni şeyi aparatınıza da tətbiq edə bilərsiniz. Beləliklə, burada əvvəlcə bu displeydə 'A' deyək bir xarakter çap edəcəyik
8051 Mikrokontrolör ilə LCD -də Xüsusi Xüsusiyyətləri Necə Yazdırmaq olar: 4 addım
8051 Mikrokontrolör ilə LCD -də Xüsusi Xüsusiyyətləri Necə Yazdırmaq olar: Bu layihədə sizə 8051 mikrokontrolördən istifadə edərək 16 * 2 LCD -də xüsusi xarakterin necə çap ediləcəyini izah edəcəyik. 8 bit rejimində LCD istifadə edirik. Eyni şeyi 4 bit rejimi ilə də edə bilərik