Visita mi canal de youtube

domingo, 28 de mayo de 2017

Medición de temperatura de termistor NTC con pic16f877a

Resumen:
En esta práctica se realiza una medición de un termistor NTC y se visualiza en una LCD.


Componentes: cell, lm016l, ntsa0wb203, pic16f877a, res.


Para informacion de la descarga de los archivos y los software escribir a este correo: ckoloti1@gmail.com

Practica con zumbador con pic16r877a

Resumen:
En esta practica se realiza una melodía por medio de un zumbador.


Componentes: bc548, button, pic16f877a, res, sounder.



Para informacion de la descarga de los archivos y los software escribir a este correo: ckoloti1@gmail.com




inversor de giro de motor dc con transistor con pic16f877a

Resumen:
En esta practica se controla el sentido de giro de un motor paso a paso bipolar, por medio de transistores.


Componentes: 2n3904, button, motor dc, pic16f877, res.


Para informacion de la descarga de los archivos y los software escribir a este correo: ckoloti1@gmail.com

Contador con Pic16f877a

Resumen:
En esta practica se realiza un conteo numeros ascendetes y descendetes y se visualiza en una pantalla LCD.


Componentes: button, lm016l, pic16f877a, res.





DESCARGAR SIMULACION DE ISIS PROTEUS:

DESCARGA PROGRAMACION DE CCS PIC C COMPILER

PARA DESCARGAR PROGRAMA EL DE ISIS PROTEUS Y CCS PIC C COMPILER 















Medicion de temperatura con el Lm35 y Pic16f877a

Resumen:
En esta practica se controla un sensor por medio de un pic, y la medida de temperatura se visualiza en una LCD.


Componentes: lm016l, pic16f877a, pot-hg, lm35.


DESCARGAR SIMULACION DE ISIS PROTEUS:

DESCARGA PROGRAMACION DE CCS PIC C COMPILER

PARA DESCARGAR PROGRAMA EL DE ISIS PROTEUS Y CCS PIC C COMPILER 

Indicador de nivel de un tanque con pic16f877a

Resumen:
Esta practica simula la indicación del nivel de un tanque mediante una pantalla LCD y cuando se energiza el sensor de nivel alto prende un led.


Componentes: Pic16f877a,lm016l ,l ed, res, logicstate.



Para informacion de la descarga de los archivos y los software escribir a este correo: ckoloti1@gmail.com









Guardar y leer datos en memoria eeprom con pic16f877a

Resumen:
Guardar y leer datos en las 10 primeras posiciones de memoria de una EEPROM I2C. Representar los valores escritos y leidos en un display LCD.


Componentes: Pic16f877a,M24512,res, lm016l.





Para informacion de la descarga de los archivos y los software escribir a este correo: ckoloti1@gmail.com







Comunicacion serial con dos PIC16f877a

Resumen:

Visualizar con un LCD los datos enviados y los datos recibidos; la recepcion del dato deberaser por interrupcion del USART.


Componentes: PIC16f877a, LM016L.



Transmision de datos:
putc (cdata)
putchar (cdata)
cdata es un caracter de 8 bits. Esta funcion envia un caracter mediantela patilla XMIT. La directiva #USE RS232 debe situarse siempre antes de utilizar esta funcion.
puts(string)

string: cadena de caracteres constante o matriz de caracteres terminada con un 0.La funcion puts() manda los caracteres de la cadena, uno a uno, a traves del bus RS-232 utlizando la funcion PUTC(); detras de la cadena envia un RETURN (13) y un retorno de carro(10).

printf (fname,cstring,values...)

cstring: es una cadena de caracteres (constante) o matriz o matriz de caracteres terminadacon un 0.

fname: las funciones a utilizar para escribir la cadena indicada; por defecto se utiliza la funcion

PUTC(), que permite escribir en el bus RS-232.

values: valores a incluir en la cadena separados por comas; se debe indicar %nt. El formato es %nt, donde n es opcional y puede ser:

           1-9           para especificar cuantos caracteres deben ser especificados.
            01-09      para indicar la cantidad de ceros a la izquierda;
           1.1-9.9      para coma flotante.

t puede indicar:



Repcion de datos:

value=getc()
value=getch()
value=getchar()

value es un caracter de 8 bits. Espera recibir un caracter por la línea RS-232 y devuelve su valor. En los dispositivos con USART interno, se pueden almacenar hasta tres caracteres; para evitar esperas se puede usarla funcion KBHIT().
valor= kbhit()
valor es 0(false) si GETC() debe esperar a que llegue un caracter; 1 (TRUE) si ya hay un carácter listo para ser leido por la funcion GETC().

Para informacion de la descarga de los archivos y los software escribir a este correo: ckoloti1@gmail.com














Menu de 3 funciones con pic16f877a

Resumen:
Realizar un menú de control mediante un pulsador.


Componentes: Pic16f877a,led,button,lm016l.




