Primero, problemas con el circuito:
- Dice que desea controlar la velocidad del ventilador, pero parece que no hay ninguna disposición para el control analógico o PWM.
PWM tendría sentido, pero entonces no agregaría un filtro deliberado a la señal. C1 (¡Argh! No hay designadores de componentes. Los inventaré y tendrás que adivinar) y R1 filtrará un poco los pulsos individuales. Tú no quieres eso. Desea que el transistor pase la mayor cantidad de tiempo posible completamente encendido o apagado.
- 1 kΩ parece bastante alto para R1. La salida digital aparentemente va a 5 V. Eso significa que la corriente base es de 4.3 mA cuando la salida digital es alta. No busqué BD139 porque no proporcionó un enlace a la hoja de datos, así que digamos que se puede contar con que el transistor tiene una ganancia de 50. Eso solo permite 215 mA de corriente a través del ventilador. Suena bajo. Tal vez sea suficiente, pero necesitas revisar esto.
- El 1N4007 es totalmente inadecuado para un diodo de captura de retorno, especialmente si planea encender / apagar el ventilador con frecuencia, como sería el caso con PWM. Quieres algo con un tiempo de recuperación inverso muy bajo, como un Schottky.
- Se olvidó de conectar la alimentación al microcontrolador. Estas cosas no pueden hacer magia. Requieren poder, dentro de las especificaciones, para operar.
- Una vez que conecte la alimentación, también debe agregar una tapa de derivación de cada pin de alimentación a tierra.
En cuanto a la depuración de su problema: OK, la velocidad del ventilador no cambia.
Deténgase y, de hecho, piense en eso y conciba formas de determinar cuál podría ser la causa. ¿El sensor de temperatura no produce una salida diferente a medida que cambia la temperatura? ¿Qué está saliendo del pin 11? ¿Está cambiando y el ventilador no responde, o no está cambiando?
¿Qué está haciendo el firmware? ¿Se puede obtener de alguna manera el valor de temperatura medido?
Dice que la velocidad del ventilador no cambia, pero ¿está atascada en baja, alta, en algún punto intermedio? La depuración consiste en observar los síntomas y diseñar pruebas para dividir el sistema en partes que parecen funcionar y otras que podrían no funcionar. Renunciar y decir que "no funciona" no tiene cabida en la ingeniería.