TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: alejo8032 en 02 de Enero de 2007, 20:52:41
-
Hola a todos
Estoy incursionando con el c y me parece excelente, quiero proponerles este proyectito
tiene los siguientes objetivos
- Al pulsar un boton mostrar la temperatura Actual en un display de 7 seg 2 digitos
- Al pulsar un boton incrementar temperatura deseada
- al pulsar un boton decrementar temperatura deseada
- si la temperatura es menor en .5 grados activa un salida
- si es mayor en 0.5 grados desactiva la salida
el circuito incluye un lm35
-
También te lo propondrás tú mismo, ¿no? :shock:
Suerte!!! ;)
-
Hola alejo ! :) Bienvenido al foro !
Buen proyecto. Utilizando el buscador del foro, seguramente encontrarás mucho material para desarrollarlo.
Particularmente yo; le agregaría un dígito más, para leer la temperatura con décimas de grado. Multiplexar tres dígitos no te será complejo.
Y al primer botón, lo usaría para entrar en el modo set (ajustes) y salir de él.
Se vé prometedora la propuesta.
Seguramente, al hacer y publicar las primeras pruebas, van a aparecer amigos que te sumen más "agregados funcionales" y desafíos ( aparte de críticas, obvio :D ) .
Éxitos !
Saludos
Mario
-
Hola Ale :
Mira yo tambien soy novato y hace un tiempo termine un medidor con termocupla y lo publique .
Esta en este link
http://www.todopic.com.ar/foros/index.php?topic=13583.0
Espero que te sea de ayuda
Saludos desde Cordoba Argentina
-
Gracias por tu colaboracion me sera de mucha ayuda, hasta ahora estoy comenzando
a medida que lo haga voy mostrando avances :
-
Hola a todos e avanzado un poco , revise el programa de la termocupla tengo un error decompilacion
itoa(temp,10, tempBCD); me sale como indefinido
sin empargo hice algo pero con la Lcd no es mucho
#include <16f873.h> //pic a utilizar
#device *=16
#device adc=8
#fuses XT,NOWDT,NOPROTECT,NOLVP,PUT,BROWNOUT,NOCPD, NOWRT,NODEBUG //No Debug mode for ICD
#use delay (clock=4000000) //Fosc=4Mhz
#define use_portb_lcd TRUE
#include <vs_saa1064M.c>
#include <lcd.c> //libreria para lcd
#byte sale_c = 7
#use fast_io(C)
///PROGRAMA
void main(void)
{
char decimal, unidad, decena, centena,t1,t2,t3,t4,lm35;
//setup_oscillator(OSC_4MHZ); //configuracion del oscilador interno a 4MHz
set_tris_c(0b00000011); // Puerta A se configura como entrada
t2 = 25;
lcd_init( ); //inicializamos lcd
lcd_putc(" Medidor de \n temperatura");
delay_ms(1000);
lcd_putc("\f");
sale_c = 0;
setup_adc_ports(ALL_ANALOG);
setup_adc(ADC_CLOCK_INTERNAL);
while(1)
{
set_adc_channel(0);//seteo y lectura de termocupla 1
delay_ms(100);
t1=read_adc();
lcd_putc(" Controlnet ");
lcd_gotoxy(2,2);
printf(lcd_putc,"t1:%u ",t1);
lcd_gotoxy(9,2);
printf(lcd_putc,"t2:%d ",t2);
if(input(PIN_C0))
{
delay_ms(100);
t2++;
if(t2>30)
t2=25;
}
if(input(PIN_C1))
{
delay_ms(100);
t2--;
if(t2<20)
t2=25;
}
if(t1>t2)
{
output_high(PIN_C2);
}
else
output_low(PIN_C2);
}
}