Il sensore, proposto da Instructables con il soprannome di AdnanA61, consente di rilevare radiazioni infrarosse a onde corte da fonti quali telecomandi, fuoco, lampade a incandescenza e il sole. Non risponde a un'altra forma di radiazione infrarossa: le onde lunghe, le cui fonti sono tutti oggetti riscaldati a temperature normali. prodotto fatto in casa produce due tipi di segnali: analogico e discreto, il secondo è formato da un comparatore, la cui soglia viene regolata. Entrambi i segnali possono essere applicati sia a Arduinoe ad altri dispositivi con o senza un microcontrollore. Di seguito è riportato un altro design della scheda, il circuito non è diverso:
Il sensore è realizzato su uno dei due comparatori del microcircuito LM393; il secondo può essere utilizzato per risolvere un altro problema, se lo si desidera. Se non lo si utilizza, è meglio collegare entrambi i suoi ingressi con un filo comune e lasciare scollegata l'uscita.
Lo schema è progettato in modo che la lettura non sia molto conveniente. I tre punti indicati come A0 devono essere collegati insieme. Anche due punti indicati come D0. Quindi diventa chiaro a cosa è collegato e come funziona. Nessun indovinello. Se si monta il sensore dal progettista, la piedinatura del pettine sulla scheda inclusa nel kit sarà la seguente:
Naturalmente, su una tavola improvvisata, stampata o breadboard, questa pinout può essere fatta per essere conveniente per te. Puoi controllare la scheda in azione e regolare la soglia del comparatore immediatamente dopo il montaggio, semplicemente fornendo energia, grazie al LED sulla scheda. Il secondo LED si illumina continuamente quando l'alimentazione è accesa. Quindi è possibile collegare il sensore ad Arduino e testare l'uscita analogica con questo schizzo:
// copia questo codice nell'ide di arduino da questa riga
// nota: - questo codice è per valore analogico
sensore int = A0; // inizializza il pin analogico
int buzzer = 3; // inizializzazione del pin del cicalino
valore int;
void setup () {
Serial.begin (9600);
pinMode (sensore, INPUT); // valuta il tipo di pin del pin come input o output
pinMode (buzzer, OUTPUT);
}
void loop () {
valore = analogRead (sensore); // legge il valore dal sensore
valore = mappa (valore, 0.1023.0.255); // mappa il valore da 0 a 1023 b / n da 0 a 255
digitalWrite (buzzer, valore); // attiva o disattiva il buzzer in base al valore mappato
}
E digitale - con un altro schizzo:
// copia questo codice nell'ide di arduino da questa riga
// nota: - questo codice è per valore digitale
int sensor_digital = 2; // inizializzazione del pin digitale
int buzzer = 3;
valore int;
void setup () {
Serial.begin (9600);
pinMode (sensor_digital, INPUT);
pinMode (buzzer, OUTPUT);
}
void loop () {
value = digitalRead (sensor_digital); // legge i dati digitali dal sensore
digitalWrite (buzzer, valore); // attivazione o disattivazione del buzzer
}
Quando tutto funziona, puoi scrivere programmi che implementano algoritmi di maggiore complessità. Ad esempio, per un robot "impaurito" di avvicinarsi a una fiamma o una potente lampada a incandescenza per non deteriorarsi. E sta facendo la cosa giusta, poiché tenere la scheda del sensore a fonti di forte riscaldamento a una distanza inferiore a 100 mm può danneggiarla.