En este proyecto aprenderemos a usar un conversor Analogo Digital y visualizar su resultado en la LCD
Necesitaremos:
- tener cableada y configurada nuestra LCD_Custom_char que se explica al detalle aquí.
- un potenciometro del valor que quieran (yo use uno de 5K ohm).
- tres jumpers para conexiones.
luego de esto nos vamos a un proyecto nuevo de creator, y abrimos el archivo .cydwr que es donde normalmente configuramos pines y vamos a la pestaña sistema, aqui tendremos que cambiar las condiciones de operacion de nuestra tarjeta, cambiando el Vddd que por defecto esta a 3.3 V y poniendolo a 5V.
Igualmente con el Vdda, y quitando la seleccion del cuadro de Vdda variable. Tiene que quedar asi:
luego de esto vamos a nuestra biblioteca de componentes a la parte de "ports and pins" y de alli arrastraremos un "analog pin" a nuestro esquemático.
luego en la misma biblioteca de componentes vamos a "Analog" y luego a "Amplifiers" y arrastramos un "OpAmp" a nuestro esquemático.
Tambien vamos a "ADC" y de allí arrastramos un "sequencing SAR ADC" a nuestro esquemático.
luego de esto damos doble clic encima de nuestro ADC_SAR_Seq_1 y procedemos a configurarlo:
en la primera pestaña, la que dice general, cambiaremos primero el nombre por ADC, luego:
Timing:
usaremos la opción :
- Sample rate (SPS): es la frecuencia con la que nuestro ADC tomara los datos para hacer la conversion, por defecto esta en 166666, lo dejaremos asi.
en Clock Source lo dejaremos en internal, es para que su reloj sea el mismo de la tarjeta.
Y Sample Mode : lo pondremos en Free Runing, para que siempre y sin interrupcion haga la conversion.
Input Range:
- Vref Select : Lo pondremos en VDDA, por que nuestro maximo valor sera 5 V y sera nuestro voltaje de referencia.
- Input Buffer Gain : Lo des habilitamos, para que no tenga ganancia nuestra entrada.
Estas son nuestras configuraciones importantes, el resto lo dejamos como está.
luego de esto pasamos a la pestaña Channels:
Aquí en sequenced channels lo pondremos en 1 y el canal 0 lo pondremos en modo Single, de esta manera :
Ya quedo configurado nuestro ADC
Ahora damos doble clic sobre nuestro amplificador operacional y aquí en mode lo ponemos como Follower o seguidor y power lo ponemos como high:
aplicamos y aceptamos, ya tenemos configuradas todas las partes de nuestro ADC.
recuerden que tambien agregamos nuestra LCD y sus respectivos pines, lo cual se explica en el link que dejé al principio.
Luego de tener esto, vamos a cablear todo de la siguiente manera:
hecho esto, nos vamos a nuestro código.
Abrimos el archivo de extension .c
El codigo esta todo con comentarios, para explicar cada linea:
una ves hecho esto nos encontramos un problema y es que nuestra funcion sprintf, desborda la memoria ROM de nuestra tarjeta.
para solucionar esto, hemos encontrado en un foro de cypress una manera muy efectiva para hacerlo, la cual es la siguiente :
en la parte izquierda de nuestro proyecto, donde salen todos los archivos, damos clic derecho a nuestro proyecto y vamos a Build Settings.
una ves aqui damos en linker -> Command Line y aqui ponemos esta linea:
-u _printf_float
debe quedar de esta manera :
echo esto aplicamos y aceptamos.
Ahora podemos configurar pines.
el pin de entrada del ADC pueden ponerlo donde quieran, no importa:
yo configure de esta manera:
Para poder tener nuestra señal de entrada de 0 a 5V tenemos que usar un potenciometro el cual nos hara esta funcion.
El potenciometro se tiene que poner de la siguiente manera:
Luego de esto podremos guardar y compilar, nuestro proyecto tendra 0 errores y 0 advertencias.
programamos nuestra tarjeta, y ubicamos el potenciometro como tiene que estar y tendremos algo como esto :
Enlaces de descarga:
- ADC.rar
Brayan Andres Bermudez B.
Harold Garcia.
Estudiantes.
No hay comentarios.:
Publicar un comentario