![Wygeneruj falę PWM za pomocą mikrokontrolera PIC: 6 kroków Wygeneruj falę PWM za pomocą mikrokontrolera PIC: 6 kroków](https://i.howwhatproduce.com/images/010/image-27971-j.webp)
Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-23 15:02
![Generuj falę PWM za pomocą mikrokontrolera PIC Generuj falę PWM za pomocą mikrokontrolera PIC](https://i.howwhatproduce.com/images/010/image-27971-2-j.webp)
![Generuj falę PWM za pomocą mikrokontrolera PIC Generuj falę PWM za pomocą mikrokontrolera PIC](https://i.howwhatproduce.com/images/010/image-27971-3-j.webp)
![Generuj falę PWM za pomocą mikrokontrolera PIC Generuj falę PWM za pomocą mikrokontrolera PIC](https://i.howwhatproduce.com/images/010/image-27971-4-j.webp)
CO TO JEST PWM?
STANOWISKO PWM DO MODULACJI SZEROKOŚCI IMPULSU to technika, dzięki której zmienia się szerokość impulsu.
Aby zrozumieć tę koncepcję, należy wyraźnie rozważyć impuls zegarowy lub dowolny sygnał fali prostokątnej, który ma 50% współczynnik wypełnienia, co oznacza, że okres Ton i Toff jest taki sam. okres czasu.
Dla obrazu pokazanego powyżej ta fala ma współczynnik wypełnienia 50%
Cykl pracy = (czas włączenia / czas całkowity)*100
ON time - czas, przez który sygnał był wysoki
Czas wyłączenia - czas, w którym sygnał był niski. Całkowity czas - Całkowity czas trwania impulsu (zarówno czas załączenia, jak i wyłączenia)
Krok 1: Wybór mikrokontrolera
![Wybór mikrokontrolera Wybór mikrokontrolera](https://i.howwhatproduce.com/images/010/image-27971-5-j.webp)
Dobór odpowiedniego mikrokontrolera do projektu to istotna część projektu Sygnały PWM mogą być generowane w mikrokontrolerach z kanałami PWM (rejestry CCP). Do tego projektu zamierzam trzymać się pic16f877. możesz pobrać link do arkusza danych podany poniżej
Arkusz danych PIC16F877a kliknij tutaj
Moduł CCP jest odpowiedzialny za wytwarzanie sygnału PWM. CCP1 i CCP2 są multipleksowane z PORTC. PORTC to dwukierunkowy port o szerokości 8 bitów. Odpowiednim rejestrem kierunku danych jest TRISC. Ustawienie bitu TRISC (=1) spowoduje przyjęcie odpowiedniego pinu PORTC jako wejścia. Wyczyszczenie bitu TRISC (=0) spowoduje, że odpowiedni pin PORTC stanie się wyjściem.
TRISC = 0; //Wyczyszczenie tego bitu spowoduje, że PORTC stanie się wyjściem
Krok 2: SKONFIGURUJ MODUŁ CCP
![KONFIGURUJ MODUŁ CCP KONFIGURUJ MODUŁ CCP](https://i.howwhatproduce.com/images/010/image-27971-6-j.webp)
![KONFIGURUJ MODUŁ CCP KONFIGURUJ MODUŁ CCP](https://i.howwhatproduce.com/images/010/image-27971-7-j.webp)
CCP - PRZECHWYTY / PORÓWNAJ / MODUŁY PWM
Każdy moduł Capture/Compare/PWM (CCP) zawiera 16-bitowy rejestr, który może działać jako:
• 16-bitowy rejestr przechwytywania
• 16-bitowy rejestr porównawczy
• Rejestr cyklu pracy PWM Master/Slave
Skonfiguruj rejestr CCP1CON w trybie PWM
Rejestr Opis
CCPxCON Rejestr ten służy do konfiguracji modułu CCP do obsługi przechwytywania/porównania/PWM.
CCPRxL Rejestr ten przechowuje 8-Msb bitów PWM, niższe 2 bity będą częścią rejestru CCPxCON.
TMR2 Licznik swobodnego biegu, który będzie porównywany z CCPR1L i PR2 w celu wygenerowania wyjścia PWM.
Teraz użyję binarnych do reprezentowania bitów do konfiguracji rejestru CCP1CON.
patrz obrazek powyżej.
CCP1CON = 0b00001111;
Możesz także formatować szesnastkowo
CCP1CON = 0x0F; //konfiguracja rejestru CCP1CON dla trybu PWM
Krok 3: Konfiguracja modułu Timer2 (rejestr TMR2)
![Konfiguracja modułu Timer2 (rejestr TMR2) Konfiguracja modułu Timer2 (rejestr TMR2)](https://i.howwhatproduce.com/images/010/image-27971-8-j.webp)
Timer2 to 8-bitowy timer z preskalerem i postskalerem. Może być używany jako podstawa czasu PWM dla trybu PWM modułu(ów) CCP. Rejestr TMR2 jest odczytywalny i zapisywalny i jest usuwany na każdym urządzeniu Reset.
Wyświetlany jest rejestr T2CON
Prescale i postscale dostosują częstotliwość wyjściową generowanej fali PWM.
Częstotliwość = częstotliwość taktowania/(4*preskaler*(PR2-TMR2)*postskaler*liczba)
Gdzie Tout = 1/częstotliwość
T2CON = 0b00000100;
Spowoduje to wygenerowanie kryształu 2,5 KHz przy 1 MHz lub 100 KHz przy 4 MHz (praktycznie istnieje ograniczenie dla tej częstotliwości PWM, aby uzyskać więcej informacji, patrz konkretny arkusz danych)
reprezentacja szesnastkowa
T2CON = 0x04; // włącz T2CON bez konfiguracji preskalera i postskalowania
Krok 4: Konfiguracja PR2 (rejestr okresów Timer2)
Moduł Timer2 posiada 8-bitowy rejestr okresowy PR2. Timer2 narasta od 00h do momentu dopasowania PR2, a następnie resetuje się do 00h w następnym cyklu przyrostowym. PR2 to rejestr czytelny i zapisywalny. Rejestr PR2 jest inicjowany do FFh po zresetowaniu.
Ustawienie odpowiedniego zakresu dla PR2 pozwoli na zmianę współczynnika wypełnienia generowanej fali PWM
PR2 = 100; // Ustaw czas cyklu na 100, aby zmienić cykl pracy od 0-100
Dla uproszczenia używam PR2=100, tworząc CCPR1L = 80; Można osiągnąć 80% cyklu pracy.
Krok 5: Skonfiguruj moduł CCPR1l
Ponieważ PR2 = 100 CCPR1l można skonfigurować w dowolnym miejscu w zakresie od 0 do 100, aby uzyskać żądany cykl pracy.
Krok 6: Napisz szkic na sobie MPLAB X IDE kod jest podany poniżej
![Napisz szkic o sobie MPLAB X IDE kod jest podany poniżej Napisz szkic o sobie MPLAB X IDE kod jest podany poniżej](https://i.howwhatproduce.com/images/010/image-27971-9-j.webp)
#włączać
void delay(int a) //funkcja generowania opóźnienia{
for(int i=0; i<a;i++)
{
for(int j=0;j<144;j++);
}
}
nieważne główne ()
{ TRISC = 0; //Wyczyszczenie tego bitu spowoduje, że PORTC stanie się wyjściem.
CCP1CON = 0x0F; //konfiguracja rejestru CCP1CON dla trybu PWM
T2CON = 0x04; // włącz T2CON bez konfiguracji preskalera i postskalowania.
PR2 = 100; // Ustaw czas cyklu na 100, aby zmienić cykl pracy od 0-100
póki(1){
CCPR1L = 75; //generowane 75% opóźnienia cyklu pracy(1);
}
}
Zrobiłem też małą modyfikację w kodzie, aby częstotliwość generowanej fali PWM
Ten kod jest symulowany w proteusie, a wyjściowa fala PWM jest pokazana poniżej. Aby przesłać to na swoje tablice rozwojowe do zdjęć, użyj #include z odpowiednimi bitami konfiguracyjnymi.
Dziękuję Ci
Zalecana:
Wiggly Wobbly - Zobacz fale dźwiękowe !! Wizualizator audio w czasie rzeczywistym!!: 4 kroki
![Wiggly Wobbly - Zobacz fale dźwiękowe !! Wizualizator audio w czasie rzeczywistym!!: 4 kroki Wiggly Wobbly - Zobacz fale dźwiękowe !! Wizualizator audio w czasie rzeczywistym!!: 4 kroki](https://i.howwhatproduce.com/images/006/image-17571-j.webp)
Wiggly Wobbly - Zobacz fale dźwiękowe !! Wizualizator dźwięku w czasie rzeczywistym !!: Czy kiedykolwiek zastanawiałeś się, jak wyglądają piosenki Beetle? A może po prostu chcesz zobaczyć, jak wygląda dźwięk? Nie martw się, jestem tutaj, aby ci pomóc, aby to reeeeeaaaaaaaaaaaaa
Jak zrobić drona za pomocą Arduino UNO - Zrób quadkopter za pomocą mikrokontrolera: 8 kroków (ze zdjęciami)
![Jak zrobić drona za pomocą Arduino UNO - Zrób quadkopter za pomocą mikrokontrolera: 8 kroków (ze zdjęciami) Jak zrobić drona za pomocą Arduino UNO - Zrób quadkopter za pomocą mikrokontrolera: 8 kroków (ze zdjęciami)](https://i.howwhatproduce.com/images/001/image-210-31-j.webp)
Jak zrobić drona za pomocą Arduino UNO | Zrób quadkopter za pomocą mikrokontrolera: WprowadzenieOdwiedź mój kanał YouTubeDron to bardzo drogi gadżet (produkt) do kupienia. W tym poście zamierzam omówić, jak robię to tanio?? I jak możesz zrobić taki własny w niskiej cenie… Cóż, w Indiach wszystkie materiały (silniki, ESC
Zobacz fale dźwiękowe przy użyciu kolorowego światła (LED RGB): 10 kroków (ze zdjęciami)
![Zobacz fale dźwiękowe przy użyciu kolorowego światła (LED RGB): 10 kroków (ze zdjęciami) Zobacz fale dźwiękowe przy użyciu kolorowego światła (LED RGB): 10 kroków (ze zdjęciami)](https://i.howwhatproduce.com/images/003/image-6257-10-j.webp)
Zobacz fale dźwiękowe przy użyciu kolorowego światła (LED RGB): Tutaj możesz zobaczyć fale dźwiękowe i obserwować wzorce interferencyjne wytwarzane przez dwa lub więcej przetworników, ponieważ odstępy między nimi są zróżnicowane. (Skrajnie po lewej, wzór interferencji z dwoma mikrofonami przy 40 000 cykli na sekundę; u góry po prawej, pojedynczy mikrofon
Konfiguracja bitów bezpiecznika mikrokontrolera AVR. Tworzenie i przesyłanie do pamięci Flash mikrokontrolera programu migania diody LED.: 5 kroków
![Konfiguracja bitów bezpiecznika mikrokontrolera AVR. Tworzenie i przesyłanie do pamięci Flash mikrokontrolera programu migania diody LED.: 5 kroków Konfiguracja bitów bezpiecznika mikrokontrolera AVR. Tworzenie i przesyłanie do pamięci Flash mikrokontrolera programu migania diody LED.: 5 kroków](https://i.howwhatproduce.com/images/001/image-689-71-j.webp)
Konfiguracja bitów bezpiecznika mikrokontrolera AVR. Tworzenie i wgrywanie do pamięci Flash mikrokontrolera programu migającego diody LED.: W tym przypadku stworzymy prosty program w kodzie C i wypiszemy go w pamięci mikrokontrolera. Napiszemy własny program i skompilujemy plik szesnastkowy, wykorzystując Atmel Studio jako zintegrowaną platformę programistyczną. Skonfigurujemy bezpiecznik bi
Sterowanie silnikami prądu stałego za pomocą L298N za pomocą mikrokontrolera CloudX: 3 kroki
![Sterowanie silnikami prądu stałego za pomocą L298N za pomocą mikrokontrolera CloudX: 3 kroki Sterowanie silnikami prądu stałego za pomocą L298N za pomocą mikrokontrolera CloudX: 3 kroki](https://i.howwhatproduce.com/images/001/image-2903-79-j.webp)
Sterowanie silnikami prądu stałego za pomocą L298N za pomocą mikrokontrolera CloudX: W tym projekcie wyjaśnimy, jak wykorzystać nasz mostek H L298N do zwiększania i zmniejszania prędkości silnika prądu stałego. Moduł L298N H-bridge może być używany z silnikami o napięciu od 5 do 35 V DC. Istnieje również wbudowany regulator 5 V, więc jeśli