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! |
/**
* Teste do Sensor de Chama
* DQ - 13/09/20
* https://dqsoft.blogspot.com
*/
// Conexões
const int pinBuzzer = 3;
const int pinChamaD = 4;
const int pinChamaA = A0;
// Iniciação
void setup() {
Serial.begin(115200);
pinMode (pinBuzzer, OUTPUT);
digitalWrite (pinBuzzer, LOW);
pinMode (pinChamaD, INPUT);
}
// Laco eterno
void loop() {
// Envia para a serial a leitura analógica
Serial.println(analogRead (pinChamaA));
// Aciona o Buzzer se sensor digital indicar chama
if (digitalRead(pinChamaD) == LOW) {
digitalWrite (pinBuzzer, HIGH);
} else {
digitalWrite (pinBuzzer, LOW);
}
// Dá um tempo entre as leituras
delay (200);
}
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:
Postar um comentário