domingo, 15 de febrero de 2015

ADC - PSoC 4

El objetivo es poder medir el valor de entrada de un pin analógico del PSoC 4 Pioneer Kit y poderlo mostrar en una pantalla LCD.

El PSoC tiene un ADC con una resolución de 11 bits, por lo tanto entrega valores entre 0 y 2047.

La configuración de los pines a conectar al PSoC se encuentra en las hojas de datos del mismo entorno PSoC creator. Mostramos una imagen de los pines a utilizar en la práctica.


Mostramos el código del main.c, para obtener los resultados que buscamos en el objetivo:

#include <project.h>

int main()
{
    /* Place your initialization/startup code here (e.g. MyInst_Start()) */
    
    LCD_Start();
    LCD_Position(0,0);
    LCD_PrintString("Hello world!");
    
    ADC_Start();
    ADC_StartConvert();
    ADC_IsEndConversion(ADC_WAIT_FOR_RESULT);
    
    uint16 lecture;

    CyGlobalIntEnable; /* Uncomment this line to enable global interrupts. */
    for(;;)
    {
        /* Place your application code here. */
        LCD_Position(1, 0);
        lecture = ADC_GetResult16(0);
        if(lecture > 2047){
            lecture = 0;
        }
        LCD_PrintNumber(lecture);
        CyDelay(500);
        LCD_ClearDisplay();
        LCD_Position(0, 0);
        LCD_PrintString("Hello world!");
    }
}


Y la configuración de los pines:

A continuación dejamos los links para descarga directa de la imagen de disco (ISO) del PSoC Creator y de los drivers necesarios para poder usar el PSoC 4.
Los resultados se muestran en el siguiente vídeo, además de explicar a más a detalle los pasos para utilizar el ADC.


2 comentarios:

  1. La información esta muy completa, es de mucha ayuda pues no siempre se puede encontrar la información completa necesaria. Gracias por su aportación.

    ResponderEliminar
  2. Buena info, pero tengo una duda, en mi caso yo ando tratando de pasar a °C la conversión del ADC pero me causa problemas en el aspecto que me hace cambias muy radicales. Por ejemplo con un pote lo pongo y simulo que tengo 30 grados, pero de la nada baja repentinamente a 9,20... o de la nada sube grados y es lo que no logro entender el por qué, me podrías ayudar porfa?

    ResponderEliminar