PIC18F452 VCO ni idea pero inicio

#1
Hola a todos.

Es mi primer post, y el cual lo estoy poniendo porque me voy a titular y el tema que me tocó es el de desarrollar un VCO (Oscilador controlado por voltaje) con el PIC18F452.

No tengo la más remota idea de como realizarlo, pero estaré actualizando mi progreso, cualquier ayuda, será bienvenida.

Pronto pondré programas básicos para iniciar el proyecto.

Gracias.
 
#4
Hola.

Lo que pretendo es lo siguiente.

1.- Por medio de componentes electrónicos sensores, tener voltaje de entrada de 0 a 5Volts, que mida temperatura, presión, ruido, etc, pero que vaya de 0 a 5 volts.

2.- Teniendo de entrada del micro de 0-5V graficarlo en una onda sinusoidal, que la variación de voltaje sea la frecuencia de la onda, con eso generaría sonido.

3.- Despues pasar esa onda a la entrada de PC y graficarlo en otro programa, eso ya es otro tema.

Por qué todo esto? este es un tema que propuso un maestro como reto, es por eso que estoy metido en esto.

Gracias por cualquier aporte que me pudieran brindar.
 

carlosog15

Bovino adicto
#5
Te puedo ayudar pero dime que habilidades tienes, que llevas del proyecto, etc.
La idea es censar con el pic, mandar los datos al PC y allí graficar, yo digo que lo mejor seria en Matlab o en LabVIEW.
 
#6
Hola carlosog15, tiene años queno he programado y era diferente, estoy retomando el tema de microcontroladores, me estoy poniendo a estudiar, en otras palabras estoy en pañales, pero no me gusta que me den todo peladito y a la boca, me gusta aprender y soy inquieto, soy materia disponible.

Espero me puedas orientar que tipo de material debo leer antes de que me ayudes.

Gracias de antemano.
 

carlosog15

Bovino adicto
#7
Hola ucbacardi, pues en realidad creo que no ha cambiado mucho la programación de microcontroladores por lo menos a lo que se refiere a los pics de 8 bit, yo personalmente prefiero programar en C, a menos que por cuestiones del proyecto haya que recurrir a utilizar el ensamblador.
Yo no digo que soy un experto en programación ni nada por el estilo, en realidad aún soy estudiante, me falta un poco para terminar la carrera; pero igual que tú me gusta aprender y ayudar a los demás con lo que eh aprendido.
Voy a compartirte un par de libros de programación en C, uno es de CCS y el segundo de MikroC, ambos incluyen información de simulación en Proteus, creo que estos te serán muy útiles. (Como siempre agradeciendo a las personas que se tomaron la libertad de digitalizar los libros y por supuesto a los autores de los mismos.)
También te recomiendo leer el datasheet de tu pic, nunca eh utilizado el que tú mencionas, no sé si lo escogiste por alguna cualidad que tenga, pero si ya lo tienes pues utiliza ese pic, sí aun no lo compras sería mejor que utilices uno más "popular" y económico.

Libros
 
Última edición:
#8
Hola carlosog15, me gustaría que fueran un tipo mentor, es decir, que me dieras tareas, que yo investigue y proporcionarte lo que he aprendido, creo que ambos podríamos aprender, yo microcontroladores y tú la parte de enseñar.

Hace más de 15 años terminé la carrera, no me titule por el pretexto de que requería dinero, cuando empiezas a ganar algo de dinero no volteas a ver la escuela, ahora quiero titularme, los maestros me impusieron ese PIC y es un reto para mí, ya que ellos dicen que no podré realizarlo, es la parte en la que ellos realizan su trabajo para ver si tienes caracter.

Pero tengo que agradecerte el material que me proporcionaste, espero aceptes seas mi mentor.

Gracias nuevamente.
 

carlosog15

Bovino adicto
#9
No tienes que agradecerme, yo no soy autor de los libros ni los escanee así que las gracias van para ellos.
Lee los libros principalmente la parte del conversor analógico-digital.
También investiga sobre conversor de voltaje a frecuencia, eso es precisamente un VCO.
 
#10
Hola Ubcardi y Carlosog15, este tipo de aplicaciones aunque frecuentes en la vida diaria a veces suena complicado hasta que se desmenuzan los conceptos o materias incluidos para conformar todo el proyecto, y como bien dice Ubcardi, es muy esencial comenzar con pequeñas tareas, para fundamentar todos estos conceptos en comento.

Por otro lado también es primordial "esquematizar" las herramientas aplicativas necesarias para reunir todos los fundamentos involucrados, cosa que ya bien nos esta conformando Carlosog15; con los manuales de programación, que comparte, para generar la parte "neuralgica" que existirá en el microcontrolador, pues ya esta definido que sera quien realizara todas las tareas.

Por mi parte pueden ustedes contar con mi experiencia para participar en estas tareas, en las que puedo aportar ideas, retos y posibles soluciones.

Como primer reto, pensaría en poner en marcha al microcontrolador con un simple "Hola Mundo" o el clásico "Led Blink" para darle vida al proyecto. en este simple y aparente sencillo punto, se definirán cosas fundamentales como:

