ماژول 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 خود شوید . مقادیر اندازه گیری شده همانند تصویر پایین در این قسمت چاپ می شوند :

Tags:
About Author: USER_4