Electronica gpb
Enviado por SOLUNA1312 • 8 de Junio de 2017 • Documentos de Investigación • 1.075 Palabras (5 Páginas) • 212 Visitas
Instituto Tecnológico Superior de la Región Sierra.[pic 1]
Ingeniería Electromecánica 6to “A”.
Proyecto:
Termostato con pic16f877a
Materia:
Micro controladores
Docente:
Ing. Gabriel Pérez Brindis
Alumno:
Alejandro González Beltrán
Diagrama en proteus
[pic 2]
Aquí se muestra el diagrama del circuito en el que se muestra el LM35 como el sensor de temperatura, el pic16f877a como el corazón del circuito este es el que se encagara de leer la señal asi como de activar otra.
Cuenta con un ULN2003 para controlar los reles y tres leds indicadores que nos darán el siguiente mensaje:
Led AMARI: Este dara la señal para activar el primer rele
Led VERDE: Dara la señal para q se apague el primer rele y encienda el segundo
Led ROJO: solo será para advertencia de que la señal en este caso del lm35 sobrepaso el limite ya establecido en el programa
Contará con una pantalla LCD de 16x2 que nos dirán la temperatura en tiempo real
Diagrama en la tabla fenólica
[pic 3]
Este es el que nos servirá para hacer el circuito impreso de nuestro termostato
Programación en PIC C COMPILER[pic 4]
#include <16F877A.h> // se selecciona el pic a usar
#device ADC = 10
#fuses NOWDT,HS,NOPUT,NOPROTECT,NODEBUG,NOBROWNOUT,NOLVP,NOCPD,NOWRT
#use delay(clock=4000000) // frecuencia del cristal de cuarzo
#define LCD_RW_PIN pin_d1 // las siguientes son los pines con los que
#define LCD_RS_PIN pin_d2 // se comunicara el pic y la pantalla
#define LCD_ENABLE_PIN pin_d3
#define LCD_DATA4 pin_d4
#define LCD_DATA5 pin_d5
#define LCD_DATA6 pin_d6
#define LCD_DATA7 pin_d7
#include
#byte port_a=5
#byte port_b=6
void main()
{
lcd_init();
printf(lcd_putc,"ELECTROMECANICA"); //se muestra el primer mensaje al encender
float Temp;
set_tris_b(0x1f);
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_DIV_32);
set_adc_channel(0);
port_b=0;
while(true)
{ set_adc_channel(0);
delay_us(20);
Temp=read_adc()*(0.48828125); // seria la fórmula para mostrar la temperatura
delay_ms(200);
printf(lcd_putc,"\fTemperatura:\n %f",Temp); // da el mensaje y la temperatura
...