# Cómo interpretar los pulsos del 3er pin de un cooler



## tweetydj (Jul 23, 2006)

Hola Amigo, seré curioso, 
Quisiera que alguien me informe como es el metodo que utilizan los mother para medir los rpm del los coolers. Utilizan el tercer pin del ventilador.
Yo me tome el tiempo de colgar el osciloscopio en dicho pin y obtengo una señal casi cuadrada de 5 volt de amplitud con una frecuencia proporcianal a la velocidad del cooler. Ahora bien cual es el metodo que usa el cooler para enviar esos pulsos, o sea que son cada pulsos de esos, una vuelta? varias vueltas? como mide esas vueltas?
Es un dilema que me surge.
Alguien tiene información de como funciona este circo??
Quiero saber como se forman esos pulsos el ventilador y como interpretar esos pulsos.
YA rompi tambien un cooler viejo y no tiene mas que transistores(uno por cada bobina parece) y una cosa que parece un transistor pero debe ser un integradito que no tiene nomenclatura(almenos en este chino que rompi)
Bueno si nadie aporta información seria estoy dispuesto a que investiguemos...


----------



## Nilfred (Jul 23, 2006)

Es un Hall Efect sensor, como el de las alarmas de puerta.
Se activa cada vez que una bobina pasa por el.


----------



## tiopepe123 (Jul 23, 2006)

El ventilador es como un motor paso a paso simplificado, como vistes hay un iman y si pasas un iman por dentro descubrirar su secreto, hay "pegados" imanes uno destras del otro uno norte y luego sur norte sur..., o dicho de otra forma si pasas un destornillador imantado veras que haveces se atrae y otras repele

NS-NS-NS-NS-NS-NS-NS-NS-NS-NS-NS-NS

Si conoces como esta el campo magnetico y haces que se repela el motor gira, esta es la mision del sensor de hall conocer el instante que debe alimentar la bobina.

Hay dos formas de utilizar el tercer cable, uno digital y otro analogico.

El digital es contando el numero de pulsaciones por segundo.
El analogico es utilizando una red RC y midiendo la tension.
  Un resistencia y un condensador a masa prueba con una resistencia de 10k y un condensador 100nf o similar.


----------



## tweetydj (Jul 23, 2006)

Perfecto, con la ayuda de ustedes muchachos lo pude descubrir.
El tema es asi, el iman tiene 4 partes que no atrae si no que repele, con un sensor de efecto hall tenemos 4 pulsos por vuelta. Midiendo el tiempo de ese pulso podemos calcular cuanto tiempo tarda en dar una vuelta el motor. O sea si cada pulso mide 6.2ms tarda en dar una vuelta:
6.2ms x 4 = 24.8ms, en un segundo da algo de 40 vueltas y en un minuto algo asi como 2419 rpm.
Perfecto!!!
Gracias muchachos...


----------



## cyberian (Jun 15, 2009)

Hola, muchas gracias, justamente he estado buscando información sobre el tema, y me disponía a meterle un osciloscopio al tercer cable, pero por suerte ya lo han hecho. Estoy tratando de medir con un PIC16F877, las rpm de un cooler, y en conjunto con el TIMER0 y el TIMER1, lo he podido hacer, es decir, medir pulsos y el tiempo.
Mi pregunta es la siguiente, como todos los coolers son universales para la pc, el mother siempre sabe como calcular las rpm, es decir que siempre son 4 pulsos por vuelta?, sin importar el cooler?
tweetydj sos un capo, me ahorrastes el banco de pruebas con el osciloscopio.
Si les interesa mi proyecto, apenas lo entregue a la cátedra de Técnicas Digitales II, dejo en un archivito zip, el esquema en proteus, y el programa del pic16f877.
La idea es controlar por ancho de pulso la velocidad de un motor, y que en un display LCD muestre las revoluciones por minutos.
Muchas gracias


----------



## Nilfred (Jun 16, 2009)

Ojo que el pulso de RPM va a tener la forma de onda del PWM.


----------



## cyberian (Jun 27, 2009)

Hola Nilfred, parece que tenés razón, programé el pic16f877 para que con el timer 0 contara la cantidad de pulsos que entraba por la patita T0KI, y el timer 1 para que interrumpiera cada 104milisegundo, y una vez dentro de la interrupción, con la cantidad de pulsos que registró el timer 0 y el tiempo de desborde del timer1, hago el cálculo, el tema es que funciona bien, cuando le conecto un generador de señales cuadradas, pero con la tercer patita del cooler no funciona bien, registra cualquier cosa.
Probamos en el osciloscopio y realmente parece que es un PWM lo que sale del sensor de efecto hall del cooler, se te ocurre alguna forma de medir el Duty Cycle de ese pwm para hacer el cálculo de las RPM.
Agradezco tu respuesta. Estoy con el proyecto final de Técnicas Digitales II.
Atte. Cyberian.


----------



## Nilfred (Jun 28, 2009)

La solución mas obvia es meter un 4to cable para alimentar el hall.
La otra que se me ocurre es comparar la señal PWM con la de RPM, vas a tener un tren de pulsos idénticos y nada, tren, nada, tren, nada. Contas los nada.
Tambien sirve usar el PWM como clock, te va a dar un tren de 1s seguido de un tren de 0s, contas los trenes.
Si la frecuencia del PWM es constante y mayor que la de RPM, contar los pulsos sigue siendo un número útil


----------



## SomeOner (Jul 2, 2009)

y por quee el ventilador de mi procesador (intel pentium core 2 duo socket 775) tiene 5 pines?


----------



## unleased! (Jul 3, 2009)

