digitalWrite fonksiyonu çıkış olarak tanımlanan bir pine HIGH yada LOW gibi sadece 2 farklı değer gönderebilirken analogWrite fonksiyonu 0-255 arasında değer gönderebilmektedir. 0 LOW 255 HIGH gibi düşünülebilir ancak aradaki diğer değerler farklı voltajlar üretecektir.
Tabi analogWrite fonksiyonunun kullanılabileceği pinler sınırlıdır. PWM (Pulse Width Modulation) olarak bahsedilen pinler arduino kart üzerinde ~ simgesi ile işaret edilmektedir. Arduino uno için 3,5,6,9,10 ve 11 numaralı pinler PWM pinleridir. Bu pinlere analogWrite komutu kullanılarak ara değerler gönderilebilir. Bir LED'in farklı parlaklık değerlerinde yakılması ya da bir motorun farklı hızlarda çalıştırılması gibi uygulamalarda kullanılabilir.
analogWrite (deger1,deger2); Burada deger1 pinnumarası deger2 ise 0-255 aralığında bir değerdir. 0 değeri 0 volta 255 ise 5 volta karşılık düşünülür. Ara değerler oran orantı kurularak hesaplanabilir.
Not: delay komutu belirtilen mili saniye cinsinden programı bekletmek için kullanılır.
delay(1000); 1 saniye bekle manasına gelmektedir.
Örnek : Bir ledin 1 er saniye ara ile farklı parlaklık değerlerinde yanmasını sağlayan uygulama
/*3 nolu pwm pini ledin bağlanacağı pin olarak seçildi*/ int ledPin=3; void setup() { //ledin bağlanacağı pin çıkış olarak tanımlandı pinMode(ledPin,OUTPUT); } void loop() { //led başlangıçta yanmıyor analogWrite(ledPin,0); //1 saniye bekle delay(1000); //led yarı parlaklıkta yanıyor analogWrite(ledPin,125); //1 saniye bekle delay(1000); //led tam parlaklıkta yanıyor analogWrite(ledPin,255); //1 saniye bekle delay(1000); }