Jutiklis, kurį pasiūlė „Instructables“ slapyvardžiu AdnanA61, leidžia aptikti trumpųjų bangų infraraudonąją spinduliuotę iš tokių šaltinių kaip nuotolinio valdymo pultai, ugnis, kaitrinės lempos ir saulė. Jis nereaguoja į kitą infraraudonosios spinduliuotės formą - ilgojo bangos, kurios šaltiniai yra visi objektai, įkaitinti iki įprastos temperatūros. Naminis sukuria dviejų tipų signalus: analoginius ir diskrečius, antrąjį iš jų sudaro komparatorius, kurio slenkstis yra reguliuojamas. Abu signalai gali būti taikomi abiem Arduino, ir kitiems įrenginiams su mikrovaldikliu arba be jo. Toliau pateiktas kitas plokštės dizainas, grandinė nesiskiria:
Jutiklis pagamintas ant vieno iš dviejų LM393 mikroschemų komparatorių, antrasis gali būti naudojamas norint išspręsti kitą problemą. Jei jo nenaudosite, geriau abu jo įėjimus sujungti bendru laidu, o išvestį palikti nesujungtą.
Schema sukurta taip, kad ją skaityti nėra labai patogu. Trys taškai, pažymėti kaip A0, turi būti sujungti. Du taškai, taip pat pažymėti kaip D0. Taigi tampa aišku, kas su kuo susijęs ir kaip tai veikia. Jokių mįslių. Surinkę jutiklį iš dizainerio, šukos ant lentos, esančios komplekte, bus tokios:
Aišku, ant pakeliamosios lentos, atspausdintos ar išklotos lentos, šis ponas gali būti pagamintas taip, kad būtų patogus jums. Galite patikrinti, ar plokštė veikia, ir iš karto po surinkimo sureguliuoti palyginamąjį slenkstį, tiesiog tiekdami energiją, naudodamiesi įmontuotu šviesos diodu. Antrasis šviesos diodas nuolat šviečia, kai įjungtas maitinimas. Tada galite prijungti jutiklį prie Arduino ir išbandyti analoginį išėjimą naudodami šį eskizą:
// nukopijuokite kodą arduino ide iš šios eilutės
// pastaba: - šis kodas skirtas analoginei vertei
vidinis jutiklis = A0; // analoginio kaiščio inicijavimas
vidinis garsinis signalas = 3; // inicializuoja skambėjimo signalą
vidinė vertė;
negaliojanti sąranka () {
„Serial.begin“ (9600);
pinMode (jutiklis, INPUT); // darant prielaidą, kad kaiščio režimo kaištis yra įvestis arba išvestis
pinMode (garsinis signalas, OUTPUT);
}
tuščia kilpa () {
reikšmė = analogRead (jutiklis); // nuskaitymas iš jutiklio
vertė = žemėlapis (vertė, 0,1023,0,255); // atvaizduojant reikšmę nuo 0 iki 1023 b / w nuo 0 iki 255
„digitalWrite“ (garsinis signalas, vertė); // garsinio signalo įjungimas arba išjungimas pagal suplanuotą vertę
}
Ir skaitmeninis - su kitu eskizu:
// nukopijuokite kodą arduino ide iš šios eilutės
// pastaba: - šis kodas skirtas skaitmeninei vertei
int jutiklis_digital = 2; // skaitmeninio kaiščio inicijavimas
vidinis garsinis signalas = 3;
vidinė vertė;
negaliojanti sąranka () {
„Serial.begin“ (9600);
pinMode (sensor_digital, INPUT);
pinMode (garsinis signalas, OUTPUT);
}
tuščia kilpa () {
reikšmė = digitalRead (sensor_digital); // skaitmeninio duomenų nuskaitymas iš jutiklio
„digitalWrite“ (garsinis signalas, vertė); // garsinio signalo įjungimas arba išjungimas
}
Kai viskas veikia, galite rašyti programas, kurios įgyvendina sudėtingesnius algoritmus. Pvz., Jei robotas „bijo“ artintis prie liepsnos ar galingos kaitrinės lempos, kad nepablogėtų. Ir jis elgiasi teisingai, nes jutiklio plokštę laikydami prie stiprios kaitros šaltinių mažesniu kaip 100 mm atstumu, galite ją sugadinti.