Autor Tema: Comedero automatico de peces y termometro  (Leído 4193 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Tempus

  • PIC10
  • *
  • Mensajes: 37
Comedero automatico de peces y termometro
« en: 13 de Febrero de 2009, 16:19:31 »
Hola soy nuevo en el foro y para proyecto de final de curso de DPPE me han mandado hacer un comedero automatico de peces mas termometro y consiste en lo siguiente:
PIc 16f876
LCD (4bits)
lm35
servo motor
motor
MO que tiene que hacer el progrma es  que a una determinado hora se activa primero el servo motor y a el minuto el motor y asi deja caer la comida a el acuario en la pantalla lcd debe a parece la hora actual la temperatura del agua y a la hora k se va a abrir el motor y todo ello debe ser programable estilo a las alarmas de un reloj digital y tambien tendra la opcion de poder accionarse manualmente mediante un pulsador.

Ahora mismo tengo echo el esquema en proteus y me gustaria k me dirias consejo tanto para proteus como para el programa usamos el CCS C.


Gracias de antemano y felicidades por la labor que realizais
« Última modificación: 14 de Febrero de 2009, 21:07:55 por Tempus »

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Comedero automatico de peces y termometro
« Respuesta #1 en: 13 de Febrero de 2009, 16:59:59 »
Hola tempus, bienvenido al foro, también soy de Bolivia, así que doble bienvenida! :-/

Con lo que respecta a tu proyecto, creo que lo mejor que puedes hacer es buscar por partes acá en foro, que de forma independiente seguro que lo encuentras, por ejemplo sobre LCD's, hay un montón acá, el sensor, uno de los más populares, motores DC y servos no faltan, el micro también muy conocido

Te recomiendo, en buena onda y para que sea más útil para ti comiences por buscar, leer, y probar, y cuando tengas una duda más específica sobre código o algún otro dato particular será más fácil ayudarte

Personalmente trabajo con el lenguaje de CCS y con mucho gusto te ayudaría en cuanto tengas algún problema más específico.

Espero no lo tomes a mal, y más bien lo veas por el lado bueno. Recibe un abrazo de mi parte paisano, un saludo
.

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Comedero automatico de peces y termometro
« Respuesta #2 en: 14 de Febrero de 2009, 00:04:20 »
Hola Tempus, de momento coloco lo que te mencioné por privado, para que quizá a alguien mas pueda servirle, aumento algunas cosas para que sea más entendible y lo ordeno mejor.

Veo que falta que definas el canal que leerás:

SET_ADC_CHANNEL(x);  //donde x es el canal, 0 AN0, 1 AN1, etc
delay_us(20);   // retardo de captura de datos, no estoy seguro del nombre, pero es necesario muchas veces
estas dos lineas puedes colocarlas en la inicialización del micro, antes del bucle de trabajo. En caso que uses 2 ó más canales esas dos lineas siempre irán antes de leer el canal

Si solo usarás un pin como analógico no veo para que uses ALL_ANALOG, puedes usar solo AN0, u otra combinación mejor:

setup_adc_ports(AN0);

Quizá puedas usar VREF para que puedas limitar el rango de tensión de lectura y sea más preciso con el LM35 que creo que no varia máximo hasta 2V aproximadamente, de esta manera obtendrás una mejor lectura:

setup_adc_ports(AN0_AN1_VSS_VREF);
También van en las configuraciones del micro mejores detalles de configuraciones lo puedes ver en el mismo archivo .h del pic correspondiente en la carpeta devices donde esta instalado en compilador; o mejor en la hoja de datos del micro.

Vref hace referencia al pin VREF+ del micro, que en tu caso sería RA3 y VSS a VREF- (RA2), en este caso significa que RA2 estará conectado a tierra, y RA3 mediante un divisor resistivo, que es lo más cómodo y fácil (en función a la tensión que el LM35 pueda brindar), determinará el valor máximo que se podrá leer en el pin análogo (AN0 en este caso), cualquier valor superior leído en AN0 a la Tensión de Referencia (en RA3) tendrá un resultado por ejemplo en 8 bits de 255.

Como podrás ver todo ello trabaja en el puerto A, en su mayoría; tu tienes el mismo usado con los pulsadores, creo que sería bueno que muevas los pulsadores a otros pines, o si solo quieres trabajas con un PIN analógico es muy importante que los otros estén como digitales, si usas ese hard y la sentencia all_analog ya hay un conflicto, porque los pulsadores son entradas digitales


También se te olvidó definir el "ancho" en bits del resultado de la conversión, que va en la cabecera del código, después del include del pic:

#device adc=8    => tu variable donde guardas el resultado debe ser de 8bits
ó
#device adc=10  => variable donde guardas el resultado debe ser de 16bit

En la visualización puedes mejor usar dentro las comillas caracteres especiales que borran todo y saltan linea, ejemplo:

printf(lcd_putc,"\fValor leído\nTemp=%f",AD_leido);

lo que dará en el LCD, por ejemplo si AD_leido=20.2

Valor leído
Temp=20.2

\f  limpiar pantalla
\n salto a segunda línea
\b recorre el cursor una posición a la izquierda
\r en LCD2.c no existe a menos que tu le des una función manualmente, modificando la librería, o que este defino en la librería que tienes, personalmente tengo una librería llamada lcd2.c que funciona a 8 bits y no a 4 como se muestra en tu esquemático

Con eso podrás colocar todo lo que necesitas en solo una línea de código, quizá a expensas de algo de uso extra de memoria de programa, que generalmente no afecta a micros relativamente espaciosos en FLASH

Una última cosa en tu esquema de proteus, si es que vas a simular, define también la frecuencia a la que trabajará el micro en sus propiedades, donde le das la dirección del .cof o el .hex

Espero que tengas buenos resultados con las primeras pruebas.

Un saludo paisano, que te vaya muy bien
.

Desconectado Tempus

  • PIC10
  • *
  • Mensajes: 37
Re: Comedero automatico de peces y termometro
« Respuesta #3 en: 14 de Febrero de 2009, 07:09:45 »
Hola cryn gracias por tus consejos ahora encuanto puedo correguire los fallos y lo pondre a simular en proteus con los consejos que me has dado.
Espero que se entendiera mas menos bien lo que quiero hacer por que lo de dibujar  como has observado no es lo mio jejjeje
Tu lo simulastes en el proteus?????
un saludo gracias nuevamente y que tengas  buen dia

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Comedero automatico de peces y termometro
« Respuesta #4 en: 14 de Febrero de 2009, 14:09:54 »
Hola tempus, me dijiste que incluías un archivo en paint y no lo encuentro, solo esta el esquemático para la simulación, el código y el documento en word donde también está el esquemático, pero otra imagen con paint no hay

no lo he simulado todavía porque no tengo tu librería lcd2 que maneja el lcd a 4 bits, yo tengo una librería llamada lcd2.c que maneja el lcd a 8bits, te pediría que la adjuntes también

un saludo
.

Desconectado Tempus

  • PIC10
  • *
  • Mensajes: 37
Re: Comedero automatico de peces y termometro
« Respuesta #5 en: 14 de Febrero de 2009, 21:04:09 »
ya he añadido la libreria lcd y el archivo comprimido en paint k se llama explicacion bueno voy aver si entre hoy y mañana hago algo mas un saludo paisano


 

anything