Para informacion de la descarga de los archivos y los software escribir a este correo: ckoloti1@gmail.com








Controlador PID para horno con pic16f877a


Resumen: esta practica trata de regular la temperatura de un horno por medio del algoritmo PID.
Componentes: pic16f877a,irl1004, oven , res y cell.


Uno de los controladores mas comunes que se utilizan en el control de temperatura es el PID (Proporcional-Integral-Derivada), sin entrar en teoria de control, se puede indicar que un controlador PID responde a la siguiente ecuacion:


donde e(t) es el error de la señal y u(t) es la entrada de control del proceso Kp esla ganancia proporcional, Ti es la constante de tiempo integral y Td es la constante de tiempo derivada.

En el dominio s, el controlador PID se puede escribir:

Un controlador PID tiene tres parametros (kp,Ti,Td) los cuales interactuan uno con el otro y su ajuste para obtener el mejor control puede ser muy complicado. Ziegler/ Nichols sugirieron valores para los parametros del control PID basados en analisis de lazo abierto y lazo cerrado del proceso a controlar. En lazoabierto, muchos procesos pueden definirse segun la siguiente funcion de transferencia:


donde los coeficientes k0,T0 y y0, se obtienen de la respuesta del sistema en lazo abiertoa una entrada escalon. Se parte del sistema estabilizado en y(t)=yo para u(t) = uo, se aplica una entrada escalon de uo a u1 (el salto debe estar entre un 10 y un 20% del valor nominal) y se registrala respuesta de la salida hasta que se estabilice en el nuevo punto de operacion.



Los parámetro se pueden obtener de esta respuesta:


Segun Ziegler/Nichols, las relaciones de estos coeficientes con los parametros del controlador son:



La realización de un controlador PID discreto viene dado por la transformada z:



También:

Donde:



Existen distintas posibilidades de la realizacion practica de un controlador PID; una de las mas habituales es la realización en paralelo




El algoritmo utilizado para programar el PIC se muestra en la figura de abajo, el muestreo debe ser mucho menor que el tiempo deestablecimiento del sistema en lazo abierto. En el modeloZiegler/Nichols se toma un valor T<To/4 (tambien puedeutilizarse T< Yo/10).


Un problema asociado a este tipo de diseño es el llamato "integral windup",el cual puede provocar largos periodos a este tipo de sobreimpulsos (overshoot),motivados por los valores excesivos que alcanza la señal de control debido a la acumulacionen el integrador. Para evitar este problema se suele limitar la señal de control entre unvalor maximo y otro minimo, impidiendo que el integrador actue cuando se superan esos limites.
                                                       
                                                         

                                     Figura. Algoritmo de programación del PID.

En el ejemplo, el control se realiza sobre un horno con una resistencia calefactora. Se actua sobre dicha resistencia mediante una señal PWM generada en funcion del control PID. Para facilitar la simulacionse alimenta la resistencia con una fuente de corriente continua de 12V y se modifica su potencia de calentamiento (editar el componente con el boton derecho) a 120W.


Dado que la corriente maxima es de 10A se ha utilizado un MOSFET de potencia, el IRL1004.

Como sensor de temperatura se puede utilizar cualquier dispositivoNTC, RTD, termopares, etc; pero el OVEN tiene un terminal que indicala temperatura del horno en grados Celsius. Sera este terminal el que utilizepara introducir al PIC la temperatura del horno; dado que la temperatura esta medidadirectamente en grado Celsius es conveniente utilizar (para este ejemplo) un divisorpor 100 que permita obtener el valor en milivoltios de la temperatura (25ºC seran 250mV).



La temperatura a alcanzar (o set point) se podria introducir por teclado(y LCD) pero, para simplificar, se establece directamente en el programa(se deja al lector modificar dicho programa para poder variar la temperatura de set point).La temperatura inicial se puede modificar en el menu de edicicon del componente OVEN.

El resto de caracteristicas a amodificar en el componente OVEN son:
·        
  •       Temperatura coefficiente (V/ºC) ; de una idea de la temperatura que alcanzara el horno segun la tension aplicada. Valor: 1V/ºC.

  • ·         Oven time Constant (sec): es la constante de tiempo del horno. Para evitar una larga simulacionse ajusta a 10 segundos.

  • ·         Heater time constant (sec): es la costante de tiempo del calefactor. Para evitar una larga simulacionse ajusta a 1 segundo. 

  • ·         Thermal resistance to ambient (ºC/W): resistencia termica horno-ambiente. Se ajusta al mismo valorque el dado por defecto , 0.7.




     

Para determinar los parametros (Ko,To y Yo) del control PID basados en el analisis de lazo abierto segun Ziegler/Nichols, se realiza un análisis transitorio del horno con una entrada escalon de 0 a 2V (10% a 20% del valor nominal).


