miércoles, 13 de julio de 2016

Frecuencímetro con PSoC 5 LP






Objetivo



Elaborar un medidor de frecuencia para tres distintas entradas analógicas: senoidal, cuadrada, triangular y mostrar en una pantalla LCD el frecuencia de la señal en cuestión, todo esto en una placa diseñada para el dispositivo PSoC 5LP


Materiales

1 dispositivo PSoC 5 LP
1 Placa de diseño para dispositivo PSoC 5LP
1 Generador de funciones
1 punta de generador de funciones



Básicamente el proyecto consistió en establecer una señal PWM, trabajando con un reloj interno del microcontrolador de 12 MHz. El PWM se encargó de modificar el ciclo de trabajo de una señal al generar un periodo de 1 ms y con protocolo de interrupción programado. La salida del PWM se direccionaba como entrada a un contador con un reloj de 12 MHz también. Este contador sería reiniciado por la interrupción de cada vez que el periodo de la señal del PWM fuera terminado.
A ésto se le agrego una amplificador operacional comparador con una referencia a tierra para poder notar cualquier señal con un flanco de subida creciente y así contarlos, Un imagen del diagrama esquemático se puede apreciar en la figura 1.
Figura 1. Diagrama esquemático del proyecto

La configuración para el PWM se  muestra en las figuras 2
Figura 2. Es importante calcula el periodo de interés a trabajar.

 La configuración del contador se muestra en la figura 3.
Figura 3. Escogiendo el periodo máximo posible nos ayuda a prevenir una posible saturación en la cuenta.
La configuración del amplificador comparador se muestra en la figura 4.
Figura 4.  Es importante usar la misma frecuencia de reloj para cada componente, la entrada no inversora se conectó a la positiva del generador y la señal inversora fue conectada a la tierra del generador.

La implementación del código utilizado se puede observar en la figura 5.



Figura 5. Código implementado en el proyecto













DISEÑO DE LA PLACA


A continuación, se presenta el en PCB Layout (figura 6) realizada en el software para diseño circuitos, la cual contenía las conexiones especificadas por el profesor, además se le podían añadir conexiones extras al gusto del diseñador del circuito.
Figura 6. Diseño de la tarjeta de desarrollo en modo PCB Layout.
Esta placa nos permitirá un mejor manejo al implementarlas, esto con el fin reemplazar el uso del protoboard y dar un mejor aspecto a los circuitos.
Los materiales usados para el diseño de la placa fueron:
  •          LCD de 16x2
  •          2 potenciómetros
  •          2 push button
  •          Pines hembra y macho
  •          3 borneras (mediana y chicas)
  •          Placa fenólica de 10 cm x 15 cm.
El diseño físico de la placa se realizó mediante una máquina CNC de PCB (figura 7) . Posteriormente, se soldó cada uno de los dispositivos que iban a formar parte de ella y  con un generador de funciones(figura 8)  se procedió a evaluar su funcionamiento (figura 9) 
Figura 7. Tarjeta realizada con la máquina CNC para PCB.




Figura 8. Generador de funciones utilizado.
Para evaluar el funcionamiento de nuestra placa, se realizó la implementación de un frecuencímetro mediante el uso del generador de funciones(figura 9).
Figura 9. Tarjeta de desarrollo finalmente soldada con los componentes para su posterior evaluación.








CONCLUSIONES

La combinación de tarjetas de desarrollo a medida y de aplicación específica permite resolver rápidamente varios problemas que toman a veces mucho tiempo encontrar en los protoboard, por lo que una tarjeta de desarrollo nos permitirá un alto desempeño empleando menos tiempo en actividades manuales.
Por otra parte, es importante tener la calibración adecuada al momento de evaluar la tarjeta de desarrollo en el frecuencímetro, además de verificar los códigos fuente así como las configuraciones de cada uno de los componentes programados en el software del PSoC.
Un frecuencímetro es un instrumento utilizado para medir diferentes frecuencias de interés, el cual cuenta el numero de repeticiones en una posición especifica, en un intervalo de tiempo mediante el uso de un contador . 




























miércoles, 6 de julio de 2016

