Senzor navrhnutý spoločnosťou Instructables pod prezývkou AdnanA61 vám umožňuje detekovať krátkovlnné infračervené žiarenie zo zdrojov, ako sú diaľkové ovládače, oheň, žiarovky a slnko. Nereaguje na inú formu infračerveného žiarenia - dlhovlnné, ktorých zdroje sú všetky objekty ohrievané na bežné teploty. domáci produkt vytvára dva typy signálov: analógový a diskrétny, druhý z nich je tvorený komparátorom, ktorého prahová hodnota je nastaviteľná. Oba signály môžu byť aplikované na oba Arduinoa na ďalšie zariadenia s mikrokontrolérom alebo bez neho. Toto je ďalší návrh dosky, obvod sa nelíši:
Senzor je vyrobený na jednom z dvoch porovnávacích mikroobvodov LM393, druhý je možné v prípade potreby použiť na vyriešenie ďalšieho problému. Ak ho nepoužívate, je lepšie prepojiť oba jeho vstupy spoločným vodičom a výstup nechať nepripojený.
Schéma je navrhnutá tak, aby čítanie nebolo príliš pohodlné. Tri body označené ako A0 musia byť navzájom spojené. Dva body označené ako D0. Je teda zrejmé, čo je spojené a ako to funguje. Žiadne hádanky. Ak zostavíte snímač od projektanta, bude pin na hrebeni na doske, ktorý je súčasťou súpravy, nasledovný:
Na provizórnej doske, tlačenej doske alebo doštičke je samozrejme možné urobiť tento pinout tak, aby vám vyhovoval. Dosku môžete skontrolovať v činnosti a prahovú hodnotu porovnávača môžete upraviť ihneď po montáži jednoducho pomocou napájania vďaka LED na doske. Druhá LED dióda svieti nepretržite, keď je zapnuté napájanie. Potom môžete pripojiť senzor k Arduino a otestovať analógový výstup pomocou tejto skici:
// skopírujte tento kód v idee arduino z tohto riadku
// note: - tento kód je pre analógovú hodnotu
int senzor = A0; // inicializácia analógového pin
int bzučiak = 3; // inicializácia pin bzučiaka
int hodnota;
neplatné nastavenie () {
Serial.egegin (9600);
pinMode (senzor, INPUT); // stanovenie typu kolíka v režime vstupu alebo výstupu
pinMode (bzučiak, VÝSTUP);
}
void loop () {
value = analogRead (senzor); // odčítanie hodnoty valca zo senzora
value = map (value, 0,103,0,255); // mapovanie hodnoty od 0 do 1023 b / w 0 do 255
digitalWrite (bzučiak, hodnota); // zapnutie alebo vypnutie bzučiaka podľa mapovanej hodnoty
}
A digitálne - s ďalším náčrtom:
// skopírujte tento kód v idee arduino z tohto riadku
// note: - tento kód slúži na digitálnu hodnotu
int sensor_digital = 2; // inicializácia digitálneho pin
int bzučiak = 3;
int hodnota;
neplatné nastavenie () {
Serial.egegin (9600);
pinMode (sensor_digital, INPUT);
pinMode (bzučiak, VÝSTUP);
}
void loop () {
value = digitalRead (sensor_digital); // čítanie digitálnych údajov zo senzora
digitalWrite (bzučiak, hodnota); // zapnutie alebo vypnutie bzučiaka
}
Keď všetko funguje, môžete písať programy, ktoré implementujú algoritmy väčšej zložitosti. Napríklad, ak sa robot „bojí“ priblížiť k plameňu alebo výkonnej žiarovke, aby sa nezhoršil. A robí to správne, pretože držanie dosky senzora pri zdrojoch silného zahrievania vo vzdialenosti menšej ako 100 mm ju môže poškodiť.