Skip to content

Instantly share code, notes, and snippets.

@gbzarelli
Created August 28, 2024 14:39
Show Gist options
  • Save gbzarelli/b698f5e92d7677eb8e184c5c17d375d1 to your computer and use it in GitHub Desktop.
Save gbzarelli/b698f5e92d7677eb8e184c5c17d375d1 to your computer and use it in GitHub Desktop.
[Gas detect] Detector de Gás com Arduino + MQ2
// Definição dos pinos
const int gasSensorPin = A3; // Pino analógico do sensor MQ-2
const int buzzerPin = 8; // Pino digital para o buzzer
// Definição do valor limite para acionar o buzzer (ajuste conforme necessário)
const int gasThreshold = 100;
const int maxGasLevel = 1023; // Valor máximo que o sensor pode ler (10 bits)
// Frequência mínima e máxima para o buzzer
const int minFrequency = 100; // Frequência mínima do buzzer em Hz
const int maxFrequency = 1000; // Frequência máxima do buzzer em Hz
void setup() {
// Inicializa o pino do sensor de gás como entrada
pinMode(gasSensorPin, INPUT);
// Inicializa o pino do buzzer como saída
pinMode(buzzerPin, OUTPUT);
// Inicializa a comunicação serial para monitoramento
Serial.begin(9600);
}
void loop() {
// Lê o valor do sensor MQ-2
int gasLevel = analogRead(gasSensorPin);
// Imprime o valor lido na porta serial
Serial.print("Gas Level: ");
Serial.println(gasLevel);
// Verifica se o nível de gás excede o limite
if (gasLevel > gasThreshold) {
// Calcula a frequência do buzzer com base no nível de gás
int frequency = map(gasLevel, gasThreshold, maxGasLevel, minFrequency, maxFrequency);
// Emite som com a frequência calculada
tone(buzzerPin, frequency);
} else {
// Desliga o buzzer se o nível de gás estiver abaixo do limite
noTone(buzzerPin);
}
// Aguarda um pouco antes de ler o sensor novamente
delay(500);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment