Voltar

Velocímetro com Arduino

Construção de um velocímetro com sensores LDR e laser como recurso didático para o ensino de cinemática no Ensino Médio.

Velocímetro com Arduino

Resumo do Projeto

Este projeto apresenta uma atividade experimental para o ensino de cinemática no Ensino Médio, por meio da construção de um velocímetro com Arduino, sensores LDR, módulos laser e display LCD. Os alunos da 1ª série foram organizados em grupos colaborativos, responsáveis tanto pela montagem eletrônica quanto pela implementação da equação de velocidade média no código de programação.

O funcionamento é simples e elegante: quando um objeto interrompe os feixes de luz laser, o tempo entre os dois eventos é medido e a velocidade calculada automaticamente, exibida diretamente no display LCD. Os alunos enfrentaram desafios reais de precisão de medição e conversão de unidades (microssegundos para segundos), desenvolvendo raciocínio lógico e pensamento computacional.

O Velocímetro em Escala Real

No segundo momento, a experiência ganhou uma dimensão lúdica: montou-se um velocímetro em tamanho real no corredor da escola. Os próprios alunos correram entre os sensores e mediram suas velocidades, comparando-as espontaneamente com as de animais pesquisados na internet. Uma forma concreta e memorável de conectar Física com o mundo real.

Destaques

  • Plataforma: Arduino Uno
  • Sensores: LDR + Módulo Laser
  • Saída: Display LCD I2C
  • Conceito: Velocidade Média
  • Público: 1ª Série Ensino Médio
  • Duração: 2 aulas (100 min)

Cálculo da Velocidade Média (Arduino / C++)

Arduino / C++
// Velocímetro com sensores LDR e laser
// Distância entre sensores em metros
const float DISTANCIA = 0.30; // 30 cm

unsigned long t1, t2;
bool sensor1_ativo = false;

void loop() {
    int ldr1 = analogRead(A0);
    int ldr2 = analogRead(A1);

    // Objeto interrompe sensor 1
    if (ldr1 < LIMIAR && !sensor1_ativo) {
        t1 = micros();
        sensor1_ativo = true;
    }

    // Objeto interrompe sensor 2
    if (ldr2 < LIMIAR && sensor1_ativo) {
        t2 = micros();
        float tempo_s = (t2 - t1) / 1000000.0; // µs → s
        float velocidade = DISTANCIA / tempo_s;   // m/s

        lcd.setCursor(0, 0);
        lcd.print("Vel: ");
        lcd.print(velocidade * 3.6); // m/s → km/h
        lcd.print(" km/h");

        sensor1_ativo = false;
    }
}