- BH1750 ڈیجیٹل لائٹ سینسر ماڈیول کا تعارف
- اردوینو
- BH1750 لائٹ سینسر میں مداخلت کرنے کے لئے پروگرامنگ اردوینو
جب آپ اپنے فون کو دھوپ یا تیز روشنی میں لیتے ہیں تو پھر یہ خود بخود روشنی کے حالات کے مطابق چمک کو ایڈجسٹ کرتا ہے۔ ایک دن میں زیادہ تر ڈسپلے ڈیوائسز ، خواہ وہ ٹی وی ہو یا موبائل فون ، خود بخود چمک کو ایڈجسٹ کرنے کے لئے اپنے اندر محیطی لائٹ سینسر رکھیں۔ آج اس ٹیوٹوریل میں ، ہم ایسے ہی ایک سینسر BH1750 لائٹ سینسر ماڈیول کا استعمال کریں گے اور اسے ارڈینو کے ساتھ انٹرفیس کریں گے اور 16x2 LCD سے زیادہ لکس ویلیو دکھائیں گے۔
BH1750 ڈیجیٹل لائٹ سینسر ماڈیول کا تعارف
بی ایچ 1750 ایک ڈیجیٹل ماحولیاتی لائٹ سینسر یا لائٹ اینٹینسٹی سینسر ہے ، جس کا استعمال موبائلوں ، ایل سی ڈی ڈسپلے میں چمکنے کی روشنی کو خود کار طریقے سے ایڈجسٹ کرنے یا بیرونی روشنی کے حالات کی بنا پر کاروں میں ہیڈلائٹس کو آن / آف کرنے کے لئے کیا جاسکتا ہے۔
سینسر میں آئی 2 سی سیریل مواصلات پروٹوکول کا استعمال کرتا ہے جس کی وجہ سے مائکروکنٹرولرز کے ساتھ استعمال کرنا آسان ہوجاتا ہے۔ آئی 2 سی مواصلات کے لئے اس میں ایس ڈی آئی اور ایس ڈی اے پن ہیں۔ بی ایچ 1750 محیطی روشنی سینسر کا پن آؤٹ نیچے دکھایا گیا ہے:
اس سینسر کا آؤٹ پٹ LUX (lx) میں ہے ، لہذا اس کے لئے مزید حساب کتاب کی ضرورت نہیں ہے۔ لکس روشنی کی شدت کی پیمائش کرنے کا اکائی ہے۔ یہ کسی خاص علاقے پر روشنی ڈالنے کی مقدار کے مطابق شدت کی پیمائش کرتا ہے۔ ایک لکس فی مربع میٹر کے ایک لیمن کے برابر ہے۔
سینسر وولٹیجز پر 2.4V سے 3.6V (عام طور پر 3.0V) پر کام کرتا ہے اور یہ موجودہ 0.12mA کی کھپت کرتا ہے ۔ اس سینسر کی ایک وسیع رینج اور اعلی ریزولیوشن (1-65535lx) ہے اور اس کے علاوہ ، پیمائش کی تغیر بھی چھوٹی ہے (تقریبا + +/- 20٪)۔ یہ بیرونی جزو کے بغیر بھی آزادانہ طور پر کام کرسکتا ہے۔
اگرچہ ایل ڈی آر سینسر کو روشنی کے حالات کی بنیاد پر آلات کو کنٹرول کرنے کے لئے بھی استعمال کیا جاسکتا ہے لیکن یہ اتنا درست نہیں ہے۔ ہم نے بہت سے لائٹ کنٹرول ایپلی کیشنز بنانے کے لئے ایل ڈی آر سینسر کا استعمال کیا ہے۔
- ایل ڈی آر کا استعمال کرتے ہوئے اردوینو لائٹ سینسر سرکٹ
- ایل ڈی آر اور 555 ٹائمر آئی سی کا استعمال کرتے ہوئے ڈارک ڈٹیکٹر
- روشنی کا پتہ لگانے کے لئے سادہ ایل ڈی آر سرکٹ
- آر بی بی او ایل ڈی اور ایل ڈی آر کا استعمال کرتے ہوئے اردوینو کلر مکسنگ لیمپ
اردوینو
Ardino کے ساتھ BH1750 لائٹ سینسر کو مربوط کرنے کے لئے سرکٹ ڈایاگرام ذیل میں دکھایا گیا ہے۔
I2C مواصلات پن SDA اور BH1750 کے SCL I 2 C مواصلات کے لئے بالترتیب Ardino پن A4 اور A5 سے جڑے ہوئے ہیں ۔ جیسا کہ ہم جانتے ہیں کہ سینسر کے لئے آپریٹنگ وولٹیج 3.3v ہے لہذا بی سی 1750 کا وی سی سی اور جی این ڈی 3.3V اور ارڈینو کے جی این ڈی سے جڑا ہوا ہے۔ ایل سی ڈی کے ل data ، ڈیٹا پن (D4-D7) ڈیجیٹل پنوں سے مربوط ہیں Ardino کے D2-D5 اور RS اور EN پنوں D6 اور D7 اور Aruino سے منسلک ہیں۔ LCD کا V0 برتن سے منسلک ہوتا ہے اور LCD کی چمک کو کنٹرول کرنے کے لئے 10k برتن کا استعمال کیا جاتا ہے۔
BH1750 لائٹ سینسر میں مداخلت کرنے کے لئے پروگرامنگ اردوینو
اس LUX سینسر کو ارڈینو کے ساتھ استعمال کرنے کے لئے پروگرامنگ کا حصہ بہت آسان ہے۔ اگرچہ اس سینسر کے لئے ایک لائبریری دستیاب ہے ، لیکن ہم اسے اس کے بغیر بھی استعمال کرسکتے ہیں۔
سب سے پہلے ، ہم LCD اور I 2 C پروٹوکول کے لئے ہیڈر فائلوں کو شامل کر چکے ہیں ۔
# شامل کریں
میں سیٹ اپ کی تقریب، ہم LCD اور سینسر دونوں سے initialized اور LCD پر افتتاحی پیغام طباعت گئے ہیں.
باطل سیٹ اپ () { Wire.begin ()؛ lcd.begin (16،2)؛ lcd.print ("BH1750 لائٹ")؛ lcd.setCursor (0،1)؛ lcd.print ("شدت سینسر")؛ تاخیر (2000)؛ }
یہاں BH1750_Read اور BH1750_Init افعال بالترتیب لکس اقدار کو پڑھنے اور لکھنے کے لئے استعمال ہوتے ہیں۔ Wire.beginTransmission () تقریب ٹرانسمیشن شروع کرنے کے لئے استعمال کیا جاتا ہے اور Wire.requestFrom (پتہ، 2) تقریب رجسٹر جہاں 2 کے رجسٹر کی تعداد کی طرف اشارہ کرتا پڑھنے کے لئے استعمال کیا جاتا ہے.
مزید Wire.endTransmission () ٹرانسمیشن کو ختم کرنے کے لئے استعمال ہوتا ہے اور Wire.write () فنکشن اس رجسٹر کا ایڈریس درج کرکے مطلوبہ رجسٹر میں جانے کے لئے استعمال ہوتا ہے۔
INT BH1750_Read (INT ایڈریس) { میں = INT 0؛ Wire.beginTransmission (ایڈریس)؛ Wire.requestFrom (ایڈریس ، 2)؛ جبکہ (وائر. دستیاب ()) { بف = وائر۔ریڈ ()؛ میں ++؛ } Wire.endTransmission ()؛ میں واپس؛ } باطل BH1750_Init (INT ایڈریس) { Wire.beginTransmission (پتہ)؛ وائر ڈاٹ رائٹ (0x10)؛ Wire.endTransmission ()؛ }
میں لوپ تقریب ، ہم کر رہے ہیں LCD سے زیادہ حقیقی وقت لکس اقدار پرنٹنگ. پہلے BH1750_ ریڈ فنکشن سے ریٹرن ویلیو کا موازنہ 2 کے ساتھ کریں ، اور پھر لکس ویلیوز کی طباعت شروع کریں اگر یہ 2 کے برابر ہے۔ یہاں اقدار کا 2 سے موازنہ کیا جائے کیونکہ BH1750_ ریڈ فنکشن رجسٹر گنتی کی قیمت لوٹاتا ہے اور ہم صرف 2 رجسٹر پڑھ رہے ہیں۔ لہذا جب یہ 2 تک پہنچ جاتا ہے تو ، پروگرام روشنی کی شدت کے LUX قدروں کی پرنٹ کرنا شروع کردیتا ہے۔
پھر ایک فارمولہ استعمال کیا جاتا ہے تاکہ دونوں رجسٹروں سے اقدار حاصل کی جاسکیں اور ان کو 1.2 سے تقسیم کیا جاسکے ، جو پیمائش کی درستگی ہے۔
باطل لوپ () { int i؛ uint16_t ویلیو = 0؛ بی ایچ 1750_ انیت (بی ایچ 1750 ایڈریس)؛ تاخیر (200)؛ اگر (2 == بی ایچ 1750_ پڑھیں (بی ایچ 1750 ایڈریس)) { ویلیو = ((بف << 8) -بف) /1.2؛ lcd.clear ()؛ lcd.print ("LUX میں شدت")؛ lcd.setCursor (6،1)؛ lcd.print (value)؛ } تاخیر (150)؛ }
آخر میں ارڈینو کو طاقت بنائیں اور پروگرام کو ارڈینو میں اپ لوڈ کریں۔ جیسے ہی پروگرام اپ لوڈ ہوتا ہے LCD LUX یونٹوں میں روشنی کی شدت ظاہر کرنا شروع کردیتا ہے۔ ذیل میں ویڈیو میں دکھائے جانے والے سینسر کے گرد روشنی کی شدت کو تبدیل کرکے بھی آپ اقدار کو مختلف کرسکتے ہیں ۔