Bir pine analog değer gönderir (Bkz. PWM). Bu sayede bir LED istenilen parlaklıkta yakılabilir ya da bir motor istenilen hızda çalıştırılabilir.

*analogWrite() ve analogRead() fonksiyonlarını kullanmak için pinMode() tanımlamasına gerek yoktur.
analogWrite(pin, value)
pin: değer yazılacak olan Arduino pini
value: 0 (hep kapalı) ile 255 (hep açık) arasında bir tamsayı değeri
int ledPin = 9; // LED 9 nolu pine bağlandı
int analogPin = 3; // bir potansiyometrenin orta ucu A3 pinine bağlandı.
// boşta kalan iki ucu ise GND ve 5V a bağlandı.
int val = 0; // okunan değeri saklayacak olan değişken
void setup() {
pinMode(ledPin, OUTPUT); // 9 nolu pin çıkış pini olarak tanımlandı
}
void loop() {
val = analogRead(analogPin); // pin değerini okur
analogWrite(ledPin, val / 4); // 0-1023 aralığında okunan değer 4 e bölünerek 0-255 aralığına dönüştürülerek pine yazdırılıyor.