PWM - Pulse-width modulation - modulacja szerokości impulsu. Jest to jedna z metod regulacji sygnału prądowego lub napięciowego, polegająca na zmianie szerokości impulsów sygnału o stałej amplitudzie generowanego przez układ sterujący.

Metodę sterowanie sygnałem PWM bardzo często stosuje się do regulacji  mocy grzejników, jasności oświetlenia czy regulacji prędkości obrotowej  silników prądu stałego. Tą metodę możemy zastosować wszędzie tam gdzie  kształt przebiegu                                      nie ma większego znaczenia np. gdy  zwykłą żarówkę z włóknem żarowym zasilimy przebiegiem prostokątnym o  zmiennym wypełnieniu nie zaszkodzi to jej a jasność świecenia będzie  wprost proporcjonalna od stosunku czasu trwania impulsu do czasu  wyłączenia.
 
 Przy częstotliwości sygnału w  okolicach 1.000 Hz (bo często stosuje się właśnie taką częstotliwość)  żarówka nie zdąży przygasnąć w chwilach, gdy prąd nie płynie i żadne  migotanie nie będzie widoczne. Podobnie sprawa się ma z regulacją mocy  grzejników czy regulacji prędkości obrotowej silników.                                      Rzeczywista moc pobierana przez tego typu odbiorniki jest wartością średnią sygnału i możemy powiedzieć, że jeśli ustawimy wypełnienie na 10 % to odbiornik będzie zasilany mocą ok 10 % swojej nominalnej wartości.
 
 Sygnału PWM na pewno nie  będziemy mogli zastosować do regulacji mocy urządzeń, które zasilane  muszą być albo prądem stałym bez żadnych pulsacji albo sinusoidalnym  przebiegiem jak np. silniki prądu przemiennego czy energooszczędne  żarówki jarzeniowe.
 O właściwościach i  zastosowaniach sygnału PWM jeszcze w dalszej części materiału powiem a  teraz zajmę się sposobem generowania takiego sygnału z zastosowaniem  mikrokontrolera Attiny2313. Zdjęcie powyżej przedstawia środowisko  testowe składające się z zasilacza, płytki uruchomieniowej z  mikrokontrolerem, płytki prototypowej ze zmontowanym układem wykonawczym  oraz oscyloskopu na którym będziemy obserwować przebieg. 
 
 Procesor Attiny2313 jest  wyposażony w dwa liczniki/timery pracujące niezależnie od programu. Te  dwa sprzętowe liczniki zwiększające swój stan bez pomocy procesora i  programu. Do generowania sygnału PWM zastosujemy 16-bitowy licznik/timer TC1, który w dodatku ma komparator cyfrowy, za pomocą którego na bieżąco możemy porównywać stan licznika z liczbą wpisaną do rejestru porównania. Każde zrównanie się stanu licznika TC1 z liczbą wpisaną do rejestru porównania OCR1 (w bascomie oznaczone jako: Compare1a lub Pwm1a)                                      może być źródłem przerwania  programowego jak i może powodować reakcję dodatkowego wyjścia procesora OC1, którym w naszym procesorze jest nóżka Nr. 15 (Pb.3) Ponadto w momencie zrównania stanu licznika ze stanem rejestru  porównania, licznik może zostać skasowany i liczyć od nowa.
 
											 
                            
                            
                            
                    
                     
                            
                            
                            
                    
                     
                
                
                
                
                                         
                
                
                
                
                                         
                
                
                
                
                                         
                
                
                
                
                                         
                
                
                
                
                                         
                
                
                
                
                                         
                
                
                
                
                                         
                
                
                
                
                                         
                
                
                
                
                                        