SomeOner dijo:
			
		

> y por quee el ventilador de mi procesador (intel pentium core 2 duo socket 775) tiene 5 pines?


Cinco? no serán cuatro?

Son dos para la alimentación, uno para el sensor de revoluciones y el que queda para un sensor de temperatura.

Saludos.


----------



## cyberian (Jul 10, 2010)

Hola, he logrado algo, para poder ver lo que sale del tercer pin del cooler, hay que poner una resistencia pull-up entre este pin y 12V ó 5V (obviamente, es pull-up) y listo, una perfecta onda cuadrada en la pantalla del osciloscopio. La frecuencia de esta onda cuadrada es de 200Hz. cuando el motor está a máxima velocidad. Si obstruyo con algo al motor, como es de esperar, baja la frecuencia de la onda cuadrada. No es un PWM, es una cuadrada perfecta, que puede medirse perfectamente con un PIC, si se pone el pull-up a 5V (si lo ponemos a 12, obtenemos una cuadrada de 12V, pese a que el cooler se alimenta con 12V, es independiente del sensor hall).
Ahora sí, 200Hz son 200 vueltas por segunto, que serían 12000RPM, pero al poner el cooler en un mother, y verificar las rpm desde el BIOS, pone 6000RPM.
Obviamente, lo correcto son 6000RPM, en conclusión, se contabilizan 2 pulsos por revolución. (Lo de la resistencia pull-up, me di cuenta solito, no lo saqué de ningún lado).
Gracias a todos.


----------



## gemasoft (Abr 25, 2012)

si fueras tan amable de poner el codigo para programar el  cuenta vueltas. muchas gracias.


----------



## fernandob (Abr 25, 2012)

unleased! dijo:


> Cinco? no serán cuatro?
> 
> Son dos para la alimentación, uno para el sensor de revoluciones y el que queda para un sensor de temperatura.
> 
> Saludos.



no sabia....los fans de las PC traen sensor de temperatura ?? 
calculo que estan hablando de los fans de el micro.

los de la fuente son iguales ??


----------



## djwash (Abr 25, 2012)

No, ni ahi, los fans no traen sensor de temperatura...

Para aclararlo mejor...



En caso de que el fan no tenga el PIN Control, este girara siempre al maximo, suministrando al sistema la informacion de velocidad.



Si el fan posee el PIN Control pero el mother no, funcionara igual que en el caso anterior.



Si ambos tienen PIN Control estaran habilitadas las opciones de control de velocidad...


----------



## analogico (Abr 25, 2012)

djwash dijo:


> No, ni ahi, los fans no traen sensor de temperatura...
> 
> Para aclararlo mejor...
> 
> ...



sin embargo  con los tres pin tienes control de velocidad como?
es cosa de comparar la velocidad de la cpu reposo contra 100%
puede variar de los 2000 a 3000 rmp


----------



## djwash (Abr 25, 2012)

Con tres cables no tienes control de velocidad.

Asi el CPU este full load o en reposo el fan girara al maximo.


----------



## analogico (Abr 25, 2012)

djwash dijo:


> Con tres cables no tienes control de velocidad.
> 
> Asi el CPU este full load o en reposo el fan girara al maximo.



bueno e controlado la velocidad  y si hay cambio  2000 y algo cuando esta frio
y sube a los 3000 y algo cuando esta caliente

se nota por el ruido que cambia la velocidad 
el ventilador solo tiene 3 pines


----------



## fernandob (Abr 25, 2012)

pero una mother tiene electronica hasta para hacerle terapia al fan .
asi que no veo por que no puede controlar la velocidad ejerciendo control desde su alimentacion .


----------



## djwash (Abr 25, 2012)

Eso depende del mother, hay unos que tienen esa opcion en BIOS y otros no, y si, controlan la alimentacion...


----------



## Meta (Oct 14, 2015)

Hola:

He probado un ventilador de 12 V. / 0.10 A. con tacómetro y su salida del cable amarillo de es 5 V.







El comportamiento es el mismo, hasta con tacómetro, probando otro ventilador ocurre lo mismo.

Estoy buscando como loco un ejemplo sencillo sobre leer RPM de un ventilador de PC precisamente por aquí.

Si  encuentran algunos interesantes antes que yo, los probaré todos, me  quedo con el más efizaz. Sigo pensando mejor ponerlo a 115200 baudios  com proyecto final, ya que trabaja más rápido en la lectura de datos y  sin problemas. Por ahroa nos centramos en el famoso 9600 baudios.

El generador si tiene masa. también he hecho pruebas de lo que preguntas.

Lo  queno entiendo que hace sin RPM conectado en el serial contando RPM  como si lo tuviera así sin más. Debería poner 0 RPM. Conectando el  ventilador lo he detenido quitándo la alimentación, debería poner 0 RPM y  sigue con la misma.

El código que uso es este.

```
static int NbTopsFan; // contador de impulsos.
const int fandiv = 2; // dos pulsos por vuelta
const int hallsensor = 2; // pin 2, que está unido a interrupción 0.

void rpm ()     // se llamará cada vez que se pruduce la interrupción
{
 NbTopsFan++;
}

 
void setup()
{
 pinMode(hallsensor, INPUT);
 Serial.begin(9600); // 115200
 attachInterrupt(0, rpm, RISING);
}
void loop ()
{
   NbTopsFan = 0;
   sei();   
   delay (1000); 
   cli();
   int Calc = ((NbTopsFan * 60)/fandiv);
   Serial.print (Calc, DEC);
   Serial.print (" rpm\r\n");
}
```

Un cordial saludo.


----------

