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