Para trazar la grafica se utiliza la simulation graphs en el ISIS; el tipo interactive. En el comando GRAPH/ADD TRACE se añade la traza de la sonda de tension colocada en la salida de temperatura del horno. Al realizar la simulacion temporal de la forma habitual (o con la barra espaciadora) se lanza tambien la simulacion grafica y durante el tiempo fijado en la grafica (editando sus caracteristicas), el valor de la sonda se reflejara en dicha grafica (se deja abierto el interruptor un tiempo y despues se cierra para provocar el escalon de entrada). Realizando con una pulsacion en la barra de titulo de la grafica se puede ampliar y utilizar un cursor para realizar las medidas: tambien se puede exportar la grafica a un fichero.
                                    
                   


De la recta de maxina pendiente se deducen los parametros ko, To y Yo definidospara el analisis en lazo abierto de Ziegler/Nichols.
         



Los parametro del controlador discreto se calculan en base al tiempo Tque segun Ziegler/Nichols es de 0.1s por ser menor de T<To/4.





La respuesta del sistema se muesta en la figura de abajo,si se reduce el tiempo de muestra a 1ms se reduce el sobreimpulso.






Para informacion de la descarga de los archivos y los software escribir a este correo: ckoloti1@gmail.com












Como medir el ancho de pulso con el modulo CCP con pic16f877a

Resumen:
Se utiliza el modo captura de ccp, configurandolo para que detecte el flanco de subida o bajada del pulso a medir. Cada vez que se produzca una dteccion de flanco, el valor del TMR1 pasara al registro del modulo CCP.

Componentes: lm016l, pic16f877a, oscillocope,
El compilador C suministra una serie de funciones para el manejodel modulo ccp.
Configuracion del modulo ccpx:

setup_ccpx(modo);


modo hace referencia a los bits ccpxm3:ccpxm0 del registro ccpxcon

                             Figura. Modos de sutup_ccpx(MODO).


Los valores para comparar se fijan en los registros CCPRx.

En el compilador C, estos registros estan definidos en el fichero include, por ejemplo en el 16f877a.h.

deficinion del ciclo de trabajo para PWM:

set_pwmx_duty(valor):

valor: dato de 8 o 16bis que determina el ciclo de trabajo. Este valor,junto con el valor del preescaler del TMR2, determina el valor del ciclo de trabajo. En la configuracion del TIMER2, el postcaler debe valer 1.







Para informacion de la descarga de los archivos y los software escribir a este correo: ckoloti1@gmail.com









Barometro/Altimetro con Pic16f877a

Resumen:
   Realizar un barómetro/altímetro que mida en Kpa, Psi, Atm o mts mediante su selección por un pulsador.

Compenetes: Pic16f877a,Mpx4115, ntsa0wb203,butto,cap y lm016l
El sensor de presion mpx4115 de 15 a 115 kpa (2.2 to 16.7 psi) con una tension de salida de 0.2 a 4.8v. la funcion de transferencia se muestra en la figura de abajo, la ecuacion de la tension de salida es:


Vout = Vs * (0.009*P-0.095)± (ErrorPresion*FactorTmp*0.009Vs)


El error de presion y el factor de temperatura vienen definidos por el fabricante. El error de presion se situa en ± 1.5 y el factor de temperatura varia entre 1 y 3 según la temperatura. Este factor hace que sea necesario medir la temperatura de trabajo y, por ello, se utilizara una NTC.


                                  Figura. Error de presión y factor de temperatura.



La ecuacion para calcular la presion con una Vs de 5v y un error de presion de ±1.5 es de:





Una vez calculada la presion en Kpa se relaciona con Psi y Atm:

1Kpa = 0.0098692 Atm.

1Kpa = 0.1450377 Psi.


La altitud en metros se puede calcular segun la ecuacion:
                             


                                 

                      Figura. Simulacion en Proteus.


Para informacion de la descarga de los archivos y los software escribir a este correo: ckoloti1@gmail.com











Cerradura electronica con Pic16f877a

Se dispone de los siguientes componentes: pic16f877a, l0m16l,keypad, transistor bd135, rele, led.

Resumen:
Esta practica trata de un circuito de simulación de una cerradura electrónica con microcontroladores pic, en esta practica se presión una clave para desactivar un rele que simularía abriendo una puerta.

Teclado (keypad 3x4)

Las entradas a través de un pulsador son muy habituales en los sistemas con microcontroladores paratrabajar con una mayor informacion o informacion alfanumerica.Por ejemplo, se utilizan los teclados matriciales de 1x4,3x4 o 4x4


El compilador de c incluye el drive kbd.c para manejar el teclado
(3x4). Las funciones que incorporan son las siguientes:

kbd_init()
inicializa el sistema, debe ser la primera funcion en el programa

kbd_get()
devuelve el valor de la tecla pulsada en funcion de la tabla que
tien programada



Figura. Simulacion de la ceradura electronica en ISIS.


Para informacion de la descarga de los archivos y los software escribir a este correo: ckoloti1@gmail.com