PWM(modulacja szerokości impulsu) to sposób na sterowanie urządzeniami analogowymi z wyjścia cyfrowego. Innym sposobem na określenie tego jest to, że możesz wyprowadzić sygnał modulujący z urządzenia cyfrowego, do sterowania urządzeniem analogowym. Jest to jeden z głównych sposobów, w jaki mikrokontrolery sterują urządzeniami analogowymi, takimi jak silniki o zmiennej prędkości, ściemniane światła, siłowniki i głośniki. PWM nie jest jednak prawdziwym wyjściem analogowym. PWM „fałszuje” wynik podobny do analogowego, przykładając moc w impulsach lub krótkich seriach regulowanego napięcia
Zadanie:
Program, który będzie stopniowo rozjaśniający diodę Led a następnie wygaszał.
Do zbudowania będziemy potrzebowali:
- Diodę Led
- Rezystor 56Ω
- Arduino (użyłem MKR1010 wifi)
Schemat z animacją:
Kod programu:
#define LedPin 2 // Pin dla diody LED
int pwmValue = 0; // Wartość PWM
int pwmStep = 5; // Krok PWM
void setup() {
pinMode(LedPin, OUTPUT); // Deklaracja LedPin jako WYJŚCIE
}
void loop() {
analogWrite(LedPin, pwmValue); // Wystawienie wartości PWM na LedPin
pwmValue = pwmValue + pwmStep; // Zwiększanie wartości PWM
if (pwmValue <= 0 || pwmValue >= 255) { // Jesli wartos pwmValue <= 0 lub pwmValue >= 255
pwmStep = -pwmStep; // Zmiana znaku zmiennej pwmStep
}
delay(50); // Opóźnienie 50ms
}