آردوینو - آموزش آردوینو-Arduinoتازه ها

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

ماژول 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 به آردوینو

Arduino
(Nano, Uno, Pro Mini)
Arduino
(Mega, Mega 2560)
GY-30
BH1750FVI breakout board
5V oder 3.3V (VCC) 5V oder 3.3V (VCC) VCC
GND GND GND
A4 (SDA) D20 (SDA) SDA
A5 (SCL) D21 (SCL) SCL

برنامه راه اندازی ماژول ماژول نوری 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;
}

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

 

نوشته های مشابه

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

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

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

دکمه بازگشت به بالا