Alarme com Arduino e sensor ultrassônico: o projeto que prende a turma em 1 aula
Passo a passo completo para montar um alarme de aproximação com Arduino Uno e sensor HC-SR04 — com código comentado em português, lista de peças, plano de aula e amarração com a BNCC. Feito para professor que nunca programou.
25 de julho de 2026 · ⏱ 1 min · Iniciante
Tecnologia que vira experiência ✨
Você aproxima a mão. O aparelho apita devagar. Você chega mais perto — os bipes aceleram. Mais perto ainda e ele trava num som contínuo, como se dissesse "chega".
Essa é a cena que faz uma turma inteira parar de olhar o celular.
O melhor: são quatro peças, quinze minutos de montagem, zero solda e zero experiência prévia em programação. Eu montei este projeto pela primeira vez sem nunca ter ligado um Arduino na vida — e este artigo é exatamente o caminho que eu segui, incluindo os erros.
O que você vai construir
Um alarme de aproximação: um sensor mede a distância continuamente e dispara um alerta sonoro quando alguém se aproxima demais. A intensidade muda conforme a distância — igual ao sensor de ré do carro.
Serve como alarme de porta, "guardião" da mesa do professor, ou o sistema de segurança de uma maquete. E, por baixo da brincadeira, tem matemática e ciências acontecendo de verdade.
Por que este projeto e não o "acender um LED"
Quase todo material de Arduino para escola começa piscando um LED. O aluno vê, acha bonitinho, e esquece em dez minutos. Falta o que a gente chama de consequência: uma reação do mundo que não estava lá antes.
O alarme tem isso. Ele reage a você. E o sensor ultrassônico é uma peça que todo kit básico já traz — normalmente usada no tutorial mais chato possível, o "sensor de ré". Trocar o enquadramento muda tudo.

As peças
| Peça | Para quê | Preço aproximado |
|---|---|---|
| Arduino Uno (ou Nano) | o cérebro | R$ 40–70 |
| Sensor ultrassônico HC-SR04 | mede a distância | R$ 10–20 |
| Buzzer (passivo ou ativo) | faz o barulho | R$ 3–8 |
| Jumpers macho-fêmea | ligam as peças | R$ 10 o pacote |
| Cabo USB | programar e alimentar | costuma vir junto |
Os preços são estimativas e variam bastante por loja e época — confira antes de comprar. Se você já tem um kit iniciante de Arduino, provavelmente tem tudo isso na caixa.
Não precisa de protoboard: dá para ligar tudo direto na placa com jumpers.
A montagem: 6 fios
Faça sempre com o cabo USB desconectado. Conecte só no final.
Sensor HC-SR04

Os nomes estão impressos na plaquinha, ao lado dos pinos:
| No sensor | No Arduino |
|---|---|
Vcc |
5V |
Trig |
pino 9 |
Echo |
pino 10 |
Gnd |
GND |
Buzzer
| No buzzer | No Arduino |
|---|---|
um fio (o +, se houver marcação) |
pino 8 |
| outro fio | GND |
Como o Arduino Uno tem três pinos GND, dá para usar um para cada peça sem aperto.

