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

   
نام نویسنده:
 چهارشنبه 3 آذر 95 ساعت: 11:15:00

ماژول 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;
  

  }

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

منبع:eca

اخبار مرتبط

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

ارسال نظر


  • Farhad
    2017-10-29 22:43:45

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

    پاسخ دادن
  • مجتبی
    2017-02-07 01:27:40

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

    پاسخ دادن
شخصی سازیClose
شما در این صفحه قادر به شخصی سازی نمیباشید