Pulse Width Modulation este o metoda de a reduce puterea eliberată de un semnal electric, prin partajarea semnalului în părți discrete.
Fizic, pentru a reduce puterea eliberată de un Arduino, îi spunem să elibereze 5v în eșantioane de timp. Astfel, dacă vrem o medie de putere eliberată de 2.5V, setăm pinul respectiv să elibereze 5v, jumătate din timp.
Spre deosebire de pinii digitali care pot elibera doar 0 sau 5v, pinii analogici pot citi sau scrie valori mai variate (folosite pentru finețea măsurătorii). Valorile de scriere pot fi între 0-255 care sunt mapate pentru 0 - 5v.
Pinii analogici sunt semnalați cu ”~“.
Pentru a folosi Pulse Width Modulaton (PWM) folosim analogWrite în loc de digitalWrite
void setup() { pinMode(PINUL_MEU, OUTPUT); } void loop() { analogWrite(PINUL_MEU, 127); //Aprindem pinul la jumătate in intensitatea maximă delay(3000); // Așteaptă 3 secunde analogWrite(PINUL_MEU, 0); // Ledul este stins analogWrite(PINUL_MEU, 255); //Aprindem pinul la intensitatea maximă delay(3000); // Așteaptă 3 secunde analogWrite(PINUL_MEU, 0); // Ledul este stins analogWrite(PINUL_MEU, 68); //Aprindem pinul la un sfert din intensitatea maximă delay(3000); // Așteaptă 3 secunde analogWrite(PINUL_MEU, 0); // Ledul este stins }
Toate exercițiile vor fi realizate pe Tinkercad