O módulo sensor de gás MQ-2
O sensor MQ-2, é um detector de gás e fumaça que pode indicar a presença de GLP (Gás liquefeito de petróleo, o famoso gás de cozinha), Propano, Metano, Hidrogênio e outros tipos de gases.
Seu nível de detecção vai de 300 a 10.000 ppm (partes por milhão), ajustáveis por um potenciômetro na parte de trás do módulo. Um chip comparador LM393 é responsável por ler as informações do sensor e converter essas informações em sinais para o microcontrolador.
A tensão de alimentação do módulo é de 5V e a comunicação com o microcontrolador pode ser feita de duas maneiras : pela saída digital D0 ou pela saída analógica A0.
Podemos utilizar a saída digital para simplesmente ligar uma sirene ou acionar um relé que vai fechar/abrir uma porta, cortar o fornecimento de gás, etc. Já a saída analógica informa o nível de concentração de gases detectados pelo sensor.
Quanto maior a concentração, maior o nível de sinal na saída analógica A0.
Circuito do sensor com Arduino
A exemplo de outros sensores para Arduino, vamos trabalhar apenas com portas digitais e analógicas, lendo os valores enviados pelo sensor.
No nosso circuito de testes, usamos a porta digital 7 para ligação ao pino D0 do módulo, e a porta analógica A2 ligada ao pino A0 do módulo.
As portas digitais 8, 9 e 10 serão utilizadas para acionar um led vermelho e um buzzer (gás detectado), e um led verde no modo normal de operação (sem alarme).
Como estamos trabalhando apenas com portas digitais e analógicas, não vamos precisar de nenhuma biblioteca específica para esse sensor.
No programa, o valor lido da porta analógica (valor_analogico), é comparado com a variável nivel_sensor para determinar em que ponto será acionado o buzzer e a também o led vermelho.
Nos nossos testes, o valor inicial da leitura ficou em 213 , e aumentou rapidamente para 550 na presença de gás. Ajuste o valor de nivel_sensor de acordo com o nível de detecção desejado.
// Programa : Acionador de alarme com sensor de gas MQ-2 // Definicoes dos pinos dos leds e buzzer int pin_led_verm = 8; int pin_led_verde = 9; int pin_buzzer = 10; // Definicoes dos pinos ligados ao sensor int pin_d0 = 7; int pin_a0 = A2; int nivel_sensor = 250; void setup() { // Define os pinos de leitura do sensor como entrada pinMode(pin_d0, INPUT); pinMode(pin_a0, INPUT); // Define pinos leds e buzzer como saida pinMode(pin_led_verm, OUTPUT); pinMode(pin_led_verde, OUTPUT); pinMode(pin_buzzer, OUTPUT); // Inicializa a serial Serial.begin(9600); } void loop() { // Le os dados do pino digital D0 do sensor int valor_digital = digitalRead(pin_d0); // Le os dados do pino analogico A0 do sensor int valor_analogico = analogRead(pin_a0); // Mostra os dados no serial monitor Serial.print("Pino D0 : "); Serial.print(valor_digital); Serial.print(" Pino A0 : "); Serial.println(valor_analogico); // Verifica o nivel de gas/fumaca detectado if (valor_analogico > nivel_sensor) { // Liga o buzzer e o led vermelho, e // desliga o led verde digitalWrite(pin_led_verm, HIGH); digitalWrite(pin_led_verde, LOW); digitalWrite(pin_buzzer, HIGH); } else { // Desliga o buzzer e o led vermelho, e // liga o led verde digitalWrite(pin_led_verm, LOW); digitalWrite(pin_led_verde, HIGH); digitalWrite(pin_buzzer, LOW); } delay(100); } Você pode verificar o funcionamento do alarme sensor de gás em tempo
real, acompanhando o valor das variáveis () e valor_analogico (porta A0)
no serial monitor:
Deixe um comentário