Ir ao conteúdo
  • Cadastre-se

Edson Rodio

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

posts postados por Edson Rodio

  1. olá, preciso de ajuda para modificar este codigo, adicionar tempo nas linhas 2 e 3 do lcd 20x4. o cronômetro roda na linha zero, quando eu aperto o botão de pausa e imprime o valor na linha 1, preciso mudar para quando eu pressionar novamente, imprimir o novo valor na linha 1, e enviar o valor da linha 1 para 2 , e quando pressiono o botão novamente, imprime novo valor na linha 1 enviando valor da linha 1 para 2, e 2 para linha 3. sempre salvando novo valor na linha 1 envia os valores salvos para baixo. Eu ainda não entendo bem de programação, se alguém puder ajudar eu agradeço

    #include <Wire.h>
    #include <LiquidCrystal_I2C.h>
    
    LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);//endereço I2c do LCD
    
    //declaração das variáveis
    int horas = 0;
    int minutos = 0;
    int segundos = 0;
    int decimas = 0;
    long milisegundos = 0;
    int inicio = 10;
    int pausa = 9;
    
    void setup(){
      Serial.begin(9600);
      pinMode(inicio, INPUT);
      digitalWrite(inicio, LOW);
      pinMode(pausa, INPUT);
      digitalWrite(pausa, LOW);
      lcd.begin(20,4);//16x2
      while(digitalRead(pausa) == LOW){
      lcd.setCursor(0,0);
      lcd.print("00:00:00:0");
     }
    }
    void loop(){
      //botao de início 
      if(digitalRead(inicio) == HIGH){ //se o pino ler nível alto, zera as variáveis
        horas = 0;
        minutos = 0;
        segundos = 0;
        decimas = 0;
        lcd.clear();
      }
      //botão Pause/Play 
      if(digitalRead(pausa) == HIGH){//rotina de pausa e exibição da pausa
        delay(200);
        //while(digitalRead(pausa) == LOW);
        lcd.setCursor(0,1);
       if(horas < 10){ lcd.print("0");}//se as horas forem menor que 10, acrescenta um 0 na frente
        lcd.print(horas);
        lcd.print(":");
       if(minutos < 10){ lcd.print("0");}//se os minutos forem menor que 10, acrescenta um 0 na frente
        lcd.print(minutos);
        lcd.print(":");
       if(segundos < 10){ lcd.print("0");}//se os segundos forem menor que 10, acrescenta um 0 na frente 
        lcd.print(segundos);
        lcd.print(":");
        lcd.print(decimas);
        delay(200);
        horas = 0;
        minutos = 0;
        segundos = 0;
        decimas = 0;
      }
      milisegundos = millis();
      if(milisegundos % 100 == 0){  //Entrar apenas se tiver passado o décimo de segundo
        decimas++;
        if(decimas == 10){ //Quando passou 10 décimos de segundo, conta um segundo
          decimas = 0;
          segundos++;
        }
        if(segundos == 60){ 
    // Após 60 segundos, conta um minuto
          segundos = 0;
          minutos++;
        }
        if(minutos == 60){// Depois de 60 minutos, conta uma hora
          minutos = 0;
          horas++;
        }
        //exibição no LCD
        lcd.setCursor(0,0);
       if(horas < 10){ //se as horas forem menor que 10, acrescenta um 0 na frente
        lcd.print("0");
       }
        lcd.print(horas);
        lcd.print(":");
        lcd.setCursor(3,0);
       if(minutos < 10){//se os minutos forem menor que 10, acrescenta um 0 na frente
         lcd.print("0");
        }
        lcd.print(minutos);
        lcd.print(":");
        lcd.setCursor(6,0);
       if(segundos < 10){//se os segundos forem menor que 10, acrescenta um 0 na frente
         lcd.print("0");
        }
        lcd.print(segundos);
        lcd.print(":");
        lcd.setCursor(9,0);
        lcd.print(decimas);
      }
    }

     

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!