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.
#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");
}}
}}#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;
}}
}}| Característica | Sensor Pequeno (#2) | Sensor Grande (#13) |
|---|---|---|
| Saída principal | Digital (DO) — HIGH/LOW | Analógica (AO) — 0–1023 |
| O que mede | Presença de som (acima do limiar) | Volume contínuo do som |
| Sensibilidade | Ajustável por potenciómetro | Leitura proporcional — mais preciso |
| Ideal para | Palmas, triggers discretos | Medidor de dB, análise de volume |
| Função Arduino | digitalRead() | analogRead() |