PRÁCTICA 2: GENERADOR DE SEÑALES CON TARJETA CY8CKIT-059

Objetivo:

Esta práctica consiste en la implementación de un generador de señales con 3 formas de onda a la salida (senoidal, cuadrada y triangular).
La amplitud de dichas señales podrá ser variada mediante un potenciómetro conectado a la tarjeta.

Materiales:

A continuación, se presentan los dispositivos y componentes usados a lo largo de la práctica.
  • Tarjeta PSoC CY8CKIT-059.
  • 3 potenciómetros de 5kΩ.
  • Osciloscopio.
  • Puntas para osciloscopio.
  • Jumpers o cables.
  • Protoboard.
Procedimiento:

Iniciamos entrando a la pestaña TopDesign en la ventana Workspace de nuestro software, esto con el fin de seleccionar los componentes que se usarán a lo largo de la implementación. Los componentes fueron:

  • Waveform DAC (8-bit).
  • PGA.
  • Analog Pin.
  • Logic Low '0'.

A continuación, en la figura 1 se presenta el esquemático  diseñado a partir de los componentes mencionados.

Figura 1. Esquemático de la práctica.
La función del PGA cuenta con una configuración de amplificador no inversor basado en amplificadores operacionales con ganancia programable, entre sus características más importantes están:

  • Alta impedancia de entrada.
  • Amplio ancho de banda.
  • Voltaje de referencia de entrada seleccionable.
Por lo tanto, el PGA se usa cuando la señal de entrada tiene una amplitud insuficiente y lo podemos frente a un comparador o ADC para aumentar la amplitud de estos.

El componente WaveDAC8 ofrece una solución simple y rápido para la generación de forma de onda periódica. Las siguientes características del WaveDAC8 se manejaran en esta práctica:
  • Generación de forma de onda arbitraria y estándar.
  • Predefinir las formas de onda: senoidal, triangular y cuadrado.
En la figura 2 se presenta la configuración default personalizada que nos permite el componente WaveDAC8, esto de acuerdo a nuestros propios requerimientos, ya sea desde el rango de voltaje hasta configurar dos formas de onda en un sólo bloque.

Figura 2. Configuración default personalizada del componente WaveDAC8.

El siguiente paso es la asignación de los pines de entrada y salida (figura 3), esto lo llevamos a cabo dando doble clic en la pestaña "nombredeldiseño.cydwr", ubicada en el Worspace Explorer (parte izquierda del programa).

Figura 3. Asignación de los pines de entrada y salida de la tarjeta.

Una vez finalizado la asignación de los pines, toca el turno de la programación del código para poder adquirir las señales y posteriormente manipularlas. Para iniciar este paso recurrimos al Workspace Explorer y damos doble clic en la sección "main.c". A continuación, se presenta el diagrama de flujo de la sección programable del proyecto (figura 4), así como el código implementado.


Figura 4. Diagrama de flujo de la sección programable.

Código implementado:

#include <project.h>


    
int main()
{
    WaveDAC8_1_Start();
    PGA_1_Start();
  
    WaveDAC8_2_Start();
    PGA_2_Start();
    
    WaveDAC8_3_Start();
    PGA_3_Start();
  
    
    CyGlobalIntEnable; /* Enable global interrupts. */

    /* Place your initialization/startup code here (e.g. MyInst_Start()) */

   
    for(;;)
    {
        /* Place your application code here. */
    }
}

/* [] END OF FILE */



Para finalizar, se presentan tanto la construcción física del circuito (figura 5) y el funcionamiento de éste con su posterior variación de amplitud mediante los potenciómetros (figura 6), en donde se presentan las tres formas de onda de nuestro objetivo de la práctica.


Figura 5. Construcción física del circuito.


Figura 6. Formas de onda adquiridas por el circuito con variaciones en su amplitud.


Referencias

http://www.psoclatinoamerica.com/2015/07/generador-de-senales-wavedac8-psoc-5lp.html









viernes, 1 de julio de 2016

PRÁCTICA: PANTALLA LCD CON LECTURA DE VOLTAJES INDEPENDIENTES


Objetivo

Esta práctica consiste en mostrar el voltaje de entrada de un ADC en una pantalla LCD mediante el PSoC, con el fin de visualizar dos lecturas de dicho voltaje, esto mediante la regulación dos potenciómetros que trabajan de manera independiente y uno más para configurar el brillo de la pantalla LCD.

Materiales

A continuación, se presentan los componentes utilizados para el desarrollo de la práctica

  • Tarjeta PSoc CY8CKIT­059 PSoC 5LP
  • Pantalla LCD de 16x2
  • 3 potenciómetros (entre 10 y 50k)
  • Jumpers o cables
  • Protoboard

Procedimiento

El inicio de esta implementación consiste en entrar a la pestaña Top Design en el workspace de nuestro software, en donde se seleccionan los componentes a usar, en este caso fueron:
  •  Character LCDmp
  •  ADC_DelSig
  •  Analog Pin

En la figura 1 se presenta el esquemático con las creado a partir de los componentes mencionados anteriormente.

Figura 1. Esquemático de la práctica.

Cabe mencionar que la función del ADC radica en convertir una señal analógica que es proporcionada por cada uno de los dos potenciómetros a una señal digital que el LCD pueda leer.

La librería del LCD usado en esta práctica no se encuentra disponible en el software; a continuación, se proporciona dicha librería para su instalación:


Posteriormente, toca el turno de la asignación de los pines de entrada y salida (figura 2), esto lo realizamos dando doble click en la pestaña “nombredenuestrodiseño.cydwr” ubicado en la pestaña Workspace Explorer, ubicada en la parte izquierda del programa.

Figura 2. Asignación de los pines de la tarjeta


Una vez configurado los pines de nuestro dispositivo, esto procedemos a realizar la programación para la lectura e impresión de nuestros datos dando doble clic en la sección “main.c” ubicado en la pestaña Workspace Explorer, el código de programación implementado se presenta en la sección de programación.

PROGRAMACIÓN


En primera instancia, se presenta un diagrama flujo para describir brevemente la programación elaborada (figura 3).

Figura 3, Diagrama de flujo de la sección programable del proyecto.




#include <project.h>
#include <stdio.h>
#include "cyapicallbacks.h"

uint8 flag=0;
   char str[12];
   float volts=0;
   uint32_t resultados[AMux_CHANNELS]={0};

int main()
{
     CyGlobalIntEnable; /* Enable global interrupts. */
    LCD_Start();
    AMux_Start();
    ADC_Start();
    ADC_IRQ_Start();
    AMux_Next();
    ADC_StartConvert();

  

    for(;;)
    {
    if(flag==1)
    {
    ADC_StopConvert();
    resultados[AMux_GetChannel()]=ADC_GetResult32();
   
    LCD_Position(0,0);
    LCD_PrintString("Pot1:");
    LCD_Position(0,5);
    LCD_PrintNumber(0);
    volts=(5.0000000/1048576)*resultados[0];
    sprintf(str,"%.4fV",volts);
    LCD_PrintString(str);
   
    LCD_Position(1,0);
    LCD_PrintString("Pot2:");
     LCD_Position(1,5);
    LCD_PrintNumber(0);
    volts=(5.0000000/1048576)*resultados[1];
    sprintf(str,"%.4fV",volts);
    LCD_PrintString(str);

    AMux_Next();
    flag=0;
    ADC_StartConvert();

    }
    }
}

/* [] END OF FILE */


void ADC_IRQ_Interrupt_InterruptCallback(void)
{
flag=1;
   
return;
}


Por último, presentamos la construcción física del circuito (figura 4) y el funcionamiento correcto de la implementación (figura 5).


Figura 4. Circuito implementado en protoboard.

Figura 5. Funcionamiento del circuito al 100%.




Referencias :http://www.psoclatinoamerica.com/2016/07/adc-delta-sigma-multicanal-2-psoc-5lp.html










lunes, 20 de junio de 2016

Bienvenidos a nuestro sitio, amantes del microcontrolador PSoC 5, aquí podrán encontrar ayuda y orientación para poder llevar acabo algún proyecto donde requieran poner a prueba sus habilidades  y creatividad a la hora de buscar la solución más adecuada con su dispositivo.