TODOPIC
Microcontroladores PIC => * PROYECTOS * => Mensaje iniciado 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.
-
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.
-
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.
-
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)
-
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)
-
http://ww1.microchip.com/downloads/en/AppNotes/00700a.pdf
http://ww1.microchip.com/downloads/en/AppNotes/00000513E.pdf
-
Hola, puedes usar el 16F819, posee ADC interno que, sobraría para tu requerimiento.
-
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.
-
(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/)
-
Excelente, muchas gracias por las ideas.
-
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
-
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:
//-------------------------------------------------------
#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()) ;
}
}
//-------------------------------------------------------