ماژول GY-30 در واقع یک برد راه انداز سنسور BH1750 می باشد . این ماژول قابلیت اندازه گیری شدت نور محیط را دارد که دارای یک واحد ADC داخلی با دقت 16 بیت است . به طور کلی برای اندازه گیری نور محیط در سیستم های امبدد گزینه های زیادی وجود دارد . مانند استفاده از فوتوسل ها . اما این ماژول شدت نور را بر حست لوکس به دست می دهد لذا بسیار دقیق تر از فوتوسل ها عمل می کنند . از سنسو BH1750 در تجهزات پزشکی و همچنین در گجت های پرتابل به طور گسترده استفاده می شود . BH1750 قابلیت اندزه گیری نور محیط در بازه 0 تا 65535 لوکس را دارد که علاوه بر دقت بالا ، حساسیت بسیار کمی به نو IR دارد . رابط ارتباطی این ماژول I2C می باشد که امکان راه اندازی از طریق تنها دوپین را فراهم می سازد . در این آموزش راه اندازی این ماژول را شرح خواهیم داد .
در این آموزش ما از کتابخانه خاصی استفاده نمی کنیم و تنها از طریق ارتباط I2C ماژول را کانفیگ و سپس مقادیر را از ماژول دریافت می خواهیم کرد .
برای ارتباط I2C در آردوینو از کتابخانه Wire استفاده می شود . به راحتی توسط این کتابخانه می توانید متغیر های مختلف را از طریق I2C به ماژول خود ارسال کنید و یا مقادیری را از ماژول دریافت کنید .
برنامه آردوینو :
کد های زیر را در آردوینو IDE کپی و سپس بر روی برد خود آپلود کنید :
#include <Wire.h>
// GY-30
// BH1750FVI
// in ADDR 'L' mode 7bit addr
#define ADDR 0b0100011
// addr 'H' mode
// #define ADDR 0b1011100
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}
Wire.begin();
Wire.beginTransmission(ADDR);
Wire.write(0b00000001);
Wire.endTransmission();
}
void loop() {
// put your main code here, to run repeatedly:
int val = 0;
// reset
Wire.beginTransmission(ADDR);
Wire.write(0b00000111);
Wire.endTransmission();
Wire.beginTransmission(ADDR);
Wire.write(0b00100000);
Wire.endTransmission();
// typical read delay 120ms
delay(120);
Wire.requestFrom(ADDR, 2); // 2byte every time
for (val = 0; Wire.available() >= 1; ) {
char c = Wire.read();
//Serial.println(c, HEX);
val = (val << 8) + (c & 0xFF);
}
val = val / 1.2;
Serial.print("lx: ");
Serial.println(val);
Serial.println("OK");
delay(100);
}
اتصال ماژول به آردوینو :
ماژول خود را همانند تصویر زیر به برد خود متصل کنید :
پس از اتصال ماژول به آردوینو و پروگرام کردن آن ، وارد Serial monitor آردوینو IDE خود شوید . مقادیر اندازه گیری شده همانند تصویر پایین در این قسمت چاپ می شوند :



سلام ببخشید من اجرا کردم در شدت نور های مختلف همه رو صفر تشون میده