O sensor, proposto pela Instructables sob o apelido AdnanA61, permite detectar radiação infravermelha de ondas curtas de fontes como controles remotos, fogo, lâmpadas incandescentes e sol. Ele não responde a outra forma de radiação infravermelha - ondas longas, cujas fontes são todos os objetos aquecidos a temperaturas comuns. Caseiro produz dois tipos de sinais: analógico e discreto, o segundo deles é formado por um comparador, cujo limite é ajustado. Ambos os sinais podem ser aplicados tanto ao Arduinoe para outros dispositivos com ou sem um microcontrolador. O seguinte é outro design de placa, o circuito não é diferente:
O sensor é feito em um dos dois comparadores do microcircuito LM393; o segundo pode ser usado para resolver outro problema, se desejado. Se você não usá-lo, é melhor conectar as duas entradas com um fio comum e deixar a saída desconectada.
O esquema foi projetado para que a leitura não seja muito conveniente. Os três pontos designados como A0 devem ser conectados juntos. Dois pontos designados como D0 - também. Portanto, fica claro o que está conectado e como ele funciona. Sem enigmas. Se você montar o sensor pelo designer, a pinagem do pente na placa incluída no kit será a seguinte:
Obviamente, em uma placa improvisada, impressa ou em uma placa de ensaio, essa pinagem pode ser feita para ser conveniente para você. Você pode verificar a placa em ação e ajustar o limiar do comparador imediatamente após a montagem, simplesmente fornecendo energia, graças ao LED na placa. O segundo LED acende continuamente quando a energia está ligada. Em seguida, você pode conectar o sensor ao Arduino e testar a saída analógica com este esboço:
// copia esse código no ide do arduino dessa linha
// nota: - este código é para valor analógico
sensor int = A0; // inicializando o pino analógico
buzzer int = 3; // inicializando o pino da campainha
valor int;
configuração nula () {
Serial.begin (9600);
pinMode (sensor, ENTRADA); // atribuir o tipo de pino do modo pino como entrada ou saída
pinMode (campainha, SAÍDA);
}
loop vazio () {
valor = analogRead (sensor); // lendo o valus do sensor
valor = mapa (valor, 0,1023,0,255); // mapeando o valor de 0 a 1023 b / w 0 a 255
digitalWrite (campainha, valor); // ativar ou desativar a campainha pelo valor mapeado
}
E digital - com outro esboço:
// copia esse código no ide do arduino dessa linha
// nota: - este código é para valor digital
int sensor_digital = 2; // inicializando o pino digital
buzzer int = 3;
valor int;
configuração nula () {
Serial.begin (9600);
pinMode (sensor_digital, INPUT);
pinMode (campainha, SAÍDA);
}
loop vazio () {
valor = digitalRead (sensor_digital); // lendo o dat digital do sensor
digitalWrite (campainha, valor); // ligar ou desligar a campainha
}
Quando tudo funciona, você pode escrever programas que implementam algoritmos de maior complexidade. Por exemplo, para um robô "com medo" de se aproximar de uma chama ou de uma lâmpada incandescente poderosa para não se deteriorar. E ele está fazendo a coisa certa, já que segurar a placa do sensor em fontes de forte aquecimento a uma distância inferior a 100 mm pode danificá-la.