راه اندازی ماژول نوری GY-30 با آردوینو

راه اندازی ماژول نوری GY-30 با آردوینو

ماژول BH1750 یک برد مجهز به سنسور حساس به شدت نور است که دارای یک مبدل AD شانزده بیتی است.

ماژول BH1750 یک برد مجهز به سنسور حساس به شدت نور است که دارای یک مبدل AD شانزده بیتی است. این ماژول می تواند مستقیما سیگنال دیجیتال در خروجی ایجاد کند. راه ارتباطی این ماژول رابط سریال I2C می باشد. این ماژول برای تشخیص میزان نور محیط با دقت و رزولوشن بالا مناسب بوده و داده های خروجی آن بصورت lx (لوکس متر) می باشد. همچنین این ماژول به راحتی به وسیله آردوینو قابل راه اندازی است.

مشخصات فنی ماژول GY-30 سنسور دیجیتال سنجش شدت نور

Digital Light intensity detection module: GY-30 Chip : BH1750FVI
Power supply: 3V-5V power
Light range :0-65535 lx
Sensor built-in : 16 bitAD converter
Direct digital output, bypassing the complex calculation, bypassing the calibration
Don’t distinguish between ambient light
Close to the spectral characteristics of visual acuity
widely use to 1-lux high precision measurement
Standard NXP I2C communication agreement

این برد یک Breakout Board ساده برای سنسور BH1750FVI است که می توانید از آن به عنوان لوکس متر استفاده کنید هچنین از این ماژول می توانید برای اتوماسیون و سنجش نور اتاق ، گلخانه  و هرجایی که نیاز به سنجش میزان نور باشد به کار برد.

ابزار مورد نیاز برای راه اندازی ماژول نوری GY-30

  •     برد آردوینو UNO یا برد های مشابه
  •     ماژول نوری GY-30 با آردوینو
  •     برد برد
  •     سیم برد بردی

برنامه راه اندازی ماژول ماژول نوری GY-30 با آردوینو

#include <Wire.h>
  

   
  

  int BH1750_address = 0x23; // i2c Addresse
  

  byte buff[2];
  

   
  

  void setup(){
  

   
  

    Wire.begin();
  

    BH1750_Init(BH1750_address);
  

   
  

    delay(200);
  

    Serial.begin(9600);
  

    Serial.println("Starte Beleuchtungsstaerkemessung - blog.simtronyx.de");
  

  }
  

   
  

  void loop(){
  

   
  

    float valf=0;
  

   
  

    if(BH1750_Read(BH1750_address)==2){
  

      
  

      valf=((buff[0]<<8)|buff[1])/1.2;
  

      
  

      if(valf<0)Serial.print("> 65535");
  

      else Serial.print((int)valf,DEC);
  

      
  

      Serial.println(" lx");
  

    }
  

    delay(1000);
  

  }
  

   
  

  void BH1750_Init(int address){
  

   
  

    Wire.beginTransmission(address);
  

    Wire.write(0x10); // 1 [lux] aufloesung
  

    Wire.endTransmission();
  

  }
  

   
  

  byte BH1750_Read(int address){
  

   
  

    byte i=0;
  

    Wire.beginTransmission(address);
  

    Wire.requestFrom(address, 2);
  

    while(Wire.available()){
  

      buff[i] = Wire.read();
  

      i++;
  

    }
  

    Wire.endTransmission();  
  

    return i;
  

  }

 خروجی برنامه بر روی پورت سریال

نگاه دیگران

نگاه دیگران

نگاه دیگران نگاهی است از دنیای گسترده صفحات گوناگون اینترنت که منتخبی از آن‌ها را در پایگاه خبری چهره و اخبار مشاهده میکنید.


2 نظر درباره‌ی این پست نوشته شده است.

مجتبی

سه‌شنبه, 19 بهمن 1395

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

پاسخ

Farhad

یک‌شنبه, 07 آبان 1396

سلام اگه بخوابم بجای پورت سریال تو شیلد lcd نشون بده چه کدی باید نوشت

پاسخ

ثبت نظر