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.
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;
}
}