TODOPIC

Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: pic_877a en 07 de Mayo de 2023, 18:59:48

Título: Adc en Pic 16F690
Publicado por: pic_877a en 07 de Mayo de 2023, 18:59:48
 ola chicos, bueno estoy leyendo a la hoja de datos pic 16f690 y estoy realizando un pequeño código en pic basic pro
necesito activar el adc del citado pic
he configurado el puerto a como entrada

DEFINE ADC_BITS 10
DEFINE ADC_CLOCK 3
DEFINE ADC_ SAMPLEUS 50

TRISA = 255
ADCON1 =%00010010  conversión analógica digital
lo que si esto es correcto o no
adjunto las imágenes de la tabla del adc pic 16f690.

 :(

Título: Re:Adc en Pic 16F690
Publicado por: Jiha en 08 de Mayo de 2023, 11:23:31
Adcon1 no hay que modificarlo, lo que hay que inicializar es ansel y anselh para elegir que entradas son digitales porque sino son todas analogicas
Título: Re:Adc en Pic 16F690
Publicado por: pic_877a en 08 de Mayo de 2023, 11:26:52
Adcon1 no hay que modificarlo, lo que hay que inicializar es ansel y anselh para elegir que entradas son digitales porque sino son todas analogicas

podrías  por favor colocar un ejemplo para poderme guiar.
gracias  :(
Título: Re:Adc en Pic 16F690
Publicado por: Jiha en 08 de Mayo de 2023, 11:41:38
ANSEL=%00000001
ANSELH=%00000000
Elige RA0 como entrada analógica y
Todas las demás como digitales
Título: Re:Adc en Pic 16F690
Publicado por: DominusDRR en 08 de Mayo de 2023, 11:42:57
Adcon1 no hay que modificarlo, lo que hay que inicializar es ansel y anselh para elegir que entradas son digitales porque sino son todas analogicas

Yo pensaría que si puede y debe modificarlo dependiendo de cuál va a ser la fuente de reloj del ADC. (Tiempo de conversión).

El OP debería mostrar un esquemático del hardware que está usando.
Título: Re:Adc en Pic 16F690
Publicado por: pic_877a en 08 de Mayo de 2023, 11:46:37
ANSEL=%00000001
ANSELH=%00000000
Elige RA0 como entrada analógica y
Todas las demás como digitales

en el pic 16f690 quiero usar 2 entradas análogas AN1 y AN2 es decir RA1 y RA2  y de las demás como entrada digitales
 :(
Título: Re:Adc en Pic 16F690
Publicado por: DominusDRR en 08 de Mayo de 2023, 11:50:29
ANSEL=%00000001
ANSELH=%00000000
Elige RA0 como entrada analógica y
Todas las demás como digitales

en el pic 16f690 quiero usar 2 entradas análogas AN1 y AN2 es decir RA1 y RA2  y de las demás como entrada digitales
 :(

ANSEL te sirve para seleccionar que terminales deseas que sean entradas analógicas,

Por lo tanto sería así para AN1 y AN2:

ANSEL=%00000110
ANSELH=%00000000
Título: Re:Adc en Pic 16F690
Publicado por: DominusDRR en 08 de Mayo de 2023, 11:52:47
Respecto a ADCON1, no sabemos el cristal u oscilador que estás usando y es necesario conocerlo para escoger un tiempo de conversión adecuado.

Por lo tanto deberías compartir el esquemático de tu proyecto.
Título: Re:Adc en Pic 16F690
Publicado por: pic_877a en 08 de Mayo de 2023, 11:56:30
Respecto a ADCON1, no sabemos el cristal u oscilador que estás usando y es necesario conocerlo para escoger un tiempo de conversión adecuado.

Por lo tanto deberías compartir el esquemático de tu proyecto.

no visualiza mensaje en lcd 20x4 y además estoy utilizando crystal externo de 4 Mhz con  2 condensadores 22p y gnd
Título: Re:Adc en Pic 16F690
Publicado por: DominusDRR en 08 de Mayo de 2023, 12:05:16

Si lees las hojas de datos, con tu cristal de 4 MHz:

(https://pbs.twimg.com/media/FvnVpqLX0AA9ytR?format=png&name=900x900)

El tiempo de adquisición  puede ser Fosc/8, Fosc/16 o usar el oscilador interno. Y eso debes configurarlo en el ADCON1
Título: Re:Adc en Pic 16F690
Publicado por: Jiha en 08 de Mayo de 2023, 12:11:09
DEFINE ADC_BITS 10
DEFINE ADC_CLOCK 3
DEFINE ADC_ SAMPLEUS 50
Con estas definiciones ya se configura adcon1
Título: Re:Adc en Pic 16F690
Publicado por: DominusDRR en 08 de Mayo de 2023, 12:12:49
DEFINE ADC_BITS 10
DEFINE ADC_CLOCK 3
DEFINE ADC_ SAMPLEUS 50
Con estas definiciones ya se configura adcon1

Eso faltaba, un experto en PICBasic, para recurrir a las trucos que posee el compilador
Título: Re:Adc en Pic 16F690
Publicado por: pic_877a en 08 de Mayo de 2023, 12:21:24

Si lees las hojas de datos, con tu cristal de 4 MHz:

(https://pbs.twimg.com/media/FvnVpqLX0AA9ytR?format=png&name=900x900)

El tiempo de adquisición  puede ser Fosc/8, Fosc/16 o usar el oscilador interno. Y eso debes configurarlo en el ADCON1

quedaría así?

ADCON1 =%11100010010001
Título: Re:Adc en Pic 16F690
Publicado por: Jiha en 08 de Mayo de 2023, 12:28:00
No adcon1 es un registro De 8 bits además con la declaración DEFINE ADC_CLOCK 3 ya se elige de donde se utiliza el clock para el adc y 3 es el
oscilador interno rc si configuras ADCON1 = %00010000 lo divide por 8  'fOSC/8     
Título: Re:Adc en Pic 16F690
Publicado por: pic_877a en 08 de Mayo de 2023, 12:35:10
No adcon1 es un registro De 8 bits además con la declaración DEFINE ADC_CLOCK 3 ya se configura adcon1

estoy usando cristal 4 mhz y 2 condensadores 22p y gnd

de acuerdo con hoja de datos enviada estoy  usando FOSC/8 que corresponde 001 y se debe configurar en ADCON1
y en la pantalla lcd 20x4 no se visuliza nada
Título: Re:Adc en Pic 16F690
Publicado por: Jiha en 08 de Mayo de 2023, 12:44:20
ADCON1 = %00010000 es fosc/8
Título: Re:Adc en Pic 16F690
Publicado por: pic_877a en 08 de Mayo de 2023, 12:51:51
ADCON1 = %00010000 es fosc/8

al realizar modificación de adcon1, en la simulación NO sigue muestra mensaje, adjunto imagen
gracias por responder de nuevo
Título: Re:Adc en Pic 16F690
Publicado por: Jiha en 08 de Mayo de 2023, 12:54:38
Debería proporcionar el fuente para poder simular
En proteus
Título: Re:Adc en Pic 16F690
Publicado por: pic_877a en 08 de Mayo de 2023, 13:03:05
Debería proporcionar el fuente para poder simular
En proteus

te envié mensaje privado, además tengo versión 8.13 de proteus y cual tenes vos?
Título: Re:Adc en Pic 16F690
Publicado por: Jiha en 08 de Mayo de 2023, 13:30:46
8.15
Título: Re:Adc en Pic 16F690
Publicado por: pic_877a en 08 de Mayo de 2023, 13:42:11
8.15

he respondido a tu email, y te envié el código fuente pbp y la simulación en proteus 8.13.
pensaría que con la versión  proteus 8.15  será o no difícil  abrir a simulación proteus 8.13
gracias por responder
Título: Re:Adc en Pic 16F690
Publicado por: Jiha en 08 de Mayo de 2023, 17:15:36
Ya lo envié para que pruebes.
Título: Re:Adc en Pic 16F690
Publicado por: pic_877a en 08 de Mayo de 2023, 17:32:42
Ya lo envié para que pruebes.

gracias por responder de nuevo y también te respondí a tu email,
te adjunto imagen
los valores que registran en la lcd 20x4 son diferentes a los valores de los voltímetros en proteus.
12.6V positivo y -12.6V negativos
gracias
Título: Re:Adc en Pic 16F690
Publicado por: Jiha en 08 de Mayo de 2023, 17:47:04
corrige estas lineas
VALOR1 = (B1 */3500)>>2  'Es lo mismo que (B1 * 3500)/1024
VALOR2 = (B2 */3500)>>2  'Es lo mismo que (B2 * 3500)/1024

no habia visto lo que deseabas medir
Título: Re:Adc en Pic 16F690
Publicado por: pic_877a en 08 de Mayo de 2023, 17:55:09
corrige estas lineas
VALOR1 = (B1 */3500)>>2  'Es lo mismo que (B1 * 3500)/1024
VALOR2 = (B2 */3500)>>2  'Es lo mismo que (B2 * 3500)/1024

no habia visto lo que deseabas medir

Muchas gracias por la ayuda, adjunto imagen  y los valores están visualizando correctamente
 :-/