PWM para pic 16f84a con entrada analogica

#1
hola colegas electronicos como ven mi pregunta seria la siguiente como podria modificar el siguiente programa para poder controlar la velocidad del motor con un potenciometro .
En este programa se controla la velocidad con 4 swich .
les mostrare el diagrama y y el programa del pic
saludos gracias.

el programa que tengo es este..
Código:
		__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
		LIST	P=16F84A
		INCLUDE <P16F84A.INC>
		
		CBLOCK 0x0C
		Ciclos_ON
		Ciclos_OFF
		GuardaEntrada
		Var
		ENDC
		
	MaximaEntrada	EQU		.10
	

		ORG		0
	Inicio:
		bsf		STATUS,RP0
		movlw	b\'00001111\'				;RA3:RA0 como entradas.
		movwf	TRISA	
		clrf	TRISB					;Las lineas del Puerto B se configuran como salidas.
		bcf		STATUS,RP0
	Principal
		movf	PORTA,W					;Lee el puerto de entrada.	
		andlw	b\'00001111\'
		movwf	GuardaEntrada			;Guarda el valor.
		btfsc	STATUS,Z				;Si RA3:RA0=0 el motor se detiene
		goto	DC_CeroPorCiento
		sublw	MaximaEntrada			;(W)=10-(PORTA)
		btfsc	STATUS,Z				
		goto	DC_100PorCiento
		btfss 	STATUS,C				;¿C=1?,¿(w)positivo?,¿(PORTA)<=10?.
		goto 	DC_CeroPorCiento		;Ha resultado(PORTA>10).
		movwf	Ciclos_OFF				;10-(PORTA)-->(Ciclos_OFF).
		movf	GuardaEntrada,W			
		movwf	Ciclos_ON				;Carga RA3:RA0 en (Ciclos_ON).
	Motor_ON
		movlw	b\'10000000\'				;Habilita los drivers y un sentido de giro.
		movwf	PORTB
		call 	Retardo_1ms
		decfsz	Ciclos_ON,F				;Si(Ciclos_ON)=0 salta a Motor_OFF.
		goto	Motor_ON				;+2
	Motor_OFF
		clrf	PORTB					;Inhabilita los drivers. Motor parado.
		call	Retardo_1ms
		decfsz	Ciclos_OFF,F			;Si(Ciclos_OFF)=0 salta a Principal.
		goto	Motor_OFF				;+1
		goto	Fin
	DC_CeroPorCiento
		clrf	PORTB					;Inhabilita los drivers. Motor Parado.
		goto	Fin
	DC_100PorCiento
		movlw	b\'10000000\'				;Habilita los drivers y un sentido de giro
		movwf	PORTB
	Fin:
		goto 	Principal
		
		INCLUDE<RETARDO.INC>
	END
...
 
#2
El PIC16F84A no puede leer señal análoga, necesitas un chip dedicado a eso o cambiar por un PIC que si tenga ADC (conversor análogo a digital).
Si fuera lenguaje basic, hay una instrucción POT con la que si podrias, sin necesidad de tener ADC y por cualquier pin del PIC, esto necesita de un circuito RC. En asm, se podria implementar porque POT solamente espera hasta que C (condensador) se descargue por medio de R (resistencia/potenciómetro) y de acuerdo al tiempo que se demoró la descarga determina el valor.
 
#5
Como dicen los compañeros el PIC 16f84 no tiene entadas analogicas, todas son entradas/salida digital
Para querer seguir con Tú proyecto deberias ó bien cambiar de pic que tuviera entrada analogica, como los modelos que te indican en un post más arriba ó bien tienes que utilizar un convertidor a/d como el ADC 0804 ó el encoder que te recomienda Scooter
Espero que Tú decisión la postees para asi poder ayudarte
Un saludo
P.D.
No veo el diagrama del circuto
 

Temas similares

Arriba