![PIC Mikrodenetleyici ile PWM Dalgası Oluşturun: 6 Adım PIC Mikrodenetleyici ile PWM Dalgası Oluşturun: 6 Adım](https://i.howwhatproduce.com/images/010/image-27971-j.webp)
İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-23 15:13
![PIC Mikrodenetleyici ile PWM Dalgası Oluşturun PIC Mikrodenetleyici ile PWM Dalgası Oluşturun](https://i.howwhatproduce.com/images/010/image-27971-2-j.webp)
![PIC Mikrodenetleyici ile PWM Dalgası Oluşturun PIC Mikrodenetleyici ile PWM Dalgası Oluşturun](https://i.howwhatproduce.com/images/010/image-27971-3-j.webp)
![PIC Mikrodenetleyici ile PWM Dalgası Oluşturun PIC Mikrodenetleyici ile PWM Dalgası Oluşturun](https://i.howwhatproduce.com/images/010/image-27971-4-j.webp)
PWM NEDİR?
DARBE GENİŞLİK MODÜLASYONU İÇİN PWM STANDLARI, darbe genişliğinin değiştirildiği bir tekniktir.
Bu kavramı net bir şekilde anlamak için, bir saat darbesini veya herhangi bir kare dalga sinyalini düşünün, %50 görev döngüsüne sahiptir, yani Ton ve Toff periyodu aynıdır, Sinyalin yüksek olduğu toplam süre ve sinyalin düşük olduğu süreye toplam denir. zaman dilimi.
Yukarıda gösterilen resim için bu dalganın görev döngüsü %50'dir.
Görev döngüsü = (AÇIK süre / Toplam Süre)*100
ON time - sinyalin yüksek olduğu süre
KAPALI zamanı - sinyalin düşük olduğu süre Toplam süre - Darbenin toplam süresi (hem AÇIK hem de KAPALI zamanı)
Adım 1: Mikrodenetleyici Seçimi
![Mikrodenetleyici Seçimi Mikrodenetleyici Seçimi](https://i.howwhatproduce.com/images/010/image-27971-5-j.webp)
Projeye uygun mikrodenetleyici seçimi bu projenin temel kısmıdır. PWM kanalları (CCP kayıtları) ile mikrodenetleyicilerde PWM sinyalleri üretilebilir. Bu proje için pic16f877'ye bağlı kalmayı planlıyorum. Aşağıda verilen veri sayfası bağlantısını indirebilirsiniz
PIC16F877a veri sayfası buraya tıklayın
CCP modülü, PWM sinyalinin üretilmesinden sorumludur. CCP1 ve CCP2, PORTC ile çoğullanır. PORTC, 8 bit genişliğinde çift yönlü bir bağlantı noktasıdır. Karşılık gelen veri yönü kaydı TRISC'dir. TRISC bitinin (=1) ayarlanması, karşılık gelen PORTC pinini giriş olarak alacaktır. Bir TRISC bitini(=0) temizlemek, karşılık gelen PORTC pinini bir çıkış yapacaktır.
TRISK = 0; //Bu biti temizlemek çıktı olarak PORTC yapacak
2. Adım: CCP MODÜLÜNÜ YAPILANDIRIN
![CCP MODÜLÜNÜ YAPILANDIR CCP MODÜLÜNÜ YAPILANDIR](https://i.howwhatproduce.com/images/010/image-27971-6-j.webp)
![CCP MODÜLÜNÜ YAPILANDIR CCP MODÜLÜNÜ YAPILANDIR](https://i.howwhatproduce.com/images/010/image-27971-7-j.webp)
CCP - YAKALA/KARŞILAŞTIR/PWM MODÜLLERİ
Her Yakalama/Karşılaştırma/PWM (CCP) modülü aşağıdaki gibi çalışabilen 16 bitlik bir kayıt içerir:
• 16 bit Yakalama kaydı
• 16-bit Karşılaştırma kaydı
• PWM Master/Slave Görev Döngüsü kaydı
CCP1CON kaydını PWM moduna yapılandırın
Kayıt Açıklama
CCPxCON Bu kayıt, Yakalama/Karşılaştırma/PWM işlemi için CCP modülünü yapılandırmak için kullanılır.
CCPRxL Bu kayıt, PWM'nin 8 Msb bitini tutar, daha düşük 2 bit, CCPxCON kaydının parçası olacaktır.
PWM çıkışını oluşturmak için CCPR1L ve PR2 ile karşılaştırılacak olan TMR2 Serbest çalışan sayaç.
Şimdi CCP1CON kaydını yapılandırmak için bitleri temsil etmek için ikili kullanacağım.
yukarıdaki resme bakın.
CCP1CON = 0b00001111;
Ayrıca hex formatı da yapabilirsiniz
CCP1CON = 0x0F; //PWM modu için CCP1CON kaydının yapılandırılması
Adım 3: Timer2 Modülünü Yapılandırma (TMR2 Kaydı)
![Timer2 Modülünü Yapılandırma (TMR2 Kaydı) Timer2 Modülünü Yapılandırma (TMR2 Kaydı)](https://i.howwhatproduce.com/images/010/image-27971-8-j.webp)
Timer2, ön ölçekleyici ve son ölçekleyici içeren 8 bitlik bir zamanlayıcıdır. CCP modülünün/modüllerinin PWM modu için PWM zaman tabanı olarak kullanılabilir. TMR2 kaydı okunabilir ve yazılabilirdir ve herhangi bir cihaz Sıfırlamasında silinir.
T2CON kaydı gösterilir
Ön ölçek ve son ölçek, üretilen PWM dalgasının çıkış frekansını ayarlayacaktır.
Frekans = saat frekansı/(4*ön ölçekleyici*(PR2-TMR2)*Son ölçekleyici*sayı)
Tout = 1/frekans nerede
T2CON = 0b00000100;
Bu, 2.5 KHz @ 1Mhz veya 100KHz @ 4MHz kristal üretecektir (pratikte bu PWM frekansı için bir sınırlama vardır, daha fazla ayrıntı için belirli veri sayfasına bakın)
altıgen gösterim
T2CON = 0x04; // Ön Ölçekleyici ve ölçek sonrası yapılandırma olmadan T2CON'u etkinleştirin
Adım 4: PR2'yi Yapılandırma (Zamanlayıcı2 Dönem Kaydı)
Timer2 modülünün 8 bitlik bir periyot kaydı olan PR2 vardır. Zamanlayıcı2, 00h'den PR2 ile eşleşene kadar artar ve ardından bir sonraki artış döngüsünde 00h'ye sıfırlanır. PR2, okunabilir ve yazılabilir bir kayıttır. PR2 kaydı, Sıfırlama üzerine FFh'ye başlatılır.
PR2 için uygun bir aralığın ayarlanması, oluşturulan PWM dalgasının görev döngüsünün değiştirilmesine izin verecektir.
PR2 = 100; // Görev döngüsünü 0-100 arasında değiştirmek için Döngü süresini 100'e ayarlayın
Basit olması için CCPR1L = 80 yaparak PR2=100 kullanıyorum; %80 görev döngüsü elde edilebilir.
Adım 5: CCPR1l Modülünü Yapılandırın
PR2 = 100 olduğundan CCPR1l, istenen görev döngüsünü elde etmek için 0-100 arasında herhangi bir yerde yapılandırılabilir.
Adım 6: Krokiyi Üzerinize Yazın MPLAB X IDE Kod Aşağıda Verilmiştir
![Krokiyi Üzerinize Yazın MPLAB X IDE Kod Aşağıda Verilmiştir Krokiyi Üzerinize Yazın MPLAB X IDE Kod Aşağıda Verilmiştir](https://i.howwhatproduce.com/images/010/image-27971-9-j.webp)
#Dahil etmek
void delay(int a) //gecikme oluşturma işlevi{
for(int i=0; i<a;i++)
{
for(int j=0;j<144;j++);
}
}
geçersiz ana()
{ TRISK = 0; //Bu biti temizlemek çıktı olarak PORTC yapacak.
CCP1CON = 0x0F; //PWM modu için CCP1CON kaydının yapılandırılması
T2CON = 0x04; // Ön Ölçekleyici ve ölçek sonrası yapılandırma olmadan T2CON'u etkinleştirin.
PR2 = 100; // Görev döngüsünü 0-100 arasında değiştirmek için Döngü süresini 100'e ayarlayın
süre(1){
CCPR1L = 75; //oluşturulan %75 görev döngüsü gecikmesi(1);
}
}
Ayrıca kodda küçük bir değişiklik yaptım, böylece üretilen PWM dalgasının frekansı
Bu kod, proteus'ta simüle edilmiştir ve çıkış PWM dalgası aşağıda gösterilmiştir. Bunu resim geliştirme panolarınıza yüklemek için, uygun konfigürasyon bitleriyle #include kullanın.
Teşekkürler
Önerilen:
ESP32 ile PWM - Arduino IDE ile ESP 32'de PWM ile LED Karartma: 6 Adım
![ESP32 ile PWM - Arduino IDE ile ESP 32'de PWM ile LED Karartma: 6 Adım ESP32 ile PWM - Arduino IDE ile ESP 32'de PWM ile LED Karartma: 6 Adım](https://i.howwhatproduce.com/images/001/image-1144-103-j.webp)
ESP32 ile PWM | Arduino IDE ile ESP 32'de PWM ile LED Karartma: Bu talimatta Arduino IDE & PWM temel olarak herhangi bir MCU'dan analog çıkış üretmek için kullanılır ve bu analog çıkış 0V ile 3.3V (esp32 durumunda) arasında herhangi bir şey olabilir & itibaren
Sinüs Dalgası Oluşturmak için NE555 Devresini Kendin Yap: 6 Adım
![Sinüs Dalgası Oluşturmak için NE555 Devresini Kendin Yap: 6 Adım Sinüs Dalgası Oluşturmak için NE555 Devresini Kendin Yap: 6 Adım](https://i.howwhatproduce.com/images/004/image-10054-j.webp)
Sinüs Dalgası Oluşturmak için Bir NE555 Devresi Yapın: Bu eğitim size sinüs dalgası oluşturmak için bir NE555 devresini nasıl DIY yapacağınızı öğretir. Bu uygun fiyatlı DIY kitleri, kapasitörlerin şarj ve deşarj süresini kontrol etmek için dirençlerle nasıl çalışabileceğini anlamanız için çok faydalıdır
PIC Mikrodenetleyici Tabanlı Robotik Kol: 6 Adım (Resimli)
![PIC Mikrodenetleyici Tabanlı Robotik Kol: 6 Adım (Resimli) PIC Mikrodenetleyici Tabanlı Robotik Kol: 6 Adım (Resimli)](https://i.howwhatproduce.com/images/006/image-16058-83-j.webp)
PIC Mikrodenetleyici Tabanlı Robotik Kol: Otomobil imalat endüstrilerinin montaj hattından uzaydaki telecerrahi robotlarına kadar Robotik Kollar her yerde bulunabilir. Bu robotların mekanizmaları, benzer işlevler için programlanabilen bir insana benzer ve artan
PIC Mikrodenetleyici Geliştirme Kartı Sistemi: 3 Adım
![PIC Mikrodenetleyici Geliştirme Kartı Sistemi: 3 Adım PIC Mikrodenetleyici Geliştirme Kartı Sistemi: 3 Adım](https://i.howwhatproduce.com/images/006/image-17092-6-j.webp)
PIC Mikrodenetleyici Geliştirme Kartı Sistemi: Bu proje, çok çeşitli PIC tabanlı elektronik projelere uyacak şekilde esnek olan bir PIC geliştirme aracının tasarımı ve kullanımı içindir. Geliştirme araçlarının kullanımıyla mikrodenetleyici projeleri geliştirmek genellikle daha kolaydır; kullanıcı tabanlı izin veren
Etkileşimli Ses Dalgası Baskısı Nasıl Yapılır: 8 Adım (Resimlerle)
![Etkileşimli Ses Dalgası Baskısı Nasıl Yapılır: 8 Adım (Resimlerle) Etkileşimli Ses Dalgası Baskısı Nasıl Yapılır: 8 Adım (Resimlerle)](https://i.howwhatproduce.com/images/002/image-4472-19-j.webp)
Etkileşimli Ses Dalgası Baskısı Nasıl Yapılır: Bu eğitimde size bir resim çerçevesi içinde nasıl etkileşimli bir ses dalgası baskısı yapacağınızı göstereceğiz, böylece en sevdiğiniz şarkıyı aynı anda görebilir ve duyabilirsiniz! Çerçevenin camından baskıya dokunduğunuzda, oğlu oynayacak