Autor Tema: problemas con el convertidor A/D y PWM  (Leído 3312 veces)

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

Desconectado _JaM_

  • PIC10
  • *
  • Mensajes: 26
problemas con el convertidor A/D y PWM
« en: 28 de Mayo de 2004, 19:10:00 »
Hola que tal a todos espero que alguien me pueda ayudar con lo que estoy haciendo....
Mi problema es el siguiente:::

Tengo un pwm de 1Khz, lo estoy variando con los puertos RA0-RA4 (5) (32bits)


Lo que estoy haciendo es tomar una señal de referencia de 0 a 5volts con un potenciometro.. lo meto al convertidor A/D.. pero obtengo un valor de 10 bits.. como le hago para introducir ese valor en el pwm.....

Lo pongo directo en CCPR1L pero al variar el potenciometro me despliega tres veces el pwm

Dicho de otra manera:
comienzo a girar el potenciometro y comienza el pulso desde cero hasta un valor maximo.. al seguir variando el potenciometro, el pulso comienza nuevamente desde cero y va hasta su valor maximo.. asi lo hace hasta 4 veces hasta que el potenciometro llega hasta el final...

yo quiero que lo haga solo una vez....

otra pregunta.... si logro resolver ese problema lo siguiente que quisiera hacer es de otra referencia de 0 a 5v mantener buscar algunas funciones que me lleven a mantenerme siempre en un valor de 2.5 v... cuando varie la referencia siempre me llevea 2.5

Desconectado miltonmc

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 307
RE: problemas con el convertidor A/D y PWM
« Respuesta #1 en: 31 de Mayo de 2004, 13:56:00 »
mira este ejemplo

;PRACTICA; 8 VARIACION DE LA VELOCIDAD DEL MOTOR
;
;Ejemplo MicroPIC Trainer y Micro"PIC I/O
;
;El módulo conversor ADC. Variando la velocidad de un motor.
;
;Los dispositivos PIC16F87X disponen de un convertidor A/D de 10 bits de resolución y 5 u 8
;canales de entrada analógica. La tensión de referencia determina la resolución por bit:
;(Res. = Vref/1024). Con 5 Vref=4.8 mV/Bit; con 2.5 Vref=2.4 mV/Bit
;
;Se propone la regulación de velocidad del motor CC de la tarjeta Micro"PIC I/O mediante
;PWM. Para ello, el potenciómetro AN3 de la Micro"PIC Trainer conectado a la línea RA3/AN3,
;determina la duración de la anchura del pulso. El valor de este potenciómetro es convertido
;cada 10 mS para su lectura y posterior ajuste de la anchura del pulso.
;
;La salida PWM en RC2/CCP1 se conecta a la señal Enable del motor. RB0 y RB1 determinan el
;sentido de giro.

      List   p=16F873   ;Tipo de procesador
      include   "P16F873.INC"   ;Definiciones de registros internos

Periodo      equ   0x20      ;Variable para el periodo
Duty_H      equ   0x21
Duty_L      equ   0x22      ;Variable para la anchura de pulso

      org   0x00      ;Vector de Reset
      goto   Inicio

      org   0x04      ;Vector de interrupción
   
;Programa de tratamiento de la interrupción

Inter      btfss   PIR1,ADIF   ;Ha sido interrupción del ADC ??
      retfie         ;No, falsa interrupción
      bcf   PIR1,ADIF   ;Reponer el flag del conversor
      movf   ADRESH,W
      movwf   CCPR1L      ;Carga los 8 bits de más peso para el PWM
      bsf   STATUS,RP0   ;Selecciona banco 1
      rrf   ADRESL,F
      rrf   ADRESL,W
      andlw   b"00110000"
      bcf   STATUS,RP0   ;Selecciona banco 0
      iorwf   CCP1CON,F   ;Carga los dos bits de menos peso para el PWM
      retfie

;Programa principal

