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