آموزش راه اندازی ماژول سنسور تشخیص مجاورت و نور محیط APDS-9930 با آردوینو

فهرست مطالب

ویژگی های ماژول سنسور تشخیص مجاورت و نور محیط APDS-9930

این ماژول متشکل از سنسور نور محیط، سنسور IR و مجاورت می‌باشد. تشخیص مجاورت این سنسور تا فاصله 100 میلی‌متر است. سنسور تشخیص نور محیط APDS-9930، نور محیط اطراف را اندازه‌گیری می‌کند. این سنسور در تاریکی با مقدار روشنایی 0.01 لوکس (lux) نیز قابلیت تشخیص دارد. همچنین از آن می‌توان در پشت شیشه‌ی تیره مانند صفحه‌ی موبایل استفاده کرد. برای مثال خاموش شدن صفحه موبایل هنگام نزدیک کردن آن به گوش، از موارد اسفاده از این سنسور است.
از کاربردهای این سنسور می‌توان به تنظیم نور صفحه موبایل و پاسخ نوری مناسب برای کاربردهای گوناگون نام برد.

نکته

ماژول سنسور تشخیص مجاورت و نور محیط APDS-9930، فقط در ولتاژ 2.4 تا 3.6 ولت عمل می‌کند.

دیتاشیت آی سی APDS-9930 را می توانید از اینجا دانلود کنید.

معرفی پایه های (Pinout) ماژول سنسور تشخیص مجاورت و نور محیط APDS-9930

ماژول سنسور تشخیص مجاورت و نور محیط APDS-9930 دارای 6 پایه به شرح زیر است:

  • VCC: تغذیه ماژول – 2.4 تا 3.6 ولت
  • GND: زمین
  • VL: توان انتخابی IR LED
  • SDA: سیگنال دیتا I2C
  • SCL: سیگنال کلاک I2C
  • INT: پین اینتراپت

پین اوت (Pinout) این ماژول را می توانید در تصویر زیر مشاهده کنید.

لوازمی که به آن احتیاج دارید

قطعات مورد نیاز

آردوینو UNO R3 × 1
ماژول سنسور تشخیص مجاورت و نور محیط APDS-9930 × 1
سیم جامپر نری-مادگی × 1

نرم افزارهای مورد نیاز

آردوینو IDE

راه اندازی ماژول سنسور تشخیص مجاورت و نور محیط APDS-9930 با آردوینو

گام اول: سیم بندی

مطابق مدار زیر، سنسور را به آردوینو وصل کنید.

گام دوم: نصب کتابخانه

فایل APDS9930-master را دانلود کرده و در قسمت Library محل نصب نرم‌افزار آردوینو کپی کنید.

 

توجه

اگر نیاز به راهنمایی بیشتر در مورد نصب کتابخانه بر روی آردوینو دارید، می توانید به اینجا مراجعه کنید.

گام سوم: کد

کد زیر را روی برد آردوینو آپلود کنید.

  /*
  APDS-9930-Proximity-And-Ambient-Light
  modified on 02 Nov 2020
  by Amir Mohammad Shojaee @ Electropeak
  
Home
Based on Github.com Library Example */ #define DUMP_REGS #include <Wire.h> #include <APDS9930.h> // Global Variables APDS9930 apds = APDS9930(); float ambient_light = 0; // can also be an unsigned long void setup() { // Initialize Serial port Serial.begin(9600); Serial.println(); // Initialize APDS-9930 (configure I2C and initial values) if ( apds.init() ) { Serial.println(F("APDS-9930 initialization complete")); } else { Serial.println(F("Something went wrong during APDS-9930 init!")); } // Start running the APDS-9930 light sensor (no interrupts) if ( apds.enableLightSensor(false) ) { Serial.println(F("Light sensor is now running")); } else { Serial.println(F("Something went wrong during light sensor init!")); } // Wait for initialization and calibration to finish delay(500); } void loop() { // Read the light levels (ambient, red, green, blue) if ( !apds.readAmbientLightLux(ambient_light)) { Serial.println(F("Error reading light values")); } else { Serial.print(F("Ambient: ")); Serial.println(ambient_light); } // Wait 1 second before next reading delay(1000); }

در برنامه فوق از رابط I2C برای برقراری ارتباط با آردوینو استفاده شده است. در ابتدای برنامه کتابخانه‌ها فراخوانی شده‌اند. در ادامه نور محیط را اندازه‌گیری کرده و آن را در Serial Monitor  نمایش می‌دهد.

عکس زیر خروجی Serial Monitor می‌باشد. ابتدا دست خود را به سمت سنسور می‌بریم. همانطور که مشاهده می‌شود نور محیط کاهش می‌یابد. سپس نور موبایل را به سنسور نزدیک می‌کنیم. می‌بینیم که خروجی Serial Monitor به شدت افزایش می‌یابد.

آموزش های مشابه

Comments (4)

  • احسان Reply

    سلام
    ببخشید من اینو ران میکنم دائم میگه Error reading light values همچی هم چک کردم نمی دونم مشکل چیه؟

    می 6, 2021 at 8:20 ب.ظ
    • مهران ملکی Reply

      سلام.
      برنامه i2cscanner رو که میتونید تو قسمت file -> examples -> Wire -> i2c_scanner نرم‌افزار آردوینو پیدا کنید، اجرا کنید. ببینید که آیا آدرسی بر میگردونه یا خیر. اگر آدرسی برنگشت ممکنه یا سیم‌های SCL و SDA رو برعکس زده باشید و یا اینکه ماژول ایراد داشته باشه. اگر آدرس برنگشت سیم‌های SDA و SCL رو جا به جا کنید و دوباره تست کنید.

      می 8, 2021 at 12:39 ب.ظ
  • حسین Reply

    با سلام برای تشخیص مجاورت پشت lcd بزاریم هیچ نوری بهش نرسه میشه ازش استفاده کرد؟

    فوریه 7, 2024 at 1:59 ق.ظ
    • محمد دمیرچی Reply

      با سلام
      این ماژول در شرایطی پشت نمایشگر میذارن که بعد از لایه دیفیوزر قرار داده شده باشد. کاری که تولید کنندگان گوشی میکنند.
      برای استفاده در نمایشگر های معمولی که شما میخواهید استفاده کنید. باید خود سنسور بیرون نمایشگر باشد تا دید به فضای روبرو داشته باشد. وگرنه فاصله خود سنسور تا نمایشگر را اندازه گیری میکند.

      فوریه 7, 2024 at 10:03 ق.ظ

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.