Ayuda con un proyecto para Controlar un LCD con un PIC 16F628a

Primero que nada felicito a esta pag. por su contenido, soy nuevo en el foro y en el mundo
de los PIC.

Estoy haciendo un Proyecto (dispensador de alimento para perros) que lleva un PIC16F628a el cual controla un LCD 2*16, ya estube estudiando en esta semana la programacion del PIC con el Mikro Basic Pro y acavo de ver ejemplos de como usar las librerias del LCD.

Ahora.
El Proyecto funciona asi:
Al ensender el dispensador debe de ensender el LCD con un mensaje (txt1) en la Primera linea y en la segunda un segundo texto (tx2), despues debe de borrarse por 2seg. y luego en la primera linea aparecer el txt2 que antes habia aparecido y en la segunda linea debe aparecer algo asi ( CADA 00:00 h/m ).

Por medio de 4 botones modificar la segunda linea mmmmmm :unsure:
(1 boton = mover el cursor hacia la izq.)
(2 boton = mover el cursor hacia la der.)
(3 boton = aumentar el valor del 0 (aumentando 1 por cada vez que lo precione))
(4 boton = disminuir el valor del 0 (disminuir 1 por cada vez que lo precione))

Lo anterior es para poder controlar la hra para darle de comer a la mascota para que cada cierto tiempo programado se active un motor que arroje la comida osea.
CADA 02:30 h/m (este valor fue programado con lo anterior)​
y otro boton (PLAY/STOP) es el que corre el tiempo hasta llegar a 00:00 y activa el motor por
cierto tiempo y automaticamente vuelva el mismo valor predeterminado. (hasta que no le pongamos STOP y modifiquemos el tiempo.)

Aparte tiene un cto. electrico que es un detector de precensia, cuando no haya comida prenda un led y me aparesca un mensaje en la primera linea Txt3(Falta_de Comida) hasta que no se llene el recipiente, no se apagara el led y vuelve a aparecer el txt1 en la primera linea.

Espero haberme explicado bien :confused:

Por eso necesito ayuda con el codigo fuente que se me esta complicando al no manejar el 100% la programacion de PIC.

Ahorita les pongo el codigo que llevo apenas que es donde estoy atorado ya que no se como hacer lo de modificar la segunda linea del LCD con botones (CADA 00:00 h/m)

HELP!!!!!:cry: PLZ con sugerencias, comentarios, experiencias, codigos, tutos, etc.

Gracias por su ayuda por adelantado :)

program alimentador_de_mascota

'***programa para PIC16F628a
'***LCD 2*16
'***Dispensador de Alimento***

'conexion del LCD
dim LCD_RS as sbit at RB4_bit
LCD_EN as sbit at RB5_bit
LCD_D7 as sbit at RB3_bit
LCD_D6 as sbit at RB2_bit
LCD_D5 as sbit at RB1_bit
LCD_D4 as sbit at RB0_bit

dim LCD_RS_Direction as sbit at TRISB4_bit
LCD_EN_Direction as sbit at TRISB5_bit
LCD_D7_Direction as sbit at TRISB3_bit
LCD_D6_Direction as sbit at TRISB2_bit
LCD_D5_Direction as sbit at TRISB1_bit
LCD_D4_Direction as sbit at TRISB0_bit
'Termina la conexion del LCD

dim txt1 as char [16]
txt2 as char [9]
txt3 as char [16]


main:
CMCON=7
TRISB=0
TRISA=%00001111
PORTB=0xFF
PORTA=0
TRISB=0xFF

txt1= "DISPENSADOR_2010"
txt2= "STARK_IND"
txt3= "FALTA_DE_COMIDA."

Lcd_init()
Lcd_Cmd(_LCD_CLEAR)
Lcd_Cmd(_LCD_CURSOR_OFF)
Lcd_Out(1,4, txt2)
Lcd_out(1,1, txt1)
delay_ms(2000)
Lcd_Cmd(_LCD_CLEAR)

********************************************************
AHORA NO SE COMO SEGUIRLE POR QUE NO SE COMO IMPRIMIR EL VALOR DE UNA VARIABLE EN EL LCD
SI A=5 (EN EL LCD DIGA (CADA 00:05 H/S)
SI B=3 (EN EL LCD DIGA (CADA 00:35 H/S)
Y QUE EL BOTON (PLAY/STOP) ACTIVE SU DESENSO PARA ACTIVAR UN MOTOR Y DESPUES DE CIERTO TIEMPO VUELVA A ESTAR EN (CADA 00:35 H/S), HASTA QUE NO VUELVA A PROGRAMARLO PONIENDO STOP Y MODIFICANDO LAS VARIABLES CON LOS OTROS BOTONES.
************************************************************
SE QUE ES MUY CONFUSO Y ES MUCHO PEDIR PERO NECESITO QUE ME AYUDEN Y ORIENTEN PARA PODER FINALIZAR MI PROYECTO.

GRACIAS DE NUEVO POR SU AYUDA.

SEGUIRE PENSANDO COMO HACERLE.
 
Última edición:
pucha yo necesito algo parecido,pero no se como asociar el boton con el lcd mmm necesito hacer un menu con 3 botones,lo malos es que no hay mucha info en la web.
 
La idea de poder controlar el ingreso o la modificacion de varios datos o variables mediante un simple menu es como el clasico ejemplo del reloj, en el que con dos o tres botones puedes modificar minutos, horas, dia, mes. etc. Creo que deben buscar por ese lado.
 
Última edición:
yo utilizo normalmente PSI coon su compilador basic.
Para imrpimir en lcd el valor de una variable mediante ese basic seria:

dim a as byte
a=32
lcdcmdout lcdline1home 'Accedemos a la primera posicion de la primera linea
lcdout #a 'imprimimos en lcd el valor textual de ese byte osea imprimiremos "32"
lcdcmdout lcdline2home 'Accedemos a la primera posicion de la segunda linea
lcdout a 'Imprimiremos en lcd le valor real de ese byte osea imprimiremos un espacio " " (chr$(32))

para actualizar el valor puedes hacer
a=5
x=9
lcdcmdout lcdline2pos(x)
lcdcmdout #a

esto escribiria el caracter "5" en la posicion 9 de la segunda linea substituyendo al caracter que habia en dicha posicion

El basic que utilizas no lo he usado nunca pero supongo que debe dar la posibilidad de hacerlo similar
 
Última edición:
Atrás
Arriba