Inicio           clrf   PORTA
      clrf   PORTB
      clrf    PORTC
      bsf   STATUS,RP0   ;Selecciona banco 1
      clrf   ADCON1      ;Puerta A analógica, justificación izda.
      clrf   TRISB      ;Puerta B se configura como salida
      movlw   b"00011111"
      movwf   TRISA      ;RA4-RA0 entradas
      movlw   b"11111011"
      movwf   TRISC      ;RC2/CCP1 salida
      movlw   b"11001111"
      movwf   OPTION_REG   ;Preescaler de 128 asociado al WDT
      bsf   PIE1,ADIE   ;Activa interrupción del convertidor
      bcf   STATUS,RP0   ;Selecciona banco 0

;Se activa el ADC y se selecciona el canal RA3/AN3. Frecuencia de trabajo Fosc/32

      movlw   b"10011001"
      movwf   ADCON0      ;ADC en On, seleciona canal AN3
      bcf   PIR1,ADIF   ;Restaura el flag del conversor AD

;El módulo CCP1 actúa en el modo PWM.

      movlw   b"00001100"
      movwf   CCP1CON      ;Módulo CCP1 en modo PWM con salida por RC2/CCP1

;El periodo del PWM para el módulo CCP1 es de 4 mS (PR2*TMR2 Preescaler*4*Tosc)

      movlw   .250
      bsf   STATUS,RP0   ;Selecciona página 1
      movwf   PR2
      bcf   STATUS,RP0   ;Selecciona página 0

;La anchura inicial del pulso es la mínima (1)

      movlw   .1
      movwf   CCPR1L

;El TMR2 trabaja con un preescaler de 1:16. Evoluciona cada 16 uS

      movlw   b"00000110"
      movwf   T2CON      ;TMR2 en On
         
;El módulo CCP2 se configura en modo de comparación con disparo de eventos. El TMR1 se
;resetea y se da inicio a una nueva conversión cada vez que se alcanza el valor del CCPR2.

      movlw   b"00001011"
      movwf   CCP2CON      ;Modo comparación con disparo de eventos
      movlw   high .10000
      movwf   CCPR1H
      movlw   low .10000
      movwf   CCPR2L      ;Carga el registro CCPR2 con 10000
      clrf   TMR1L
      clrf   TMR1H      ;Inicia el TMR1

;El TMR1 actúa con oscilador interno y un preescaler de 1:1

      movlw   b"00000001"
      movwf   T1CON      ;TMR1 en On
      
      movlw   b"11000000"
      movwf   INTCON      ;Activa interrupciones

      movlw   b"00000010"
      movwf   PORTB      ;Motor en On, giro horario

Loop      clrwdt         ;Refrescar el WDT
      goto   Loop

      end         ;Fin del programa fuente




este ejemplo funciona muy bien

saludos de rep. dom.  miltonmc

saludo

Desconectado _JaM_

  • PIC10
  • *
  • Mensajes: 26
RE: problemas con el convertidor A/D y PWM
« Respuesta #2 en: 02 de Junio de 2004, 13:17:00 »
Gracias voy a intentarlo a ver si funciona,, despues tratare de modfcarlo.... gracias de nuevo.. y otra pregunta de donde obtuviste ese programa.???

Gracias!!

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: problemas con el convertidor A/D y PWM
« Respuesta #3 en: 02 de Junio de 2004, 13:23:00 »
La dirección está en el subforo de C, en uno de los últimos mensajes, hay un montón de ejercicios ... estan muy bien, son muy didácticos.

Un saludo

Desconectado ENCARPA

  • PIC16
  • ***
  • Mensajes: 172
RE: problemas con el convertidor A/D y PWM
« Respuesta #4 en: 02 de Junio de 2004, 18:24:00 »
Hola tambien puedes ver el siguiente ejemplo http://miarroba.com/foros/ver.php?temaid=974141&foroid=79706
que dessarrollo PIKMAN sobre un PWM controlado por el conversor A/D.

Salu2.

Desconectado _JaM_

  • PIC10
  • *
  • Mensajes: 26
RE: problemas con el convertidor A/D y PWM
« Respuesta #5 en: 09 de Junio de 2004, 13:42:00 »
gracias por sus respuestas....
he resuleto mi problema... ke hubiera hecho sin ustedes??...
gracias


 

anything