El control de una señal PWM de ventilador de 4 cables mediante Arduino permite solo dos configuraciones

1

He conectado mi pin pwm a mi arduino como en este tutorial

enlace

Estáfuncionandocorrectamente.Puedoleeryconfigurarlavelocidadutilizandounbocetodeestesitioweb:

enlace

int fanPulse = 0;
unsigned long pulseDuration;

void setup()
{
Serial.begin(9600);
pinMode(fanPulse, INPUT);
digitalWrite(fanPulse,HIGH);
}

void readPulse() {
pulseDuration = pulseIn(fanPulse, LOW);
double frequency = 1000000/pulseDuration;

Serial.print("pulse duration:");
Serial.println(pulseDuration);

Serial.print("time for full rev. (microsec.):");
Serial.println(pulseDuration*2);
Serial.print("freq. (Hz):");
Serial.println(frequency/2);
Serial.print("RPM:");
Serial.println(frequency/2*60);

}

void loop()
{
analogWrite(3,20);
delay(5000);
readPulse();
analogWrite(3,50);
delay(5000);
readPulse();
analogWrite(3,100);
delay(5000);
readPulse();
analogWrite(3,200);
delay(5000);
readPulse();
analogWrite(3,255);
delay(5000);
readPulse();
}

Me parece que solo puedo ingresar valores superiores a 127 y valores inferiores a 127. No hay pasos entre ellos. El ventilador no girará más lento cuando vaya de 126 a 0 o de 128 a 255.

Algunos resultados que obtengo:

100: 

 pulse duration:19058
time for full rev. (microsec.):38116
freq. (Hz):26.00
RPM:1560.00


0:

pulse duration:19160
time for full rev. (microsec.):38320
freq. (Hz):26.00
RPM:1560.00


127:

pulse duration:9032
time for full rev. (microsec.):18064
freq. (Hz):55.00
RPM:3300.00


255:

pulse duration:9151
time for full rev. (microsec.):18302
freq. (Hz):54.50
RPM:3270.00

¿He cometido algún error o es posible que mi ventilador no acepte valores precisos? ¿Puedes recomendar alguno de los 4 ventiladores con cable que podría usar para esta o alguna otra forma? Pensé en usar un SG2524N para controlar un motor de dos cables, pero no tengo experiencia con esto. Gracias por tu consejo.

    
pregunta Wolfen

1 respuesta

3

Los ventiladores no usan las frecuencias de pwm en stock. La frecuencia de control de PWM debe ser de 25 kHz. A 16mhz arduino puede hacer esto de manera relativamente fácil a través del software. Simplemente busque "arduino fan de 4 cables" y encontrará bastantes publicaciones, incluido un código de muestra para establecer la frecuencia del prescaler, de modo que la salida PWM esté a 25 kHz.

    
respondido por el test

Lea otras preguntas en las etiquetas