digitalWrite
sets the output pin to either LOW or HIGH (where those voltages depend on the Vcc of the processor. For a Uno or Mega that would be 0V or 5V (or close to it).
Ось скріншот цифровогозапису (LOW):

Тобто, вихідний штифт знаходиться на 0В.
Тепер для функції digitalWrite (HIGH):
Вихідна напруга 5В.

analogWrite
really should have been named PWMwrite since it configures the processor timers to output PWM (pulse-width modulation).
Давайте спробуємо analogWrite (1):

Ви можете бачити, що рівень напруги в більшості випадків дорівнює 0В, а для коротких періодів - 5V. Ви також бачите, що частота становить 490 Гц, про що говорить довідкова сторінка для analogWrite буде.
Збільшення масштабу:

Вихід є високим для 8 мкс, що рівно 1/256 з 2048 мкс, що є періодом таймера. Отже, ми маємо робочий цикл 1/256 (0,39%).
Давайте спробуємо analogWrite (127) - на півдорозі від 0 до 255:

Тепер ви можете бачити, що вихідний сигнал становить ВІЛ точно вдвічі менше, а LOW - інший час.
Давайте спробуємо analogWrite (254):

This is the opposite of analogWrite (1). The output is HIGH all the time except for a brief period. Збільшення масштабу:

Тепер висновок off за 8 мкс - порівняно з попереднім зображенням, де він був включений протягом 8 мкс.
analogWrite (0)
is the same as digitalWrite (LOW)
.
analogWrite (255)
is the same as digitalWrite (HIGH)
.
Це підтверджується відповідним кодом у wiring_analog.c:
if (val == 0)
{
digitalWrite(pin, LOW);
}
else if (val == 255)
{
digitalWrite(pin, HIGH);
}
Резюме
analogWrite
basically configures the hardware timers to output PWM. Once you do that the timer hardware outputs the requested duty cycle (from 0 to 255) where 0 is always off, 255 is always on, and some value inbetween gives you PWM (pulsed output).
Докладніше про таймери див. мою сторінку про таймери .