Autor Tema: Controlador de ventiladores por PIC  (Leído 7930 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado aripod

  • PIC16
  • ***
  • Mensajes: 170
Controlador de ventiladores por PIC
« en: 23 de Noviembre de 2006, 12:46:54 »
Estoy haciendo una controladora de ventiladores de pc (un fan comun) por medio de un pic.
Este consta de 3 pulsadores:

Pulsando p1: Mandar 1 por las dos patas de uC para tener los 12. (Velocidad Maxima)
Pulsando p2: Mandar 0 por las dos patas del uC para ke no gire (0v).
Pulsando p3: Mandar un 1 y un 0 por las patas del uC para tener los 7v. (Velocidad Minima).

El problema es ke consumen 0.17A segun dicen los fans, la idea seria hacer el circuito con un poco mas de corriente, por las dudas....unos 300mA. La cosa es ke el pic me tira maximo 25mA y no se como tendria ke ser el tema de unos transistores...Me dijeron ke tienen ke ser dos con una conexion Darlington, pero no logro entender como hacer las cuentas. La idea es tener unicamente dos pines del pic. Con respecto al sentido de giro, este no cambiaria,,,seria siempre el mismo...

Desde ya muchas gracias!!!

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5102
    • uControl
Re: Controlador de ventiladores por PIC
« Respuesta #1 en: 23 de Noviembre de 2006, 13:20:19 »
Hola amigo!
Descarta la idea de conectarlos directamente al pic. Con ese consumo (y ni que hablar con los 12V) haces sonar el PIC.
Date una vuelta por este hilo (Circuitos E/S - Esquemas listos para usar) donde vas a ver varias interfaces de potencia que te pueden servir. Suerte!
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado aripod

  • PIC16
  • ***
  • Mensajes: 170
Re: Controlador de ventiladores por PIC
« Respuesta #2 en: 23 de Noviembre de 2006, 14:22:49 »
Justamente estuve viendo por ahi,,,pero no encontre nada ke se adecue a lo ke necesito...algo parecido seria el primer ejemplo, pero no logro entender como hacer con dos transistores para mandar 12 y 5v a las patas del pic  :?

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5102
    • uControl
Re: Controlador de ventiladores por PIC
« Respuesta #3 en: 23 de Noviembre de 2006, 14:33:48 »
Es al reves la cosa. MEdiante los pines del pic debes comandar la base de dos transistores (uno para los 5V y otro para los 12V) mediante una resistencia, poniendo el emisor a masa y el ventilador conectado al positivo y al colector del transitor (PNP).

Igualmente, me parece que lo mejor es usar PWM para lograr cualquier velocidad entre 0 y el maximo de RPM que rinda el ventilador, usando un solo pin del PIC y un solo transistor de mediana potencia (un BDxxx por ejemplo).

Saludos!
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado aripod

  • PIC16
  • ***
  • Mensajes: 170
Re: Controlador de ventiladores por PIC
« Respuesta #4 en: 23 de Noviembre de 2006, 14:51:42 »
Me gusta la idea...pero como se hace eso? Donde hay informacion con ejemplos??.
La idea es ir mandandole alto y bajo, con intervalos de tiempo entre uno y otro mas corto y mas largo para ke guire mas lento o mas rapido?
Y como tendria ke hacer para medir las velocidades, si no es con voltages??

Como seria la conexion con el pic  y fan entonces??                          
                          
« Última modificación: 23 de Noviembre de 2006, 14:55:12 por aripod »

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5102
    • uControl
Re: Controlador de ventiladores por PIC
« Respuesta #5 en: 23 de Noviembre de 2006, 14:56:39 »
Hace un click aca: PWM para ver de que se trata.

La velocidad la podes medir con un sensor de efecto hall , o bien simplemente armate una tabla empirica, que te diga "con tal duty, tantas RPM" y listo. La relacion RPM/Porcentaje del duty es bastante lineal. Es decir: a 0% del duty, 0 RPM, a 100% del duty, velocidad maxima, y lo del medio sale casi casi por regla de tres simple.

Saludos.
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado aripod

  • PIC16
  • ***
  • Mensajes: 170
Re: Controlador de ventiladores por PIC
« Respuesta #6 en: 23 de Noviembre de 2006, 15:08:55 »
Buenisimo...y el tema del transistor?

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5102
    • uControl
Re: Controlador de ventiladores por PIC
« Respuesta #7 en: 23 de Noviembre de 2006, 15:23:15 »
Buscate un NPN que maneje por lo menos 400 o 500 mA, y conectalo como te dije antes: salis del pin del pic a una resistencia (depende del transistor, pero va a ser de entre 1K y 5K, de ahi a la base del transistor, pones el emisor al negativo y el ventilador entre el positivo de la fuente (tus 12V) y el colector del transistor.
Eso si, armate una etapa con un 7805 y algunos condensadores para reducir los 12V a 5V para alimentar el PIC. Esa fuente la encontras en el link con circuitos E/S que te pase antes.

PD: Amigos del foro, a ver si alguien revisa mi respuesta por si meti la pata en algo! ;)

Saludos.
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado aripod

  • PIC16
  • ***
  • Mensajes: 170
Re: Controlador de ventiladores por PIC
« Respuesta #8 en: 23 de Noviembre de 2006, 20:59:02 »
No habira problemas con los 5v, ya ke va todo dentro de la pc,,,asi ke uso un molex donde tengo tanto 12 como 5v.

Tengo hecho esto...estoy mandando constantemente un 1 por la pata RB0 y este es el resultado:


Desconectado J1M

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1960
Re: Controlador de ventiladores por PIC
« Respuesta #9 en: 23 de Noviembre de 2006, 21:14:05 »
si es un ventilador de PC, podrías con un BD135 hacer un control por PWM de la velocidad de este con un par de pulsadores. Aquí te dejo el código de ejemplo:
Código: [Seleccionar]
#include <18F4550.h>
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN
#use delay(clock=48000000)

#include "include\types.h"
#include "include\lcd.c"

#define  SW1   PIN_E0         // button 1
#define  SW2   PIN_E1         // button 2

#define  intractor   PIN_C2

void main(void)
{
   long int opc=1;

   lcd_init ();
   
   setup_ccp1(CCP_PWM);
   setup_timer_2(T2_DIV_BY_1, 127, 1);

   lcd_putc("\f");
   lcd_gotoxy(1,1);
   printf(lcd_putc,"Prueba PWM");
   lcd_gotoxy(1,2);
   printf(lcd_putc,"PWM: ");
   
   while(true)
   {
      lcd_gotoxy(6,2);
      printf(lcd_putc,"%li",opc);

      if(!input(SW1)){delay_ms(300); opc++; set_pwm1_duty(opc);}
      if(!input(SW2)){delay_ms(300); opc--; set_pwm1_duty(opc);}
   }
}

pd: Si no encuentras la forma de conectar el transistor bd135 dimelo y te pongo una imagen.

s2!

Desconectado aripod

  • PIC16
  • ***
  • Mensajes: 170
Re: Controlador de ventiladores por PIC
« Respuesta #10 en: 23 de Noviembre de 2006, 21:43:29 »
Para hacer lo del PWM el pic tiene ke tener un modulo para PWM, es verdad??
No hay forma de hacerlo,,por ejemplo:
while(1)
  {
  fan=1;
  delay_ms(40);
  fan=0;
  delay_ms(40);
  }
E ir ajustando el retrazo???

La conexion no se hace como esta en la imagen??

Desconectado J1M

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1960
Re: Controlador de ventiladores por PIC
« Respuesta #11 en: 23 de Noviembre de 2006, 21:57:40 »
tienes que poner un diodo volante entre los terminales del ventilador para que al cortar la tensión la intensidad residente en la inductancia de la bobina sea recirculada y no ataque al colector del transistor y pueda fastidiarlo, te adjunto el esquema que suelo usar.

Respecto al PWM simulado, sí, teóricamente es eso, tienes que tener en cuenta que la frecuencia del PWM debe estar por encima de los 20Khz para que supere a la frecuencia audible, y que el duty (el primer y el segundo 40) van a ser distintos, es decir dos variables que sumando las dos deben hacer un 100% del periodo de la señal.

Por otro lado, al 'simular' el PWM el PIC va a estar ocupado generandolo y va a ser complicado destinarlo a otra misión ya que tendrás que actuar con interrupciones y calcular muy bien los tiempos de proceso para no dejarlos desatendidos mas tiempo del debido. Realmente es aconsejable un PIC con módulo PWM para hacer esto, el 16F88 (la evolución del 16F84) que es de los mas baratos y chiquitillos lo llevan y te olvidas de problemas.

Saludos

Desconectado aripod

  • PIC16
  • ***
  • Mensajes: 170
Re: Controlador de ventiladores por PIC
« Respuesta #12 en: 23 de Noviembre de 2006, 22:08:44 »
Se complica un poco la cosa creeria yo. Cuento un poco que es lo ke kiero hacer:
A traves de un lcd de 2x16 ir viendo temperaturas y velocidades de tres ventiladores, por ahora seria solamente eso...A los ventiladores los controlo con tres pulsadores, como puse al principio del thread...esa seria basicamente la idea...El sensado de las temperaturas, segun estuve leyendo seria con el LM35.....De a poco ire agregandole distintas opciones, pero al principio seran solamente esas cosas....Entonces, ahora cual PIC me recomiendan?No kedo claro, son todo por tres, es decir: tres fans y cada uno con tres pulsadores para las velocidades y tres sensores de temp....
Todo esto lo meto en una caja, tipo de de lectora de cd/dvd, entonces tambien tengo dos sensores para saber la posicion de la bandeja, un pulsador para abrir y cerrarla y un ultimo pulsador para poner todos los ventiladores en la velocidad high o low.....

Desconectado J1M

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1960
Re: Controlador de ventiladores por PIC
« Respuesta #13 en: 24 de Noviembre de 2006, 07:04:11 »
Para saber que micro elegir entras en microchip y haces una busqueda paramétrica (seleccionando el número de puertos PWM que necesites, 3 o 4) en la familia que quieras, quizá las mas interesantes para tí sean la 16 y la 18:
http://www.microchip.com/ParamChartSearch/params.aspx?branchID=1002&mid=10&lang=en&pageId=74
http://www.microchip.com/ParamChartSearch/params.aspx?branchID=1004&mid=10&lang=en&pageId=74

Del resultado que obtengas tendrás que ver cual es el que mas te interesa (memoria, soporte por compilador, soporte por grabador (winpic800), etc), por lo que te interesa yo iría a uno de 28 patas y cambiaría un poco el diseño.

Si vas a medir las velocidades tienes que tener entradas analógicas y aplicarle un pequeño filtro para quitarle todo el ruido con el que viene la señal.... aquí se presenta un problema si vas a hacer el control por PWM ya que al no darsele una señal continua la velocidad aparece falseada... lo que puedes hacer es obtener las rpms máximas (del datasheet del ventilador), suponer un comportamiento lineal, y hacer una regla de tres para obtener las RPM. Lo de los tres pulsadores por ventilador si fuera yo lo reduciría solo a tres botones para el sistema, uno para entrar en un menú y seleccionar el ventilador que quieres 'modificar' y los otros dos para incremento/decremento. Sigue dandole vueltas a la idea pq es interesante.

Saludos!

Desconectado aripod

  • PIC16
  • ***
  • Mensajes: 170
Re: Controlador de ventiladores por PIC
« Respuesta #14 en: 24 de Noviembre de 2006, 09:01:52 »
Fui poco claro con respecto a las velocidades. Originalmente la idea era de acuerdo a lo ke se apriete mandar 12v y 5v por dos patas del pic al fan, y de acuerdo con eso tener o 12v para velocidad maxima y 7v para velocidad minima.... y realmente ahora leyendo ke hacen falta modulos de PWM y como es lo primero ke hago, algo simple me convence hacerlo con dos pines y unos transistores para tener el voltage deseado.... Justamente el problema empezo en ke no se como hacer los calculos para los transistores....
Con la programacion no hay problemas, ya ke esta hecho el codigo para ke mande un 1 por una pata y un 0 por la otra para tener 12v en una y 0 en otra...asi gire a maxima velocidad. Otro pulsador para mandar un cero por ambas, asi no gira y el tercero manda un 1 por ambas patas para tener los 12 y 5 para llegar a los 7v.