Giriş
Məsafə və rəng aşkarlanması üçün bir İR LED və bir foto diod istifadə olunur. İR LED (ötürücü) IR işığı yayır, o işıq cisim tərəfindən əks olunur, əks olunan işıq bir IR qəbuledicisi tərəfindən qəbul edilir (Foto Diod). Yansıma və qəbul miqdarı məsafəyə görə dəyişir. Bu fərq IR giriş yolu ilə giriş gərginliyində dəyişməyə səbəb olur. Giriş gərginliyindəki bu dəyişmə məsafənin aşkarlanması üçün istifadə olunur.
Səth uducu olduqda (məsələn, qara rəngdə) IR siqnal əks olunmur və obyekt sensor tərəfindən aşkar edilə bilməz. Bu nəticə obyekt olmadıqda da baş verəcəkdir.
IR ötürücüsü, infraqırmızı tezlikli diapazonda şüalanma yayan, gözə görünməyən bir LED-dir. İnfraqırmızı bir LED sadəcə 3V DC gərginliyi və cari sərfiyyatı təxminən 20mA olan sadə bir LED olaraq işləyir. Bir fotodiod və ya bir fototransistor kimi IR qəbuledicisi, IR ötürücüsündən yayılan infraqırmızı şüalanmanı aşkar etməyə qadirdir. Görünüş cəhətdən bir LEDə bənzəyir, lakin xarici kapsul tünd rəngli bir örtük ilə sarıla bilər.
İnfraqırmızı işıq yayan diod (IR LED) İnfraqırmızı diapazonda 700 nanometrdən (nm) 1 mm-ə qədər işıq yayır. Bu işıq birbaşa gözlə görünmür, ancaq bir kamera tərəfindən görünə bilər (buna görə də bunlar gecə görmə kameralarında da istifadə olunur).
Bir foto diod, işığın üzərinə düşəndə müqavimətin dəyişməsi müddətində cavab verir. Bu dəyişiklik gərginlik olaraq ölçülür.
Bir obyekt, bir infraqırmızı ötürücü və bir qəbuledicidən ibarət olan bir infraqırmızı sistemlə aşkar edilə bilər. Daha ətraflı, IR LED olaraq da bilinən, müəyyən bir tezlikdə infraqırmızı siqnal göndərən İR ötürücüsü və onu aşkar etmək vəzifəsi olan bir IR qəbuledicisi ,infraqırmızı LED sisteminin əsasını təşkil edir . Fərqli tətbiq növləri üçün fərqli İR sensorlar var.
İş prinsipi
Rəng aşkarlanması üçün: Əks edilən işığın miqdarı əks edən səthin rəngindən asılıdır. Fərqli rəngli səthlər üçün əks fərqlidir. Bu onu rəng detektoru halına gətirir.
Bu təlimdə bir IR (İnfraqırmızı) Modulunun necə işlədiyini və Arduino Uno ilə necə interfeysləşəcəyini (xəbərləşəcəyini) izah edəcəyik.
IR Modulu
Bu sensor , maneə təyin etmə, rəng aşkarlanması (əsas ziddiyyətli rənglər arasında), yanğın aşkarlanması, xətt təyin etməsi və s. üçün istifadə edilə bilən və həmçinin kodlayıcı sensor kimi istifadə edilə bilən çoxfunksiyalı infra qırmızı sensordur. Sensorun bir rəqəmsal çıxışı var. Sensor qarşısında bir cisim yerləşdirildikdə rəqəmsal çıxışda məntiqi bir (+ 5V), sensorun qarşısında heç bir cisim olmadıqda, rəqəmsal çıxışda məntiqi sıfır (0V) olur. Obyektin varlığını göstərmək üçün kartda olan LED istifadə olunur. Sensor çıxışını oxumaq üçün bu rəqəmsal çıxış birbaşa Arduino, Raspberry Pi, AVR, PIC, 8051 və ya hər hansı digər mikrokontroller qoşula bilər.
İR sensorları ətraf mühit işığına çox həssasdır və ətraf mühit işığının sensora təsirini azaltmaq üçün bu sensor uyğun olaraq örtülmüşdür. T maksimum dəyər üçün və sensoru kalibrləmək üçün moduldakı potensiometrdən istifadə olunmalıdır. Potensiometr ayarlamaq üçün bir vintaçan istifadə edin və çıxış LED sadəcə sönənə qədər potensiometrini çevirin.
Xüsusiyyət-
- Maneə sezgisi, rəng aşkarlanması (əsas ziddiyyətli rənglər arasında), yanğın aşkarlanması, xətt sezgisi və s. üçün, həmçinin kodlayıcı sensor kimi istifadə edilə bilər.
- Giriş gərginliyi: 5V DC
- Rəqəmsal çıxışı asanlıqla istifadə edilə bilir
- Simsiz rabitə və həssas IR sensor uzaqdan gələn siqnallarıtəyin etmək üçün istifadə edilə bilər. Sensor ətraf işıqdan qorunma xüsusiyyətinə sahibdir.
- Sensoru asan montaj üçün etmək üçün 3 mm diametrli bir deşik var.
Sensorun üç və dörd çıxışlı versiyaları var
- +5V VCC
- GND
- D0 or OUT (Rəqəmsal çıxış)
- A0 — Analoq çıxış
IR Modulunun dövrəsi
Arduino ilə IR Proximity sensorun qoşulması çox sadədir, sensorun qarşısında heç bir maneə olmadıqda çıxış “0”, qarşısında maneə qoyulursa çıxış “1” olacaq. digitalRead əmrini istifadə edərək bu məntiqi dəyişiklikləri arduino-da oxumaq lazımdır. Dövrəmdə modulun çıxışını Arduino’nun 2-ci pininə bağladım. İstədiyinizə uyğun olaraq hər hansı digər IO xəttindən istifadə edə bilərsiniz.
Kod
Rəqəmsal çıxışı oxumaq üçün arduino kodunu buradan yükləyə bilərsiniz.
const int ProxSensor=2; int inputVal = 0; void setup() { pinMode(13, OUTPUT); // Pin 13 has an LED connected on most Arduino boards: pinMode(ProxSensor,INPUT); //Pin 2 is connected to the output of proximity sensor Serial.begin(9600); } void loop() { if(digitalRead(ProxSensor)==HIGH) //Check the sensor output { digitalWrite(13, HIGH); // set the LED on } else { digitalWrite(13, LOW); // set the LED off } inputVal = digitalRead(ProxSensor); Serial.println(inputVal); delay(1000); // wait for a second }
Analoq çıxışı oxumaq üçün arduino kodunu buradan yükləyə bilərsiniz.
const int ProxSensor=A0; int inputVal = 0; void setup() { pinMode(13, OUTPUT); // Pin 13 has an LED connected on most Arduino boards: pinMode(ProxSensor,INPUT); //Pin 2 is connected to the output of proximity sensor Serial.begin(9600); } void loop() { if(digitalRead(ProxSensor)==HIGH) //Check the sensor output { digitalWrite(13, HIGH); // set the LED on } else { digitalWrite(13, LOW); // set the LED off } inputVal = analogRead(ProxSensor); Serial.println(inputVal); delay(1000); // wait for a second }
Test
- Cismi IR yaxınlıq sensorunun önünə qoyun və Pin 13-ə (kartdakı LED ) bağlı olan LED-in dəyişikliyini müşahidə edin.
- Cismi sensorun önündən aldığınız zaman onun söndüyünü görəcəksiniz.
Çıxış
Sensor qarşısında bir cisim yerləşdirildikdə,sensor rəqəmsal çıxışda 1 (+ 5V) bir,sensorun qarşısında heç bir obyekt olmadıqda, sensor rəqəmsal çıxışda 0 (0V) çıxarır.
Rəqəmsal çıxış üçün
![](https://electron-x-lab.com/wp-content/uploads/2020/06/image-74.png)
Analoq çıxış üçün eyni şeyi edin. Arduino 0-1023 aralığında bir analoq siqnal göstərəcək.
IR Sensoru FC-51
Nümunələrimizdə istifadə olunan sensor FC-51 modelidir. İnternetdə asanlıqla tapılan, 3 AZN -dən az olan, ucuz bir sensordur, lakin təəssüf ki, məlumat cədvəlini tapa bilmədik. Hər halda, əlaqəli elektron dövrənin işini izah edəcəyik və sonradan işləməsini sınamaq üçün bəzi nümunələr qeyd edəcəyik.
Pin və sxem
Modulun 3 bağlantı pini var:
- Vcc 3-5V DC enerji təchizatı üçün;
- Gnd pini (0V);
- Out sensorun rəqəmsal çıxış siqnalı üçün.
Bu sensor, obyektləri 2 ~ 30 sm arasındakı məsafədə aşkar edir. Potansiometr ilə həssaslığı və ətraf mühit şəraitinə (məsələn, parlaqlığa) görə həssaslığı kalibr edə bilərsiniz. IC LM393, IC (DO) çıxışı və enerji təchizatı Vcc (R = 10KΩ) arasında bir “pullup” R varsa, çıxışı açıq kollektorludur . Çıxış DO:
- obyekt aşkarlanmasa “bir”;
- obyekt aşkar edilərsə “sıfır”.
FC-51 İR sensoruna nümunələr
Serial terminalda FC-51 IR sensorunu testi (nümunə 01)
Birinci nümunədə, Arduino serial portu və PC arasındakı bağlantı vasitəsi ilə obyektin aşkarlanması haqqında məlumat verək:
Bu nümunənin tələb olunan addımlarına nəzər salaq:
- Sensorun OUT pinini şəkildə göstərilmiş OUT IR adlanan Arduino-nun 2 nömrəli pininə bağlayırıq.
- setup() funksiyası əsas döngüdən(loop()) əvvəl yalnız bir dəfə yerinə yetirilir. Buraya Arduino üçün serial portu təmin edən və rəqəmsal pin 2-ni giriş olaraq təyin edən başlanğıc kodu daxil edirik.
- loop () əsas funksiyadır və Arduino lövhəsini söndürənə qədər dövri olaraq təkrarlanır. Əvvəl analiz edilən elektron dövrənin işini C dilində çeviririk. Dəyişən aşkarlanmada digitalRead funksiyası ilə IR pin-dən götürülmüş dəyəri oxuyuruq, sensorun önündə obyekt yoxdursa dəyər az olacaq, əksinə obyekt varsa yüksək olacaq.
- Kodumuza nəzər salaq:
#define IR 2 int detection = HIGH; // no obstacle void setup() { Serial.begin(9600); pinMode(IR, INPUT); } void loop() { detection = digitalRead(IR); if(detection == LOW){ Serial.print("There is an obstacle!\n"); } else{ Serial.print("No obstacle!\n"); } delay(500); // in ms }
IR sensoru FC-51 və LED (nümunə 02)
Bu demoda, IR sensorunun hər bir əməliyyat vəziyyətinə bir giriş ilə əlaqələndiririk. Tələb olunan komponentlər:
- IR sensoru FC-51;
- 3 x yaşıl LED;
- 3 x R=150Ω;
- 3 x ağ LED;
- 3 x R=100Ω;
- 3 x qırmızı LED;
- 3 x R=160Ω.
Unutmayın ki, I / O pinlər maksimum 40mA , cəmi pinlər maksimum 200mA-a qədər çıxış verə bilər ( ATmega328P məlumat cədvəlinə baxın).
Bu nümayişin tələb olunan addımlarına nəzər salaq:
- Sensorun OUT pinini Arduinonun 2 nömrəli pininə bağlayırıq. 3-dən 11-ə qədər LedPIN adlanan, LED-lərin rəqəmsal pinlərini sıra ilə təyin edirik.
- setup() funksiyası əsas döngüdən əvvəl yalnız bir dəfə yerinə yetirilir. Daha öncə görülən başlanğıcdan əlavə, 9 LED-i bir döngüdən istifadə edərək çıxış olaraq adlandırırıq.
- loop() funksiyası əsas funksiyadır və Arduino lövhəsini söndürənə qədər dövri olaraq təkrarlanır. Dəyişən aşkarlanmada digitalRead () funksiyası ilə pin IR-dən götürülmüş dəyəri oxuyuruq. Bir obyekt varsa, bu dəyər aşağı ola bilər və ya obyekt yoxdursa yüksək ola bilər. Bu döngüni hər millisaniyədə edirik.
Kodumuza nəzər salaq:
#define IR 2 // digital pin input for ir sensor int detection = HIGH; // no obstacle int i = 0; // array digital pin for: green led(3,4,5) - white led (6,7,8)- red led (9,10,11) int LedPIN[] = {3, 4, 5, 6, 7, 8, 9, 10, 11}; void setup() { pinMode(IR, INPUT); for(i = 0; i < 9; i++){ pinMode(LedPIN[i], OUTPUT); } } void loop() { detection = digitalRead(IR); if(detection == LOW){ BlinkLED(); } else{ LedOFF(); } delay(1); }