TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: Peliparado en 06 de Mayo de 2005, 19:17:00
-
Saludos, tengo una practica que consiste en utilizar un potenciometro y convertir su entrada analoga en digital, para posteriormente mostrar el dato por el LCD, usando el PIC 16F877A y sus puertos A/D. Pero tengo unas duditas:
- cualquier potenciometro sirve ?
- Cuando giro el potenciometro ¿ qué entra al PIC ? ¿un numero (1-0) o que ?, me imagino que me recibe un voltaje entre 0-5V y con base a eso miro los cambios, pero: ¿como seria?, como hace uno en ASM para detectar esos valores, sabiendo que solo se puede saber si es 1 o 0 ? Ejemplo: btfss o btfsc
Bueno, esas eran mis dudas, lo que pasa es que el profesor de micro nos va a enseñar este tema (la parte teorica) pero la parte practica la hacemos los estudiantes.
De antemano gracias, no quiero ningun codigo fuente ni nada, no quiero molestarlos tanto, solo quiero que me informen un poquito acerca del uso de estos potenciometros.
Gracias !!!
-
Creo recordar que fue Xelene la que hizo exactamente el mismo proyecto. Busca por ahí porque seguro que lo encuentras, no hace mucho tiempo que lo posteó.
-
Hola compañero, con respecto a los potenciometros hay dos tipos : logaritmico y lineales, el logaritmico va pegando saltos en su valor ohmico , es decir si giras el potenciometro 1 mm y te da un valor de 10ohmios al girar 2 mm no vas a tener un valor de 20 ohmios ( éste seria el caso de los lineales) sino 30 o cualquier otro valor, este es como ejemplo.
Cuando giras el potenciómetro entra un voltaje de 0-5v.
Hay micros que poseen entradas analogicas (un valor cualquiera de tension) o digitales ( 0 ó 1). La entrada sera analogica o digital dependiendo de la configuracion que se le haya dada al micro mediente software.
Espero que te haya podido aclarar un poquito tus dudas. Un saludo.
-
Hola, si la entrada es a/d, justamente significa, que lee un valor "Analogico" que puede ser cualquiera entre 0 y 5 voltios..... y los pasa a "Digital"... y si es por ejemplo un convertidor de 8 bits, tienes para cada valor, de unos 0.019 voltios (aproximadamente) su correspondiente valor digital...., asi las 255 posibilidades.....
Suerte!
Norberto
-
Mira, debes usar un micro con conversor AD, yo he usado el 18f870, que es uno muy comun y facil de usar, y tienes que seguir estos paso:
Primero configura el ADCON1, para que eljas el canal, yo generalmente uso el canal 0, pero no recuerdo su configuracion en el ADCON1, solo esto tienes que configurar aqui el resto de bits dejalo como esta.
Ahora vete hasta el ADCON0 y elige el reloj, puede escoger el de 1/32 que funciona bien, tienes darle un bsf al ADCON0,0 para que el ADC arranque,
Ahora cuando quieras iniciar la conversion tienes que mandar un bsf al ADCON0.2 y esperar a que este solito regrese a cero, una vez que esto suceda el valor en voltios que este en el canal 0 (RA0) se encontrara en el registro ADRESH, asi que ya puedes usarlo, por ejemplo si existia 2.5 voltios en este registro estara el valor de 128
suerte
-
Ups, casi la jodo no es el pic 18f870 sino pic 16f870 para que te quede mejor aqui te pongo un codigo que ya lo hace es pequeño espero que te sirva acoplalo a lo que necesites
#include "p16f870.inc"
__config 3D3A
conta1 EQU 0x20
index movlw b"00111000"
movwf STATUS
movlw b"00001110"
movwf ADCON1
movlw b"00000000"
movwf TRISA ;puerto A como salidas
movlw b"00011000"
movwf STATUS ;Cambiarse al banco 0
movlw b"10000000"
movwf ADCON0
main bsf ADCON0,0
bsf ADCON0,2
main1 btfsc ADCON0,2
goto main1
movf ADRESH,w
movwf conta1 ;Aqui esta el valor convertido
goto main
end
-
Escrito originalmente por patolinec
Ups, casi la jodo no es el pic 18f870 sino pic 16f870 para que te quede mejor aqui te pongo un codigo que ya lo hace es pequeño espero que te sirva acoplalo a lo que necesites
#include "p16f870.inc"
__config 3D3A
conta1 EQU 0x20
index movlw b"00111000"
movwf STATUS
movlw b"00001110"
movwf ADCON1
movlw b"00000000"
movwf TRISA ;puerto A como salidas
movlw b"00011000"
movwf STATUS ;Cambiarse al banco 0
movlw b"10000000"
movwf ADCON0
main bsf ADCON0,0
bsf ADCON0,2
main1 btfsc ADCON0,2
goto main1
movf ADRESH,w
movwf conta1 ;Aqui esta el valor convertido
goto main
end
Podrias mandarme el diagrama a, mariohm38@yahoo.com.ar o al privado !!!