terça-feira, setembro 15, 2020

Sensor Infra-vermelho de Chama

 Já faz algum tempo que não escrevo um post sobre sensores... Vamos ver hoje um sensor bastante simples: o sensor infra-vermelho (IR) de chama.



Os sensores IR de chama são bastante fáceis de achar e a maioria tem o mesmo layout independente da origem. 


A principal diferença que você vai achar são modelos com apenas três pinos, neste caso a saída analógica não está disponível. O circuito típico é o abaixo:


O funcionamento é simples. O sensor em si é um fototransistor, que irá conduzir quando receber luz na frequência correta (tipicamente 760nm to 1100nm, que está na faixa do infravermelho). A saída analógica estará mais perto do nível zero conforme a intensidade da luz detectada. Este sinal entra também em um comparador, a saída digital será zero ou um conforme o sinal for abaixo (fogo!) ou acima de uma referência determinada através de um potenciômetro. Dois LEDs na plaquinha indicam que o sensor está alimentado e se foi detectado "fogo".

O sensor funciona com qualquer tensão de 3,3 a 5V, lembrando que o valor da alimentação será o valor máximo da saída analógica.

A ligação a um Arduino é trivial: a saída analógica do sensor deve ser ligado a uma entrada analógica do Arduino e/ou a saída digital do sensor é ligada a uma entrada do Arduino. A conexão digital é mais fácil de ser usada, mas requer ajustar adequadamente o potenciômetro. Você pode fazer este ajuste alimentando o sensor, colocando uma chama na frente e ir virando o potenciômetro até o LED no sensor acender.

Para uma pequena demonstração vamos usar a montagem e o código abaixo (o buzzer deve ser um buzzer de 5V com oscilador interno):

Atenção: O módulo no Fritzing tem uma pinagem diferente!


  1. /** 
  2.  * Teste do Sensor de Chama 
  3.  * DQ - 13/09/20 
  4.  * https://dqsoft.blogspot.com 
  5.  */  
  6.   
  7. // Conexões  
  8. const int pinBuzzer = 3;  
  9. const int pinChamaD = 4;  
  10. const int pinChamaA = A0;  
  11.   
  12. // Iniciação  
  13. void setup() {  
  14.   Serial.begin(115200);  
  15.   pinMode (pinBuzzer, OUTPUT);  
  16.   digitalWrite (pinBuzzer, LOW);  
  17.   pinMode (pinChamaD, INPUT);  
  18. }  
  19.   
  20. // Laco eterno  
  21. void loop() {  
  22.   // Envia para a serial a leitura analógica  
  23.   Serial.println(analogRead (pinChamaA));  
  24.   // Aciona o Buzzer se sensor digital indicar chama  
  25.   if (digitalRead(pinChamaD) == LOW) {  
  26.     digitalWrite (pinBuzzer, HIGH);  
  27.   } else {  
  28.     digitalWrite (pinBuzzer, LOW);  
  29.   }  
  30.   // Dá um tempo entre as leituras  
  31.   delay (200);  
  32. }  

Você pode usar o plotter da IDE do Arduino (com velocidade 115200) para ver um gráfico com o valor da saída analógica e ver como ele baixa conforme a intensidade de infra-vermelho detectada. O buzzer será acionado quando a saída digital do sensor indicar chama. 

Nenhum comentário: