El diodo es para proporcionar un camino seguro para el retroceso inductivo del motor. Si intentas desconectar la corriente en un inductor de forma repentina, éste hará la tensión que sea necesaria para que la corriente siga fluyendo a corto plazo. Dicho de otro modo, la corriente a través de un inductor nunca puede cambiar instantáneamente. Siempre habrá una pendiente finita.
El motor es parcialmente un inductor. Si el transistor se apaga rápidamente, la corriente que aún debe fluir a través del inductor durante un tiempo pasará por el diodo y no causará ningún daño. Sin el diodo, el voltaje a través del motor sería tan grande como sea necesario para mantener la corriente fluyendo, lo que probablemente requeriría freír el transistor.
A pequeño El condensador a través del motor reducirá la velocidad de las transiciones de tensión posiblemente rápidas, lo que provoca menos radiación y limita el dV/dt al que está sometido el transistor. 100 nF es excesivo para esto, e impedirá un funcionamiento eficiente en todas las frecuencias PWM excepto en las bajas. Yo usaría 100 pF más o menos, quizás hasta 1 nF.
La resistencia es para limitar la corriente que la salida digital debe suministrar y la base del transistor debe manejar. El transistor B-E parece un diodo para el circuito externo. Por lo tanto, la tensión se limitará a 750 mV más o menos. Mantener una salida digital a 750 mV cuando está tratando de conducir a 5 V o 3,3 V está fuera de las especificaciones. Podría dañar la salida digital. O, si la salida digital puede generar mucha corriente, podría dañar el transistor.
1 k? es de nuevo un valor cuestionable. Incluso con una salida digital de 5 V, eso sólo hará pasar 4,3 mA más o menos por la base: la caída de tensión en la unión B-E ("diodo") es de 0,7 V, dejando los 4,3 V en la resistencia. No muestras las especificaciones del transistor, así que imaginemos que tiene una ganancia mínima garantizada de 50. Eso significa que sólo puedes contar con que el transistor soporte 4,3 mA x 50 = 215 mA de corriente del motor. Eso suena bajo, especialmente para el arranque, a menos que se trate de un motor muy pequeño. Yo miraría lo que la salida digital puede suministrar con seguridad y ajustaría R1 para extraer la mayor parte de eso.
Otra cuestión es que el diodo 1N4004 es inapropiado aquí, especialmente porque vas a encender y apagar el motor rápidamente, como implica "PWM". Este diodo es un rectificador de potencia destinado a las frecuencias normales de la línea eléctrica como 50-60 Hz. Tiene una recuperación muy lenta. Utilice un diodo Schottky en su lugar. Cualquier diodo Schottky genérico de 1 A y 30 V funcionará bien y será mejor que un 1N4004.
Puedo ver cómo este circuito puede parecer que funciona, pero claramente no fue diseñado por alguien que realmente sabía lo que estaba haciendo. En general, si ves un Arduino en un circuito que encuentras en la red en algún lugar, especialmente uno simple, asume que fue publicado porque el autor lo considera un gran logro. Los que saben lo que hacen y dibujan un circuito como éste en un minuto no consideran que merezca la pena escribir una página web sobre él. Quedan los que han tardado dos semanas en conseguir que el motor gire sin que el transistor explote y no saben muy bien qué hace todo para escribir estas páginas web.