Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Cronômetro de Slot Car a Laser com Display GLCD – Precisão para Pistas RC

Componentes e Materiais

Aplicativos e Serviços

Sobre o Projeto

Introdução

Portão de cronometragem para pista de slot car (autorama). Laser + sensor detectam passagem do carro; GLCD mostra volta atual, tempo da última volta, melhor tempo e tempo da volta em andamento.

Hardware

Maior desafio: alinhamento preciso laser-sensor.

Código Completo (openGLCD)

/* Time keeping digital gate - Tal Ofer */
#include 

// Variáveis de tempo
unsigned long currentRunStartMillis, lastRunInMillis, bestRunInMillis, savedMillis;
int currentLap = 0;
int sec_val, milli_val;

// Áreas de texto no GLCD
gText t1, t2, t3;

// Sensor laser
const int gateSensorPin = 2;
int gateSensorState, lastgateSensorState = LOW;
unsigned long lastDebounceTime = 0;
const int debounceDelay = 50;

void setup() {
  pinMode(gateSensorPin, INPUT);
  delay(50); // Estabiliza sensor/laser
  GLCD.Init(NON_INVERTED);

  // Define áreas de exibição
  t1.DefineArea(textAreaTOP, lcdnums14x24);           // Voltas + tempo atual
  t2.DefineArea(0, GLCD.CenterY, 8, 2, fixednums7x15); // Última volta
  t3.DefineArea(GLCD.CenterX, GLCD.CenterY, 8, 2, fixednums7x15); // Melhor volta
  t3.SetFontColor(WHITE); t3.ClearArea();

  // Rótulos fixos
  GLCD.SelectFont(System5x7);
  GLCD.CursorTo(1, 4); GLCD.print("LAST");
  GLCD.CursorTo(11, 4); GLCD.print("BEST");

  // Reset parâmetros
  currentRunStartMillis = lastRunInMillis = bestRunInMillis = 0;
  currentLap = 0;
}

void loop() {
  int reading = digitalRead(gateSensorPin);

  // Debounce
  if (reading != lastgateSensorState) lastDebounceTime = millis();
  if ((millis() - lastDebounceTime) > debounceDelay) {
    if (reading != gateSensorState) {
      gateSensorState = reading;
      if (gateSensorState == LOW) { // Feixe interrompido = volta completa
        savedMillis = millis();
        if (currentLap > 0) {
          lastRunInMillis = savedMillis - currentRunStartMillis;
          if (lastRunInMillis < bestRunInMillis || bestRunInMillis == 0)
            bestRunInMillis = lastRunInMillis;
        }
        currentRunStartMillis = savedMillis;
        currentLap++;
      }
    }
  }
  lastgateSensorState = reading;

  // Atualiza display
  savedMillis = millis();
  if (currentLap > 0)
    calcResultFromMillis(savedMillis - currentRunStartMillis, &sec_val, &milli_val);
  else
    calcResultFromMillis(0, &sec_val, &milli_val);

  // VOLTAS + TEMPO ATUAL
  t1.CursorTo(0, 0);
  t1.Printf(F("%02d"), currentLap);
  t1.CursorTo(3, 0);
  t1.Printf(F("%02d.%03d"), sec_val, milli_val);

  // ÚLTIMA VOLTA
  calcResultFromMillis(lastRunInMillis, &sec_val, &milli_val);
  t2.CursorTo(1, 1);
  t2.Printf(F("%02d.%03d"), sec_val, milli_val);

  // MELHOR VOLTA
  calcResultFromMillis(bestRunInMillis, &sec_val, &milli_val);
  t3.CursorTo(1, 1);
  t3.Printf(F("%02d.%03d"), sec_val, milli_val);
}

void calcResultFromMillis(unsigned long value, int *sec, int *milli) {
  *sec = int(value / 1000);
  *milli = value - *sec * 1000;
}

Funcionamento

Melhorias Possíveis

Processo de manufatura

  1. Guia Especializado de Marcação a Laser em Alumínio: Precisão, Durabilidade e Aplicações Industriais
  2. Guia Completo de Marcação a Laser: Tipos, Benefícios e Aplicações
  3. Marcação a Laser por Fibra: Precisão, Velocidade e Versatilidade para Indústrias Modernas
  4. Ponteiro Laser: Design, Fabricação e Visão Geral de Segurança
  5. Montanhas-Russas: Dos Trenós de Neve aos Gigantes de Aço
  6. Lasers de Semicondutor: Geração de Luz de Precisão para Tecnologia Moderna
  7. Lasers de Estado Sólido: Tecnologia, Aplicações e Tendências Futuras
  8. A Ampulheta: História, Artesanato e Atrativo Moderno
  9. Como Instalar Display TFT 3.5″ Kuman no RetroPie – Guia Passo a Passo
  10. Rpibot: Robô Móvel de Baixo Custo e Expansível para Aprendizado de Sistemas Embarcados