Сензорът, предложен от Instructables под псевдоним AdnanA61, ви позволява да откривате инфрачервено лъчение на къси вълни от източници като дистанционно управление, пожар, лампи с нажежаема жичка и слънце. Той не реагира на друга форма на инфрачервено лъчение - дълговълнова, чиито източници са всички обекти, загряти до обикновени температури. домашно приготвени продукти произвежда два вида сигнали: аналогови и дискретни, вторият от тях се формира от сравнител, прагът на който се прави регулируем. И двата сигнала могат да бъдат приложени както към Arduinoи към други устройства с или без микроконтролер. Следва друг дизайн на дъската, веригата не е различна:
Сензорът е направен на един от двата сравнителя на микросхемата LM393; вторият може да се използва за решаване на друг проблем, ако желаете. Ако не го използвате, по-добре е да свържете и двата му входа с общ проводник, а изходът да остане без връзка.
Схемата е проектирана така, че да я четете не е много удобно. Три точки, обозначени като A0, трябва да бъдат свързани помежду си. Две точки, обозначени като D0 - също. Така става ясно с какво е свързано и как работи. Без гатанки. Ако сглобите сензора от дизайнера, щифтът на гребена на дъската, включена в комплекта, ще бъде както следва:
Разбира се, на импровизирана дъска, отпечатана или дъска, това изрязване може да бъде направено така, че да е удобно за вас. Можете да проверите платката в действие и да регулирате прага на компаратора веднага след монтажа, просто като подадете мощност, благодарение на светодиода на борда. Вторият светодиод свети непрекъснато, когато захранването е включено. След това можете да свържете сензора към Arduino и да тествате аналоговия изход с тази скица:
// копирайте този код в идеята на arduino от този ред
// забележка: - този код е за аналогова стойност
int сензор = A0; // инициализиране на аналоговия щифт
int зумер = 3; // инициализиране на щифт на зумер
int стойност;
настройка за невалидност () {
Serial.begin (9600);
pinMode (сензор, INPUT); // присвояване на типа пинов режим на пина като вход или изход
pinMode (зумер, изход);
}
void loop () {
стойност = analogRead (сензор); // четене на валуса от сензора
стойност = карта (стойност, 0.1023,0255); // картографиране на стойността от 0 до 1023 b / w 0 до 255
digitalWrite (зумер, стойност); // включване или изключване на зумера чрез картографираната стойност
}
И цифров - с друга скица:
// копирайте този код в идеята на arduino от този ред
// забележка: - този код е за цифрова стойност
int sensor_digital = 2; // инициализиране на цифровия щифт
int зумер = 3;
int стойност;
настройка за невалидност () {
Serial.begin (9600);
pinMode (sensor_digital, INPUT);
pinMode (зумер, изход);
}
void loop () {
value = digitalRead (sensor_digital); // четене на цифровия DAT от сензора
digitalWrite (зумер, стойност); // включване или изключване на зумер
}
Когато всичко работи, можете да напишете програми, които прилагат алгоритми с по-голяма сложност. Например, за робот, който се "страхува" да се приближи до пламък или мощна лампа с нажежаема жичка, за да не се влоши. И той прави правилно, тъй като задържането на сензорната платка към източници на силно загряване на разстояние по-малко от 100 мм може да я повреди.