Bom dia, boa tare ou boa noite.
Estou fazendo um projeto de um cronometro e preciso que ele seja o mais preciso possível, que exiba além dos segundos que exiba também, décimos, centésimos e milésimos.
estou fazendo esse projeto num Arduino.
Até o momento eu cosnegui fazer o cronometro apenas com a casa dos segundos mas não consegui os outros valores.
vou deixar a baixo o código, caso alguém possa me ajudar, sei o básico de programação.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
//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(16,2);
while(digitalRead(inicio) == LOW){
lcd.setCursor(0,0);
lcd.print("00:00:00:00");
}
}
void loop(){
if(digitalRead(inicio) == HIGH){
horas = 0;
minutos = 0;
segundos = 0;
decimas = 0;
lcd.clear();
}
if(digitalRead(pausa) == HIGH){
delay(200);
while(digitalRead(pausa) == LOW);
lcd.setCursor(0,1);
if(horas < 10){ lcd.print("0");}
lcd.print(horas);
lcd.print(":");
if(minutos < 10){ lcd.print("0");}
lcd.print(minutos);
lcd.print(":");
if(segundos < 10){ lcd.print("0");}
lcd.print(segundos);
lcd.print(":");
lcd.print(decimas);
delay(200);
}
milisegundos = millis();
if(milisegundos % 100 == 0){
decimas++;
if(decimas == 10){
decimas = 0;
segundos++;
}
if(segundos == 60){
segundos = 0;
minutos++;
}
if(minutos == 60){
minutos = 0;
horas++;
}
//exibição no LCD
lcd.setCursor(0,0);
if(horas < 10){
lcd.print("0");
}
lcd.print(horas);
lcd.print(":");
lcd.setCursor(3,0);
if(minutos < 10){
lcd.print("0");
}
lcd.print(minutos);
lcd.print(":");
lcd.setCursor(6,0);
if(segundos < 10){
lcd.print("0");
}
lcd.print(segundos);
lcd.print(":");
lcd.setCursor(9,0);
lcd.print(decimas);
}
}
CronometroC++.txt