Início›Módulos›Sensor de Som (Pequeno)
⬤ Iniciante · Grupo 2 — Som e Áudio

🎤 Sensor de Som (Pequeno)

⏱️ 25 min 🧩 Sensor de som pequeno · Digital 📦 Módulo #2

Nesta página

🔬 Sobre o Sensor de Som (Pequeno)

O sensor de som pequeno (#2) usa um microfone electret para detetar ruído ambiente. Tem saída digital (DO) que vai a LOW quando o nível sonoro excede o limiar ajustado pelo potenciómetro azul. Ideal para deteção de palmas ou ruídos bruscos.

Saída
Digital
DO: LOW quando som detectado
Limiar
Ajustável
Potenciómetro na PCB
Tipo de deteção
Pico
Não mede volume médio
Pino Arduino
D4
Ou qualquer digital
Alimentação
5V
VCC do Arduino
ℹ️
O potenciómetro azul na PCB ajusta a sensibilidade. Roda no sentido dos ponteiros do relógio para aumentar a sensibilidade (deteta sons mais fracos). O LED indicador na PCB acende quando o limiar é excedido.

🔌 Pinagem

VCCAlimentação → 5V do Arduino
GNDMassa → GND do Arduino
DOSaída digital → pino D4 (LOW = som detectado)

👏 Ligar LED com Palmas

ex_som_peq_palmas.ino
#define SOM_PIN 4
#define LED_PIN 13

bool ledState = false;
unsigned long ultimoSom = 0;
#define COOLDOWN_MS 500  // Evita múltiplos triggers

void setup() {{
  pinMode(SOM_PIN, INPUT);
  pinMode(LED_PIN, OUTPUT);
  Serial.begin(9600);
}}

void loop() {{
  bool som = (digitalRead(SOM_PIN) == LOW);  // LOW = som

  if (som && (millis() - ultimoSom > COOLDOWN_MS)) {{
    ledState = !ledState;
    digitalWrite(LED_PIN, ledState);
    ultimoSom = millis();
    Serial.print("Palma! LED: ");
    Serial.println(ledState ? "ON" : "OFF");
  }}
}}

🎵 Reconhecimento de Padrões — Duas Palmas

ex_som_2palmas.ino
#define SOM_PIN     4
#define LED_PIN     13
#define JANELA_MS   800  // 2 palmas dentro de 800ms
#define COOLDOWN_MS 300

int contagem = 0;
unsigned long primeiraPalma = 0;
unsigned long ultimoSom = 0;
bool ledState = false;

void setup() {{
  pinMode(SOM_PIN, INPUT);
  pinMode(LED_PIN, OUTPUT);
  Serial.begin(9600);
}}

void loop() {{
  bool som = (digitalRead(SOM_PIN) == LOW);

  if (som && (millis() - ultimoSom > COOLDOWN_MS)) {{
    ultimoSom = millis();
    contagem++;
    if (contagem == 1) primeiraPalma = millis();

    Serial.print("Palma #"); Serial.println(contagem);

    if (contagem == 2 && (millis() - primeiraPalma < JANELA_MS)) {{
      ledState = !ledState;
      digitalWrite(LED_PIN, ledState);
      Serial.println("Duas palmas detectadas! Toggle LED.");
      contagem = 0;
    }}
  }}

  // Reset se a janela temporal expirar
  if (contagem > 0 && (millis() - primeiraPalma > JANELA_MS)) {{
    contagem = 0;
  }}
}}

📊 Comparação: Sensor Pequeno vs. Grande

CaracterísticaSensor Pequeno (#2)Sensor Grande (#13)
Saída principalDigital (DO) — HIGH/LOWAnalógica (AO) — 0–1023
O que medePresença de som (acima do limiar)Volume contínuo do som
SensibilidadeAjustável por potenciómetroLeitura proporcional — mais preciso
Ideal paraPalmas, triggers discretosMedidor de dB, análise de volume
Função ArduinodigitalRead()analogRead()

🏆 Para ir mais longe

Kit B 37 · PR.FT6_15 · Arduino UNO · Raspberry Pi · Início · led.dge.medu.pt