acabo de leer lo de pepibho: leere su mensaje detenidamente.
Buenas noches estimados Amigos, Controleros, estuve investigando algo mas acerca de mi projecto:
HPWM por hardware para mi motor CDP3575 180 volt dc, 1750 r/m, 7.7 amp.
Y pues estuve investigando por alli haciendo algunos ensayos pero con un cooler
de fuente de poder de cpu, 12volt,(motor brushlers) pensando que si logro lo que estoy buscando con un pequeño
ventilador, lo podre hacer con el motor grande y bueno sí se logra hacer hpwm, ya que en la entrada
ADC de pic 16f877a va un potenciometro de valor 10k y voltajes de referencia de 5v y 0v.
el programa es este:
DEFINE OSC 8
DEFINE LCD_DREG PORTB ;bit de datos del LCD empezando
DEFINE LCD_DBIT 0 ;por B.0, B.1, B.2 y B.3
DEFINE LCD_RSREG PORTB ;bit de registro del LCD conectar
DEFINE LCD_RSBIT 5 ;en el puerto B.5
DEFINE LCD_EREG PORTB ;bit de Enable conectar en el
DEFINE LCD_EBIT 4 ;puerto B.4
DEFINE ADC_BITS 10 ;Fije número de BITS del resultado (5,8,10)
DEFINE ADC_CLOCK 3 ;Fije EL CLOCK (rc = 3)
DEFINE ADC_SAMPLEUS 50 ;Fije el tiempo de muestreo en Us
;ADC_SAMPLEUS es el número de microsegundos que el programa espera
;entre fijar el canal y comenzar la conversión analogica/digital.
DEFINE CCP1_REG PORTC 'Hpwm 1 pin port
DEFINE CCP1_BIT 2 'Hpwm 1 pin bit
DEFINE CCP2_REG PORTC 'Hpwm 2 pin port
DEFINE CCP2_BIT 1 'Hpwm 2 pin bit
TRISA=%1
TRISB=%0
TRISC=%0
anterior var word ' variable que contiene el valor anterior del ADC para comparación
LCDOUT $fe, 1," Pwm MOTOR DC " ;limpiar LCD y sacar texto
ADCON1 =%00001110 ;configura PortA 0 en conversores A/D
ADCON0 =%11000001 ;activar canal 0 a Fosc/8 00=4mhz 10=8mhz
Inicio:
ADCON0.2 = 1 ;iniciar conversión
PAUSEUS 50 ;pausa para la conversión
if anterior = ADRESH THEN goto inicio ' si no hay cambios reinicio la medicion
hpwm 1,ADRESH,10000 ' con lo cual se incrementara la luminosidad del led
LCDOUT $fe,$c1,dec3 ADRESH
anterior = ADRESH ' cargo el valor de la medicion con el valor actual para futura comparacion
GOTO inicio
END
donde los registros:
adcon0 y adcon1 son registro donde se configura el tiempo de conversion, el canal de entrada, progreso de conversion,
etc, etc,
ademas de un registro de 16 bits llamado adresh y adresl donde se almacena el resultado de la conversion.(16 bits, cadauno de o bits)
BUeno en sintesis, tegno un inconveniente con mi projecto y no se como proceder, creo que me estoy dando cuenta
lo que dijo Darbytes , que me tomara dos años hacer, jejeje-.
el asunto es:
mi motor cooler comienza a girar cuando el potenciometro esta en 60 decimal (es decir desde 0 hasta 59 no mueve el ventilador) y llega hasta
255 decimal su maxima velocidad, hasta aqui muy bien, porque un ventilador es normal girar a muchas revoluciones
al final es un ventilador, pero el problema esta en que si le pongo a mi motor grande esta
configuracion lo primero que el potenciometro esta muy largo para iniciar su trabajo, imaginate para que empiece a girar el motor
el pot tiene que girar un 40% aproximadamente recien para que inicie el giro, y por otro lado no se desea el giro a maxima velocidad del motor,
saldria volando la maquina donde esta instalado el motor grande.
entonces se desea implementar en el programa basic "patrones para poder hacer ajustes de velocidad deseadas":
que el minimo y maximo del potenciometro varien entre el 45% y 60% suficientes.
E medido en la entrada del adc RA0 los siguientes voltajes por lo cual supongo que alli trabajaria muy bien el motor, en un ventana de:
potenciometro
MINIMO MAX
1.5 VOLT 2.5VOLT
O O
60 DECIMAL 130 DECIMAL
Entonces estuve estudiando un poco como hacer esto, y tengo la idea quiza de aplicar un "voltaje de referencia" por un segundo pin del puerto A,
entonces alli no se como hacer esa programacion, que idea me dan muchachos, ya que esto de la programacion es inmenso. waooo si que es inmenso
vi por alli algunos terminos como:
Tiempo de Adquision: Tiempo de Conversion: resolucion:
mi preguta es como lo úedo hacer ya que si el projecto llevara un timer X , me derrumbo porque eso aun no le eh podido entender muy bien.
Ante mano Gracias por su ayuda y estoy apto a lo que me digan.
Gracias