Autor Tema: Ayuda Como activar PIN_C0 en minutos.  (Leído 1091 veces)

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

Desconectado Dave

  • PIC10
  • *
  • Mensajes: 4
Ayuda Como activar PIN_C0 en minutos.
« en: 01 de Diciembre de 2015, 13:17:15 »
Hice este programa Pero, so se como activar por un tiempo en minutos,
tengo 4 switch  el primero es fresa, lechuga, tomate y manual.
entonces quiero que se active la fresa= Tiempo Riego 5 minutos y tiempo Descanso 45 minutos asi durante todo un ciclo, por que asi cuando se quede enclavado el switch. y asi con los demás con lechuga y tomate.
adjunto el programa hecho en Pic C Complier Utilizo el PIC18f4550.
espero sus respuestas.
gracias.

#include <HIDROPONIATIMER.h>
#include <lcd.c>

#define LCD_ENABLE_PIN  PIN_D0
#define LCD_RS_PIN      PIN_D1
#define LCD_RW_PIN      PIN_D2
#define LCD_DATA4       PIN_D4
#define LCD_DATA5       PIN_D5
#define LCD_DATA6       PIN_D6
#define LCD_DATA7       PIN_D7


#use standard_io(A)
#use standard_io(B)
#use standard_io(C)
#use standard_io(D)

void main(){
           
            port_B_pullups(TRUE);
           
            long TAF,TBF,TAL,TBL,TAT,TBT,TMR,TMD,Min;      //variable largas (long) tiempo de minutos.
               
           
            lcd_init();                                //inicializador de lcd.
            lcd_gotoxy(1,1);                           //cordenadas donde aparecera el mensaje.
            printf(lcd_putc,"     SISTEMA    ");          //impresion en la pantalla LCD (aparece msj)
            lcd_gotoxy(1,2);                               //cordenadas donde aparecera el mensaje.
            printf(lcd_putc,"   HIDROPONICO   ");
            delay_ms(2000);
           
            Min=60000;        // Vaiable qe minutos
            TMR=5;            //Tiempo Manual  ON
            TMD=5;            //Tiempo Manual  OFF         //variables designandole tiempo
            TAF=1;            //Tiempo Fresa   ON
            TBF=2;           //Tiempo Fresa   OFF
            TAL=2;           //Tiempo Lechuga ON
            TBL=4;           //Tiempo Lechuga OFF
            TAT=3;            //Tiempo Tomate  ON
            TBT=5;           //Tiempo Tomate  OFF

     
 while(TRUE){
               
                  lcd_gotoxy(1,1);                     // Posicionar UN mesaje por coordenadas  //***
                  Printf(lcd_putc,"   Bienvenido   ");   // Imprime mensaje                     //***
                  lcd_gotoxy(1,2);                                                              //***estas igual
                  printf(lcd_putc, "      MENU      ");                                          //***
                  delay_ms(200);     
                 
          while((input(PIN_B0)==0)&&(input(PIN_B1)==1)&&(input(PIN_B2)==1)){                  //Modo fresa

                                 lcd_gotoxy(1,1);
                                 printf(lcd_putc,"     Fresa     ");
                                 lcd_gotoxy(1,2);
                                 printf(lcd_putc,"   Riego=%lu Min      ",TAF);
                                 delay_ms(10);
                                 output_high(PIN_C0);
                                 delay_ms(TAF*Min);                                        //valor de la variable
                                 output_low(PIN_C0);
                                 delay_ms(TBF*Min);
          }

         While((input(PIN_B0)==1)&&(input(PIN_B1)==0)&&(input(PIN_B2)==1)){                  //Modo Lechuga
                 
                                 lcd_gotoxy(1,1);
                                 printf(lcd_putc,"     Lechuga    ");
                                 lcd_gotoxy(1,2);
                                 printf(lcd_putc,"   Riego=%lu Min    ",TAL);
                                 output_high(PIN_C0);
                                 delay_ms(TAL*Min);
                                 output_low(PIN_C0);
                                 delay_ms(TBL*Min);

         }
         While((input(PIN_B0)==1)&&(input(PIN_B1)==1)&&(input(PIN_B2)==0)){                     //Modo Tomate

                                 lcd_gotoxy(1,1);
                                 printf(lcd_putc,"     Tomate    ");
                                 lcd_gotoxy(1,2);
                                 printf(lcd_putc,"   Riego=%lu Min    ",TAT);   // %lu    muestra el valor de la variable dada.
                                 output_high(PIN_C0);
                                 delay_ms(TAT*Min);
                                 output_low(PIN_C0);
                                 delay_ms(TBT*Min);
         }
         while((input(PIN_B0)==1)&&(input(PIN_B1)==1)&&(input(PIN_B2)==1)&&(input(PIN_B3)==0)){        //Modo Manual
                             
                                 
                                 lcd_gotoxy(1,1);
                                 printf(lcd_putc,"Riego=%lu Min ",TMR);
                                 lcd_gotoxy(1,2);
                                 printf(lcd_putc,"Descanso=%lu Min ",TMD);
                                 
         
               while(input(PIN_B4)==0){                                           // lineas para los botones Incrementar  Riego
               
                                    TMR=TMR+5;
                                    lcd_gotoxy(1,1);
                                    printf(lcd_putc,"Riego=%lu Min  ",TMR);
                                     delay_ms(200);
         }
         while(input(PIN_B5)==0){                                                // lineas para los botones decrementar  Riego
         
                                    TMR=TMR-5;
                                    lcd_gotoxy(1,1);
                                    printf(lcd_putc,"Riego=%lu Min  ",TMR);
                                    delay_ms(200);
         
         }
         while(input(PIN_B6)==0){                                                // lineas para los botones Incrementar  descanso
         
                                    TMD=TMD+5;
                                    lcd_gotoxy(1,2);
                                    printf(lcd_putc,"Descanso=%lu Min ",TMD);
                                    delay_ms(200);
         }
         while(input(PIN_B7)==0){                                                // lineas para los botones decremetar  descanso
         
                                    TMD=TMD-5;
                                    lcd_gotoxy(1,2);
                                    printf(lcd_putc,"Descanso=%lu Min ",TMD);
                                    delay_ms(200);
         }
         
         while((input(PIN_B0)==1)&&(input(PIN_B1)==1)&&(input(PIN_B2)==1)&&(input(PIN_B3)==1)){                     
                                    output_high(PIN_C0);
                                    delay_ms(TMR*Min);
                                    output_low(PIN_C0);
                                    delay_ms(TMD*Min);
         }
     
   }
}
}

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Ayuda Como activar PIN_C0 en minutos.
« Respuesta #1 en: 01 de Diciembre de 2015, 20:05:56 »
Te respondo en el otro tema que tenias creado, no hace falta preguntar en 2 lados