TODOPIC

Microcontroladores PIC => * PROYECTOS * => Mensaje iniciado por: bluesboy en 04 de Julio de 2024, 09:53:30

Título: Conversor analógico digital para pic, ¿ideas?
Publicado por: bluesboy en 04 de Julio de 2024, 09:53:30
Hola gente.
Hace rato que no ando por acá.
Un amigo tiene una señal analógica que va de 0 a 5V y quiere armar un vúmetro de barras en una pantallita lcd.
La pantallita la controlamos con un pic, en assembler.

Necesito su ayuda para usar o hacer un controlador BARATO, DE VUELTA BARATO (MUY BARATO) que me entregue una salida de 4 bits. No necesito mas definición, de hecho si pudiera dividir los 5v en 10 partes, ya estamos joya.

Suelo usar micros económicos, 16f627/628. Aclaro esto porque sé que hay micros que ya traen el conversor, pero son muy caros para lo que queremos hacer. Por eso estoy buscando la manera de armar algo por fuera del pic o bien, alguna idea que tengan que me sirva de ayuda.

Los leo.
Gracias.
Título: Re:Conversor analógico digital para pic, ¿ideas?
Publicado por: Eduardo2 en 04 de Julio de 2024, 13:11:01
El 16F628 tiene comparador y referencia interna programable a 16 valores.
Podés hacer una rutina que vaya incrementado la referencia hasta que cambie el comparador.
Título: Re:Conversor analógico digital para pic, ¿ideas?
Publicado por: Yoshua en 05 de Julio de 2024, 11:52:20
Podrias usar un conversor voltaje-corriente aplicado a un capacitor y de ahi medis el tiempo de carga/descarga. El circuito seria algo parecido a la carga electronica pero con un capacitor a la salida.
Título: Re:Conversor analógico digital para pic, ¿ideas?
Publicado por: AleSergi en 05 de Julio de 2024, 12:19:04
El 16F628 tiene comparador y referencia interna programable a 16 valores.
Podés hacer una rutina que vaya incrementado la referencia hasta que cambie el comparador.

como dijeron, usa los comparadores...
aqui en el foro dejaron un tutorial pdf.


