Created
August 28, 2024 14:39
-
-
Save gbzarelli/b698f5e92d7677eb8e184c5c17d375d1 to your computer and use it in GitHub Desktop.
[Gas detect] Detector de Gás com Arduino + MQ2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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