[SOLUCIONADO] Como incrementar el tiempo


provisionalmente el tiempo  tiene 3 minutos pero son fijos (180 segundos).  como podría añadir un pulsador que  incremente el tiempo de 5 en 5 minutos hasta 45´' ó 60' para poder elegir la  duración.
saludos.

adjunto codigo:

code: [select]
#include "timerone.h"
int timeline=180;// tiempo juego 3 minutos provisional
int homescore=0;
int awayscore=0;
bool paused=0;//estado de start/stop

//conectar pins del 2 al 7 pulsadores
//el otro pin de los pulsadores gnd

// funcion de los pulsadores
//  2 reset general
//  3 start/stop
//  4 +1 local
//  5 -1 local
//  6 +1 visitante
//  7 -1 visitante


void setup()
{
  int n;
  for (n=2;n<8;n++)
    pinmode(n,input_pullup);
  serial.begin(9600);
  timer1.initialize();
  timer1.attachinterrupt(updatetimeline);
}

//establecido por la rutina de interrupción para señalar la necesidad de actualizar la pantalla
bool timeupdated=true;
void loop()
{
int n;
  bool debounce=false;

// ver como están las entradas
  for (n=2;n<8;n++)
    if(digitalread(n)==low)
    {
      debounce=true;
      switch(n)
      {
      case 2://reset
        timeline=180;// tiempo 3 minutos provisional
        homescore=0;
        awayscore=0;
        paused=true;
        break;

      case 3:// start/stop
        paused=!paused;
        break;

      case 4:// +1 local
        homescore++;
        break;
      case 5://-1 local
        if(homescore>0)
          homescore--;
        break;
      case 6:// +1 visitante
        awayscore++;
        break;
      case 7:// -1 visitante
        if(awayscore>0)
          awayscore--;
        break;    
      }
    }
  //ahora actualizar la pantalla (pero sólo si updatetime ha ejecutado desde la última vez)
  if(timeupdated)
    updatedisplay();
  if(debounce)
    delay(400);
}

void updatedisplay()
{
  char timestring[6];
  sprintf(timestring,"%d:%d",timeline/60,timeline%60);
  serial.println(timestring);
  char scoreline[20];
  sprintf(scoreline,"local %d:%d visitante",homescore,awayscore);
  serial.println(scoreline);
  timeupdated=false;
}

void updatetimeline()
{
  if(!paused)
    timeline--;
  timeupdated=true;

}

bueno como no veo en uso el pin 8, usaré ese para tu respuesta

code: [select]
case 8: // incremento timeline

        timeline += 5*60
        break;

[/code]

haz corresponder este case con un switch


Arduino Forum > International > Español > Software (Moderators: surbyte, Hector_A) > [SOLUCIONADO] Como incrementar el tiempo


arduino

Comments