http://www.todopic.com.ar/foros/index.php?PHPSESSID=aaaa9acd613500976f04e3f8c244e8ae&action=dlattach;topic=17221.0;attach=4776
 (http://www.todopic.com.ar/foros/index.php?PHPSESSID=aaaa9acd613500976f04e3f8c244e8ae&action=dlattach;topic=17221.0;attach=4776)

Título: Re:Conversor analógico digital para pic, ¿ideas?
Publicado por: DominusDRR en 08 de Julio de 2024, 18:00:36
Hola gente.
Hace rato que no ando por acá.
Un amigo tiene una señal analógica que va de 0 a 5V y quiere armar un vúmetro de barras en una pantallita lcd.
La pantallita la controlamos con un pic, en assembler.

Necesito su ayuda para usar o hacer un controlador BARATO, DE VUELTA BARATO (MUY BARATO) que me entregue una salida de 4 bits. No necesito mas definición, de hecho si pudiera dividir los 5v en 10 partes, ya estamos joya.

Suelo usar micros económicos, 16f627/628. Aclaro esto porque sé que hay micros que ya traen el conversor, pero son muy caros para lo que queremos hacer. Por eso estoy buscando la manera de armar algo por fuera del pic o bien, alguna idea que tengan que me sirva de ayuda.

Los leo.
Gracias.

(https://pablin.com.ar/electronica/circuito/audio/vumetro/circuito.gif)

(https://pablin.com.ar/electronica/circuito/audio/vumetro/foto.jpg)

https://pablin.com.ar/electronica/circuito/audio/vumetro/index.htm (https://pablin.com.ar/electronica/circuito/audio/vumetro/index.htm)
Título: Re:Conversor analógico digital para pic, ¿ideas?
Publicado por: Picuino en 10 de Julio de 2024, 18:53:47
http://ww1.microchip.com/downloads/en/AppNotes/00700a.pdf


http://ww1.microchip.com/downloads/en/AppNotes/00000513E.pdf
Título: Re:Conversor analógico digital para pic, ¿ideas?
Publicado por: Robert76 en 11 de Julio de 2024, 09:28:55
Hola, puedes usar el 16F819, posee ADC interno que, sobraría para tu requerimiento.
Título: Re:Conversor analógico digital para pic, ¿ideas?
Publicado por: Picuino en 12 de Julio de 2024, 03:59:42
Si quieres que sea barato, deberías cambiar de micro.
Algunos que cuestan solo una cuarta parte:
https://www.microchip.com/en-us/parametric-search.html/980?filters=JTdCJTIyYWN0aXZlU2xpZGVyRmlsdGVycyUyMiUzQSU1QiU1QiUyMjVrJTIwUHJpY2luZyUyMiUyQyU1QjAuMjklMkMwLjI5JTVEJTVEJTVEJTJDJTIyY2F0ZWdvcnlkcm9wZG93biUyMiUzQSU1QiUyMk1pY3JvY29udHJvbGxlcnMlMjBhbmQlMjBNaWNyb3Byb2Nlc3NvcnMlMjIlMkMlMjJBbGwlMjBNaWNyb2NvbnRyb2xsZXJzJTIwYW5kJTIwTWljcm9wcm9jZXNzb3JzJTIyJTJDJTIyJTIyJTVEJTdE

Y de estos, algunos tienen conversor ADC.
Título: Re:Conversor analógico digital para pic, ¿ideas?
Publicado por: DominusDRR en 14 de Julio de 2024, 13:23:47
(https://www.build-electronic-circuits.com/wp-content/uploads/2020/01/VU-meter-circuit-diagram.png)



https://www.build-electronic-circuits.com/simple-vu-meter-circuit/ (https://www.build-electronic-circuits.com/simple-vu-meter-circuit/)
Título: Re:Conversor analógico digital para pic, ¿ideas?
Publicado por: bluesboy en 28 de Julio de 2024, 15:17:37
Excelente, muchas gracias por las ideas.
Título: Re:Conversor analógico digital para pic, ¿ideas?
Publicado por: bluesboy en 28 de Julio de 2024, 19:36:06
El 16F628 tiene comparador y referencia interna programable a 16 valores.
Podés hacer una rutina que vaya incrementado la referencia hasta que cambie el comparador.

Esto me encantó, gracias, no se me había ocurrido, porque nunca lo use así.

Gracias
Título: Re:Conversor analógico digital para pic, ¿ideas?
Publicado por: Eduardo2 en 28 de Julio de 2024, 22:02:24
La rutina son pocas líneas.  Incluso si se piensa mostrar una barra se hace que la "cuenta" la lleve la barra.

Por ejemplo, en CCS:
Código: [Seleccionar]
//------------------------------------------------------- 
#include<16F628A.h>
#use delay(internal=4MHz)
#use fast_io(all)                                         
//------------------------------------------------------- 
#byte VRCON=getenv("SFR:VRCON")
#byte CMCON=getenv("SFR:CMCON")                           
//-------------------------------------------------------
int8 barra8led(void){

    VRCON = VREF_LOW ;
    int8 barra=0 ;
    do{
        VRCON++  ; delay_us(20) ;   // Para que se estabilice la salida del comparador .
                                    // Probar en fisico cual es el tiempo minimo.
        if(C1OUT) return barra ;
    } while(!shift_right(&barra,1,1)) ;  // movimiento de la barra  der/izq
    return 0x01  ;                  // Un solo led para indicar overflow
}
//-------------------------------------------------------
void main(void){

    set_tris_a(0xFF) ;
    set_tris_b(0x00) ; output_b(0) ;

    CMCON = A0_VR_A1_VR ;    // Barra8led()  compara la tensión en RA0. Maximo ~1.8V


    while(1){
        delay_ms(50) ;
        output_b(barra8led())    ;
    }
}
//-------------------------------------------------------