TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: leon-01 en 05 de Marzo de 2008, 22:08:27
-
hey hola.
soy nuevo. tengo que hacer unproyecto en donde se controle la temperatura de un estanque de agua con un lm35
ya tengo el diagrama de control. solo quiero saber de que manera puedo conectar un lcd para visualizar la temperatura en tiempo real.
si aiguien me puede ayudar se lo agradecere.
saludos.
-
Este es un simple programa que lee un LM35 y con eso controla el pwm de un motor
#include "16f877a.h"
#device adc=8
#fuses HS, NOWDT, NOPUT, NOBROWNOUT, NOLVP, NOPROTECT
#use delay(clock = 20000000)
#use standard_io (A)
#use standard_io (B)
#use standard_io (C)
#use standard_io (D)
#use standard_io (E)
/*
Definición de pines:
AO: INPUT ANALOG
A3: VREF
B4: MOTOR ENABLED
C2: PWM OUTPUT
D0: EN LCD
D1: RS LCD
D2: RW LCD
D4: D4 LCD
D5: D5 LCD
D6: D6 LCD
D7: D7 LCD
*/
#include "lcd.c"
void main()
{
int analogico;
lcd_init(); //Inicializamos el LCD
setup_ccp1(CCP_PWM); //Configuramos CCP1 como PWM
/*
El ciclo de tiempo se calcula como: (1 / clock) * 4 * t2div * (periodo + 1).
En este caso: (1/20000000) * 4 * 16 * 128 = 409.6 us o 2.441 Khz.
*/
setup_timer_2(T2_DIV_BY_16, 127, 1); //Configuramos el timer 2 para 2.441 Khz
setup_port_a(AN0_AN1_VSS_VREF); //Seteamos el puerto analógico
setup_adc(adc_clock_internal);
set_adc_channel(0);
lcd_gotoxy(1, 1);
lcd_putc("Frec: 2.441 Khz"); //Mostramos la frecuencia en el LCD
lcd_gotoxy(1, 2);
lcd_putc("Temp:"); //Mostramos "Temp:" en el LCD
while(TRUE)
{
delay_ms(1000);
analogico = read_adc(); //Leemos la temperatura
lcd_gotoxy(6, 2);
lcd_putc(" ");
lcd_gotoxy(6, 2);
printf(lcd_putc," %d ºC", analogico); //Mostramos el valor de la temperatura en el LCD
if(analogico > 18)
output_high(pin_b4); //Habilitamos el PWM
else
output_low(pin_b4); //Deshabilitamos el PWM
/*
El tiempo en que el pulso esta en alto durante el ciclo
esta determinado por: analogico * 4 * (1 / clock) * t2div.
*/
set_pwm1_duty(analogico); //Seteamos el valor del PWM
}
}
Te adjunto la simulacion en proteus. y te aconsejo que leas la reglas del foro porque sino te van a retar.
Saludos
-
gracias
-
cordial saludo,
tienes algun software en assembler para control de temperatura con un sensor de temperatura resistivo con coeficiente negativo (NTC). Para controla temperatura de 3°c a 15°c. de antemano gracias