abc Arduino
Modulisanje širine impulsa - analogWrite() na digitalnom izlazu /PWM PULSE WIDTH MODULATION/

Ardduino ima mogućnost da reguliše širinu izlaznog signala i na taj način da simulira analognu vrijednost. Opšti oblik naredbe glasi:
analogWrite(pinProj, vIzlaz);
- pinProj oznaka digitalnog pina koji ima mogućnost PWM-a;
- vIzlaz ima vrijednosti od 0 do 255 (8 bita)

Pinovi koji imaju PWM osobinu su 3, 5, 6, 9, 10, 11. Označeni su sa ~

- PERIOD Frekvencija generisanog signala je oko 490Hz
Ekran osciloskopa Radni napon /Operating voltage/

Slika 1. Promjena širine impulsa - PWM  

- PERIOD - Frekvencija generisanog signala je oko 490Hz: Na pinovima 5 i 6 frekvencija ja 980Hz. Poređenja radi, savremeni TV oparati osvježavaju sliku od 50 do 100Hz.
Primjeri:
analogWrite(0) - signal je 0% uključen /0% DUTY CYCLE/;.
analogWrite(127)- signal je 50% uključen /50% DUTY CYCLE/;
analogWrite(255) - signal je 100% uključen /100% DUTY CYCLE/;

Šema povezivanja:

Elementi:
- Potenciometar
- otpornik 220 Ω 1 kom.
- Arduino modul

Listing programa :

// analogan izlaz sa LED diodom
int pinProj = 9;     // izlaz na digitalni pin

void setup() {
  Serial.begin(9600);      //  setup serial
}

void loop() {
  analogWrite(pinProj, 0);    // izlazna vrijednost 0
  delay(1000); 
  analogWrite(pinProj, 64);   // izlazna vrijednost 64
  delay(1000); 
  analogWrite(pinProj, 127);  // izlazna vrijednost 127
  delay(1000); 
  analogWrite(pinProj, 191);  // izlazna vrijednost 101
  delay(1000); 
  analogWrite(pinProj, 255);  // izlazna vrijednost 255
  delay(1000); 
}

Index