Repare que não há solda nem protoboard: os jumpers macho-fêmea entram direto no sensor de um lado e na placa do outro. É o que torna o projeto viável numa aula de 50 minutos com trinta alunos.
O código
Abra a Arduino IDE, cole o código abaixo, selecione Ferramentas → Placa → Arduino Uno e a porta COM que aparecer. Depois clique na seta de Carregar.
Não precisa instalar biblioteca nenhuma.
const int PINO_TRIG = 9;
const int PINO_ECHO = 10;
const int PINO_ALARME = 8;
const int PINO_LED = 13; // LED que já vem na placa
const int LIMITE_CM = 60; // a partir de quantos cm começa a avisar
const int MUITO_PERTO = 10; // abaixo disso, som contínuo
const int FREQ_LONGE = 1800; // Hz quando está no limite
const int FREQ_PERTO = 2800; // Hz quando está bem perto
const int RITMO_LENTO = 500; // ms entre bipes (longe)
const int RITMO_RAPIDO = 60; // ms entre bipes (perto)
unsigned long marcaBipe = 0;
bool somLigado = false;
void setup() {
pinMode(PINO_TRIG, OUTPUT);
pinMode(PINO_ECHO, INPUT);
pinMode(PINO_ALARME, OUTPUT);
pinMode(PINO_LED, OUTPUT);
Serial.begin(9600);
}
long medirDistancia() {
digitalWrite(PINO_TRIG, LOW);
delayMicroseconds(2);
digitalWrite(PINO_TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(PINO_TRIG, LOW);
unsigned long duracao = pulseIn(PINO_ECHO, HIGH, 30000UL);
if (duracao == 0) return 999; // nada por perto
return (long)(duracao / 58); // converte para centímetros
}
void loop() {
long distancia = medirDistancia();
if (distancia >= LIMITE_CM) { // longe: silêncio
noTone(PINO_ALARME);
digitalWrite(PINO_LED, LOW);
delay(60);
return;
}
int freq = constrain(map(distancia, MUITO_PERTO, LIMITE_CM, FREQ_PERTO, FREQ_LONGE),
FREQ_LONGE, FREQ_PERTO);
int ritmo = constrain(map(distancia, MUITO_PERTO, LIMITE_CM, RITMO_RAPIDO, RITMO_LENTO),
RITMO_RAPIDO, RITMO_LENTO);
Serial.print("distancia = ");
Serial.print(distancia);
Serial.println(" cm");
if (distancia <= MUITO_PERTO) { // muito perto: som contínuo
tone(PINO_ALARME, FREQ_PERTO);
digitalWrite(PINO_LED, HIGH);
delay(60);
return;
}
if (millis() - marcaBipe >= (unsigned long)ritmo) { // bipes no ritmo
marcaBipe = millis();
somLigado = !somLigado;
if (somLigado) { tone(PINO_ALARME, freq); digitalWrite(PINO_LED, HIGH); }
else { noTone(PINO_ALARME); digitalWrite(PINO_LED, LOW); }
}
delay(30);
}
Prefere baixar pronto? Os arquivos .ino (o projeto completo + um teste de diagnóstico que confere peça por peça) estão no projeto, junto com o plano de aula — é só criar sua conta gratuita:
🎁 Baixe grátis na Sala dos Professores →
Como o sensor mede distância
O HC-SR04 tem dois cilindros: um é alto-falante, o outro é microfone. O Trig manda um estalo de som agudo demais para o ouvido humano (ultrassom). Esse som viaja, bate no obstáculo e volta. O Echo avisa quanto tempo a viagem levou.
Como o som anda a cerca de 343 metros por segundo, sabendo o tempo dá para calcular a distância. E como o som foi e voltou, divide-se por dois. É de onde sai aquele / 58 do código — a conversão de microssegundos para centímetros.
É exatamente o que morcegos e golfinhos fazem. Isso não é analogia bonitinha: é o mesmo princípio físico, e vale dizer isso para a turma.
O erro que quase todo mundo comete
Quando montei pela primeira vez, não funcionou. O culpado foi um fio de sinal ligado nos pinos 0 ou 1 do Arduino.

Nunca use os pinos 0 e 1 para sensores. Eles são reservados para a comunicação USB. Se você usar, o sensor não lê e o Monitor Serial vira uma sopa de símbolos. Use do pino 2 em diante.
Guarde essa: é o erro mais comum de quem está começando, e o mais difícil de descobrir sozinho.
Outros tropeços frequentes
| Sintoma | Causa provável | Solução |
|---|---|---|
| Não sobe o código | placa ou porta erradas | Ferramentas → Placa e Porta |
Porta COM cinza |
falta driver ou cabo é só de carga | instalar driver CH340; testar outro cabo |
| Símbolos estranhos no Monitor Serial | velocidade errada | escolher 9600 |
Distância sempre 999 |
Trig e Echo trocados |
Trig no 9, Echo no 10 |
| Alarme fraquinho | frequência longe da ressonância | testar entre 2000 e 3000 Hz |
Como deixar o alarme mais alto
O Arduino não consegue controlar volume — o comando tone() sempre manda na potência máxima. Mas o volume percebido depende muito da frequência: todo buzzer tem uma faixa em que ele praticamente grita, quase sempre entre 2000 e 3000 Hz.
Foi por isso que o código usa essa faixa em vez de tons graves. Se quiser achar o ponto exato do seu buzzer, faça ele tocar de 500 em 500 Hz e ouça qual fica mais alto — essa é, inclusive, uma ótima atividade de Ciências sobre ressonância.
Precisa de mais volume ainda? Aí é hardware: um transistor comum (como o BC337) permite entregar bem mais corrente ao buzzer.
Plano de aula: 50 minutos
1. O gancho (5 min). Deixe montado antes da aula. Ligue sem explicar nada e aproxime a mão. Pergunte: "o que está acontecendo aqui?". Deixe as hipóteses aparecerem antes de qualquer explicação.
2. Investigação (10 min). Cada aluno testa. A pergunta que guia: o que exatamente faz o som mudar? Eles vão descobrir sozinhos que é a distância — e não a velocidade da mão, o tamanho dela ou a sombra.
3. Como funciona (10 min). Ultrassom, eco, tempo de viagem. Conexão com morcegos, golfinhos, sonar de navio e ultrassom da medicina.
4. A matemática (15 min). Abra o Monitor Serial e peça para anotarem cinco pares (distância, ritmo do bipe). Perguntas para conduzir:
- Quando a distância diminui, o que acontece com o intervalo entre os bipes?
- Isso é uma relação direta ou inversa?
- Dá para prever o comportamento antes de mover a mão?
- Se o limite fosse 100 cm em vez de 60, o que mudaria no gráfico?
5. Fechamento (10 min). Cada grupo decide onde instalaria o alarme na escola e por quê — e ajusta o LIMITE_CM para esse uso. Um alarme de porta e um alarme de gaveta pedem números bem diferentes.
Para o Fundamental I
Tire a parte numérica. Foque em perto e longe, e no vocabulário: sensor, ultrassom, distância. A brincadeira "estátua" funciona muito bem — a turma tenta chegar ao sensor sem disparar o alarme contínuo.
Amarração com a BNCC
Competências Gerais
- CG2 — Pensamento científico, crítico e criativo: os alunos levantam hipóteses sobre o que controla o alarme e testam cada uma.
- CG5 — Cultura digital: compreender e usar tecnologia de forma crítica e criativa, não apenas consumir.
- CG4 — Comunicação: interpretar dados e explicar o funcionamento para os colegas.
Componentes e unidades temáticas
- Matemática — Grandezas e medidas e Álgebra: relação entre grandezas, proporcionalidade inversa, leitura de dados e construção de tabelas.
- Ciências — Matéria e energia: som, propagação, frequência, ultrassom e ecolocalização.
- Computação (Normativa BNCC Computação) — pensamento algorítmico: condições, repetição e variáveis num programa que resolve um problema real.
Os códigos de habilidade específicos variam conforme o ano de aplicação.
Variações para não morrer na primeira aula
- Contador de visitas: em vez de alarme, conte quantas pessoas passaram e mostre o total.
- Alarme silencioso: troque o som por LED — útil para turmas agitadas ou salas vizinhas sensíveis.
- Vaga de estacionamento: verde, amarelo e vermelho conforme a aproximação.
- Instrumento musical: a distância vira nota, e a turma toca com a mão no ar. É o mesmo sensor com outro código.
- Régua digital: mede objetos e compara com a régua de verdade — ótimo para discutir erro de medição.
Vale a pena?
O que faz esse projeto funcionar em sala não é a tecnologia. É que ele produz uma reação imediata e física a algo que o aluno faz com o próprio corpo. Antes de qualquer explicação, ele já quer entender.
E aí a matemática entra como resposta a uma pergunta que a turma já fez — que é o oposto de como ela costuma entrar.
Quer o projeto completo? Eu preparo cada projeto com código-base comentado em português, vídeo-aula passo a passo, plano de aula pronto e os materiais para imprimir. Dá uma olhada em todos os projetos ou entre na Sala dos Professores, onde eles ficam todos disponíveis.
Se você está começando agora com IA e tecnologia na sala, veja também a curadoria de ferramentas de IA para professores — é gratuita.
Luis Filipe
Professor por vocação · Microsoft Elevate Educator Expert. Transformo tecnologia em experiência pra quem ensina.
Conheça o autor →quer levar tecnologia de verdade pra sua sala? 👇
Projetos prontos — código-base, vídeo-aula e materiais