PWM (Pulse Width Modulation) cz7

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

PWM

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ą:

PWM

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
}