Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Control de Ventilador PWM de 4 Pines a 25 kHz con Arduino Uno – Montaje, Código y Pruebas

Componentes y suministros

Ventilador axial, 12 VDC (4 pines PWM) 1
Arduino UNO 1
Cable USB-A a Mini-USB 1
Cables de conexión (genéricos) 1 set

Aplicaciones y servicios online

Sobre este proyecto

Llevaba tiempo queriendo controlar mis ventiladores PWM de 4 pines. Tenía 5 por ahí y decidí probar. Los valores de frecuencia pueden ajustarse entre 125 Hz y 8 MHz, con ciclo de trabajo variable. El circuito utiliza el modo 10 PWM de corrección de fase en el temporizador 1: OCR1A (Pin 9) e ICR1 (Pin 10). Se necesitó depuración para lograrlo; un osciloscopio portátil facilitó enormemente ver las frecuencias y ciclos de trabajo sin conjeturas.

Control de Ventilador PWM de 4 Pines a 25 kHz con Arduino Uno – Montaje, Código y Pruebas
Control de Ventilador PWM de 4 Pines a 25 kHz con Arduino Uno – Montaje, Código y Pruebas

IMPORTANTE: Consulte la hoja de datos de su ventilador. En mi caso, el pin de control era amarillo (normalmente el cable de tacómetro). Verifique también el rango de frecuencia aceptable (o FRECUENCIA CENTRAL) para su ventilador; es posible que deba ajustar la frecuencia en el código. Necesitará una buena fuente de alimentación (yo usé una fuente ATX convertida de un PC viejo).

NOTA: Intenté usar otro temporizador para controlar 2 ventiladores independientemente. No funciona. La razón es que la resolución del segundo temporizador es menor (16 bits vs 8 bits). Esto hace que los pasos en ajustes de frecuencia y ciclo de trabajo sean ruidosos y las formas de onda se deformen progresivamente. Tampoco es tan sencillo introducir los valores.

Código

Código para Arduino

const byte OC1A_PIN = 9;
const byte OC1B_PIN = 10;
const word PWM_FREQ_HZ = 25000; // Ajuste este valor para cambiar la frecuencia (¡en Hz!) (Actualmente 25 kHz)
const word TCNT1_TOP = 16000000 / (2 * PWM_FREQ_HZ);

void setup() {
  pinMode(OC1A_PIN, OUTPUT);
  // Limpiar registros de control y cuenta del Timer1
  TCCR1A = 0;
  TCCR1B = 0;
  TCNT1 = 0;
  // Configurar Timer1
  // COM1A(1:0) = 0b10 (Salida A clear rising/set falling)
  // COM1B(1:0) = 0b00 (Salida B operación normal)
  // WGM(13:10) = 0b1010 (PWM de corrección de fase)
  // ICNC1 = 0b0 (Cancelador de ruido captura entrada desactivado)
  // ICES1 = 0b0 (Selección flanco captura entrada desactivado)
  // CS(12:10) = 0b001 (Reloj entrada = clock/1)
  TCCR1A |= (1 << COM1A1) | (1 << WGM11);
  TCCR1B |= (1 << WGM13) | (1 << CS10);
  ICR1 = TCNT1_TOP;
}

void loop() {
  setPwmDuty(0);
  delay(5000);
  setPwmDuty(25); // Cambie este valor 0-100 para ajustar ciclo de trabajo
  delay(5000);
  // setPwmDuty(50); delay(20000);
  // setPwmDuty(75); delay(20000);
  // setPwmDuty(100); delay(20000);
}

void setPwmDuty(byte duty) {
  OCR1A = (word)(duty * TCNT1_TOP) / 100;
}

Esquemático

Control de Ventilador PWM de 4 Pines a 25 kHz con Arduino Uno – Montaje, Código y Pruebas

Proceso de manufactura

  1. Control de Brillo LED con PWM mediante Pulsador en Arduino Mega
  2. Controla tu Ventilador de Techo con Alexa: Guía Paso a Paso
  3. Construye un reloj en tiempo real con Arduino para horarios de oración islámica
  4. Alcancía Inteligente: Controla un Aceptador de Monedas con Arduino Nano
  5. Controla un LED por Bluetooth con Arduino – Guía DIY paso a paso
  6. Controla Dos Motores Paso a Paso con Arduino Nano y Joystick - Tutorial Sencillo
  7. Cómo mostrar imágenes en una pantalla TFT LCD de 1.17 pulgadas con Arduino UNO
  8. Control de Matriz LED 8×8 con Arduino Uno: Guía Paso a Paso
  9. Construye un Cubo LED 4x4x4 con Arduino Uno y 1Sheeld – Proyecto LED Interactivo
  10. ThimbleKrox: Control de ratón montado en el dedo con Arduino Micro y MPU-6050
  11. Sistema DIY de Control de Cucarachas con Arduino – Construcción por Menos de $30