-Lenguaje de programación "Lenguaje C" que me parece fabuloso" aunque yo vengo usando Basic (proton IDE)
-Compilador a utilizar, versión,etc
-Grabador del Microocntrolador, mirar tal vez que contenga el microcontrolador un Bootloader para ahorrar tiempo....
-velocidad del reloj del Microcontrolador
-Fuente de poder si solo con 5 Volts es suficiente o se requieren otros voltajes.

De esta manera, con tareas, se podrá ir avanzando muy rápido.

Yo solo les confieso que a veces no tengo tanto tiempo, sin embargo me gusta ayudar y dar seguimiento a las dudas de los demás, pero solo aquellas que sean dudas con fundamentos y se demuestren los avances; Diagramas, lineas de programación, etc.

Sin mas, reciban un cordial saludo y suerte para que siga la entereza de terminar este proyecto.
 
#11
Hola ucbacardi si podrias detallar un poco mas de la generacion de la onda senoidal, si bien entendi esta se generara atraves de de los sensores o tienes que hacer un oscilador controlado por voltaje, por lo que esto ultimo se genera usando los timer de micro lo que se conoce com PWM, lo unico que tu variarias es voltaje por medio de un potenciometro, dependiendo que valor del voltaje le puedes cargar diferentes frecuencias al timer espero que puedas decir un poco mas para poder ayudadte en lo que pueda.
 
#12
Hola a todos.

Antes que nada, gracias por su apreciable ayuda.

Les comento en bloques que es lo que involucra el proyecto:

1.- El primer módulo es un circuito que entregará un voltaje de 0-5V, puede ser cualquier sensor y unos cuantos operacionales para que entregen 0-5V.

2.- El voltaje del punto 1, se mandará al PIC para que se utilice el A/D.

3.- El PIC tiene que generar una onda senoidal a una frecuencia audible, es decir, (no se si sepueda con microcontroladores) con la función sin() generar la onda con una frecuencia audible, la amplitud de esta onda será lo que esté entrando en el A/D, al final este debe de entregar audio a la salida.

4.- Esto ya no entraría al proyecto, es mandar el audio a una PC, otro proyecto es graficar lo que entre a la PC.

Nota: Entiendo que un VCO realiza esta función, la cosa es realizarlo con un PIC.

Para hacerme entender más, cuando convierten un archivo de audio y ven la gráfica, ven como varía dependiendo el volumen, que sería la amplitud de la onda.

Qué estoy usando para retomar esta maravilla de los microcontroladores, es lo siguiente:

PIC18f452
MPLAB MCC18
Proteus

Cómo bien dice miborbolla, estoy arrancando con mi primer programita, el cual es el siguiente:

#include <p18f452.h>
#pragma config OSC = HS //External oscilador
#pragma WDT = OFF //Deshabilitando watchdog

#define LEDPin LATDbits.LATD1 //Definiendo D1 como salida
#define LEDTris TRISDbits.TRISD1 //Definiendo direccionamiento de D1

void main()
{
LEDTris = 0; //Dirección de salida
LEDPin = 1; //D1 como salida.

while(1)
{
LEDPin = ~LEDPin; //cambiando de 0-1 ó 1-0
Delay10KTCYx(25);
}
}

Aún estoy estudiando la parte de Osciladores, A/D, que es todo un tema para mí.

Espero me haya explicado un poco más al respecto.

Saludos y en espera de sus comentarios.
 
#14
Hola carlosog15.

Es lo que requiero, me desconecté un poco ya que estuve jugando con el PIC realizando varias pruebas, pero continuando, la fase que estoy creo que a punto de terminar es la de ADC.

Esto sería lo básico del ADC para el PIC 18F452:

#include <p18C452.h>
#include <adc.h>
#include <stdlib.h>
#include <delays.h>
int result;
void main( void )
{
// configure A/D convertor
OpenADC( ADC_FOSC_32 & ADC_RIGHT_JUST & ADC_8ANA_0REF,
ADC_CH0 & ADC_INT_OFF );
Delay10TCYx( 5 ); // Delay for 50TCY
ConvertADC(); // Start conversion
while( BusyADC() ); // Wait for completion
result = ReadADC(); // Read result
CloseADC(); // Disable A/D converter
}

Esto es del manual de C18:
http://ww1.microchip.com/downloads/en/DeviceDoc/51297c.pdf

Utilizar la librería del C18 ya no es necesario configurar el ADCON0 y ADCON1, pero hay otra referencia donde se habla de frecuencia de muestreo, ganancia, etc:

http://picfernalia.blogspot.mx/2012/07/conversor-adc.html

Espero pronto poner el código que estaré utilizando.

Saludos a todos.
 

carlosog15

Bovino adicto
#15
Que bueno que sigues avanzando, ese blog ya lo había leído algo de un levitador magnético. Tiene muy buen información.
Yo comenzare a trabajar con LabVIEW y quizás haga interfaz con un pic.
 
Arriba