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