Galera, bom dia

Estou desenvolndo um sistema para marcar o tempo que um pistão leva para chegar até um ponto final.

Irei trabalhar com Arduino Uno, um botão reset e dois acionamentos automáticos(um sensor inicial que irá dar a partida no cronômetro e outro que irá finalizar essa marcação). Tudo sendo informado em um display LCD. 

Alguém pode me dar uma luz como desenvolver esse sistema, alguém conhece qual biblioteca posso usar.

Desde já agradeço a ajuda de vocês!

Abração!

Exibições: 3207

Responder esta

Respostas a este tópico

Bom dia A2PC,

Leia http://labdegaragem.com/forum/topics/sugest-o-de-como-postar

e depois detalhe mais sua necessidade. 

Qual plataforma (UNO,MEGA,PIC, etc).

Qual tipo de display (LCD, 7Seg, etc);

Que tipos de sensores, 

etc.

Rui

Olá 2PAC, estude a função millis() que provavelmente resolve seu problema:

https://www.arduino.cc/en/reference/millis

Qual é o tempo estimado para o pistão chegar até o ponto final ?

Essa estimativa definirá qual grandeza de tempo terá que usar. ( milisegundos, microsegundos, etc) 

Entre 2 e 3 segundos no máximo

Obrigado pela ajuda, José.
Vou dar uma estudado nesses casos que você me enviou.
Bom dia!

Bom dia, pessoal. Consegui chegar a algo próximo desse código, mas estou com dois problemas: 1 - é que o cronômetro inicia mesmo se eu acionar a váriável "inicio"; 2 - é que meu botão reset não tá resetando o lcd e as variáveis.
Se alguém conhecer também um jeito melhor de quando o segundo sensor, variável "fim", for acionada e parar a marcação do tempo.
Quem puder me dar uma luz nisso.

#include
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

int horas = 0;
int minutos = 0;
int segundos = 0;
int decimal = 0;
long milisegundos = 0;
int reset = 10;
int inicio = 9;
int fim = 8;
int estado_reset = 0;
int estado_inicio = 0;
int estado_fim = 0;

void setup(){
Serial.begin(9600);
pinMode(reset, INPUT);
pinMode(inicio, INPUT);
pinMode(fim, INPUT);
lcd.begin(16,2);
}
void loop(){
//Reset
estado_reset = digitalRead(reset);
if(estado_reset == HIGH){
horas = 0;
minutos = 0;
segundos = 0;
decimal = 0;
lcd.clear();
}
//Inicio - sensor 1
estado_inicio = digitalRead(inicio);
estado_fim = digitalRead(fim);
if(estado_inicio == HIGH){
delay(200);
}
milisegundos = millis();
if(milisegundos % 100 == 0){ //Only enter if it has passed tenth of a second
decimal++;
if(decimal == 10){ //When it has passed 10 tenths of a second it count one second
decimal = 0;
segundos++;
}
if(segundos == 60){ //When it has passed 60 seconds it count one minute
segundos = 0;
minutos++;
}
if(minutos == 60){ //When it has passed 60 minutes it count one hour
minutos = 0;
horas++;
}
//Print Time
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(decimal);
}
//Fim - sensor 2
if (estado_fim == HIGH) {
delay(200000);
}
}

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço