domingo, 28 de julio de 2019

Ventilador de PC controlado por PWM y sin ruidos

Este proyecto utiliza una de las salidas digitales del Arduino para generar una señal PWM y controlar la velocidad de rotación de pequeños ventiladores de 12 voltios. El circuito es muy eficiente con cualquier tipo de ventilador, de estos que se utilizan en los ordenadores. Y lo más importante, ¡no produce ese ruido molesto que proviene de la mezcla de la señal PWM con el giro del motor! El zumbido es cortado por el condensador de 100uF que se conecta a la base del transistor. Los dos botones se usan para subir o bajar la señal PWM de 0 a 255, y la pantalla LCD sirve para mostrar su valor. Todos los demás componentes son fáciles de encontrar, y todo el conjunto debe ser alimentado desde una fuente de 12 voltios con un mínimo de 0,3 amperios.


El diseño:


El diseño en archivo pdf.
El diseño en archivo ps.
El diseño en archivo svg.
El proyecto en archivo zip para el entorno de desarrollo KiCad.

La programación para el Arduino se escribe así:

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 6, 5, 4, 3);
int percent = 0;
int pwm = 0;
int ch1State = 0;
int ch2State = 0;
const int pwmPin = 9;
const int ch1Pin = 7;
const int ch2Pin = 8;

void setup() {
  lcd.begin(16,2); 
  lcd.print("PWM:");
  lcd.setCursor(0,1);
  lcd.print("elektronled");
  pinMode(pwmPin, OUTPUT);
  pinMode(ch1Pin, INPUT);
  pinMode(ch2Pin, INPUT); 
}

void loop() {
  ch1State = digitalRead(ch1Pin);
  ch2State = digitalRead(ch2Pin);
  if (ch1State == LOW) { percent --; }
  if (ch2State == LOW) { percent ++; }
  if (percent > 100) { percent = 100; }
  if (percent <= 0) { percent = 0; }   
  pwm=percent*2.55;
  lcd.setCursor(5,0);
  lcd.print(percent);
  lcd.print("% ");
  lcd.setCursor(10,0);
  lcd.print("(");
  lcd.print(pwm);
  lcd.print(") ");
  analogWrite(pwmPin,pwm);
  delay(100);
}

La programación en archivo txt.
La programación en archivo ino.
La programación con algunas modificaciones (archivo txt).
La programación con algunas modificaciones (archivo ino).

Para ventiladores más potentes, por encima de 200 mA, debe aumentar la potencia de la fuente y poner un disipador de calor en el transistor.

Se pueden usar ventiladores de 3 pines, pero se debe ignorar el tercer pin (PWM). Mira en estas fotos:




Puede probar el circuito sin el condensador de 100uF o incluso reducir su valor, porque la única función de este componente es "matar" el zumbido.

Y para los ventiladores de 4 pines, todo el circuito de control formado por Q1, D1, R2 y C1 se debe olvidar y la salida D9 del Arduino queda directamente al cable de control PWM del ventilador (generalmente azul). Ignore el cable PWM que devuelve la señal de velocidad (generalmente verde). Es decir, este tipo de ventilador debe quedar conectado directamente a la fuente de alimentación y solo el cable azul ingresará al Arduino.

La primera referencia:

https://www.baldengineer.com/pwm-3-pin-pc-fan-arduino.html

Las explicaciones que hace el autor en este primer sitio son muy interesantes y me parecen muy completas, pero incluso al probar varias configuraciones tanto en los capacitores como en los transistores, el ruido no ha terminado. Por lo tanto, le recomiendo que use el circuito con el transistor BD139.

Y aquí está la principal referencia del circuito:

https://www.electroschematics.com/9540/arduino-fan-speed-controlled-temperature/

Las mismas referencias en archivos pdf.

¿Es esta tu primera visita? ¡Utilice los marcadores del blog! Facilitan la navegación y son útiles para elegir temas.

No te olvides de leer el último post, hay una descripción de nuestro objetivo y también un guion de los marcadores.

¿Has encontrado un error? ¿Algún link quedó roto? Toma mi correo electrónico en el perfil del blog y me envía un mensaje para que pueda solucionar.

No hay comentarios.:

Publicar un comentario