الوصف
وحدة استشعار الضوء المحيط الرقمية BH1750FVI
تستخدم هذه الوحدة المستشعر الرقمي BH1750FVI لقياس شدة الإضاءة المحيطة وإرسال القراءة الرقمية عبر واجهة I²C. وهي مناسبة لمراقبة مستوى الضوء ومشاريع ضبط سطوع الشاشات تلقائيًا وغيرها من النماذج الأولية التي تحتاج إلى قراءة الإضاءة المحيطة.
🔧 المواصفات المذكورة لهذه الوحدة
- المستشعر: BH1750FVI، مستشعر رقمي للضوء المحيط
- الواجهة: I²C
- نطاق القياس المذكور: 1–65,535 lx
- خطوة القياس عالية الدقة المذكورة: 1 lx
- التيار النموذجي المذكور: 0.12 mA
- تفاوت القياس المذكور: ±20%
- ذروة الحساسية الطيفية: نحو 560 nm
- رفض تشويش الإضاءة بتردد 50/60 Hz
- أبعاد اللوحة: 13.9 × 18.5 mm
ملاحظة الجهد: تذكر قائمة المنتج أن الوحدة مناسبة لأنظمة 3–5 V، لكن شريحة BH1750FVI نفسها محددة للعمل بجهد تغذية 2.4–3.6 V. تختلف لوحات التوصيل في وجود منظم الجهد ومحوّل مستويات إشارات I²C؛ لذلك تحقّق من علامات اللوحة أو وثائقها قبل تطبيق 5 V أو توصيل SDA وSCL بإشارات 5 V. استخدم منطق 3.3 V ما لم تتأكد من توافق اللوحة.
⚙️ القياس وعنوان I²C
تحوّل الشريحة الضوء الساقط إلى نتيجة رقمية من 16 bit. يحدد طرف ADDR أحد عنواني I²C: عند ADDR منخفضًا يكون العنوان 0x23، وعند ADDR مرتفعًا يكون 0x5C. قد تعرض بعض المكتبات العنوان بصيغة مختلفة أو بعد إزاحته. خطوة القياس الاسمية في وضع الدقة العالية هي 1 lx؛ وتعتمد القراءة وزمن التحويل على وضع القياس المختار.
💡 الاستخدامات الشائعة
- مراقبة الضوء المحيط
- التحكم التلقائي في سطوع الشاشات
- نماذج أولية للإضاءة والمنزل الذكي
- مشاريع Arduino والمتحكمات الدقيقة الأخرى
📌 أطراف الوحدة
- VCC: تغذية الوحدة؛ تحقّق من الجهد الذي تدعمه لوحة التوصيل المرفقة
- GND: الأرضي
- SDA: بيانات I²C
- SCL: ساعة I²C
- ADDR: اختيار عنوان I²C إذا كان موصولًا بطرف في اللوحة
🔌 مثال Arduino أساسي
نُبقي الشيفرة الأصلية أدناه. يهيئ المثال المستشعر ويطبع مستوى الضوء المقاس في Serial Monitor.
#include <Wire.h>
#include <BH1750.h>
BH1750 lightMeter;
void setup(){
Serial.begin(9600); // Initialiser la communication série
Wire.begin(); // Initialiser la communication I2C
lightMeter.begin(); // Initialiser le capteur BH1750
Serial.println("BH1750 Test"); // Message de test
}
void loop() {
float lux = lightMeter.readLightLevel(); // Lire la valeur de luminosité
Serial.print("Light: ");
Serial.print(lux);
Serial.println(" lx");
delay(1000); // Attendre 1 seconde avant la prochaine lecture
}
مكونات المثال الأساسي
- Arduino Uno
- وحدة مستشعر الضوء BH1750FVI
- أسلاك توصيل
التوصيلات الموضحة في المصدر
- VCC: 5 V في Arduino فقط إذا كانت لوحة التوصيل الفعلية تدعم ذلك صراحةً؛ وإلا فاستخدم 3.3 V
- GND: GND في Arduino
- SDA: A4 في Arduino Uno
- SCL: A5 في Arduino Uno
🌟 مثال متقدم مع شاشة I²C 1602
نُبقي مثال الشيفرة الأصلي الثاني أدناه. يقرأ المثال المستشعر في وضع الدقة العالية المستمر ويعرض النتيجة على شاشة I²C.
#include <Wire.h>
#include <BH1750.h>
#include <LiquidCrystal_I2C.h>
// Initialiser le capteur BH1750
BH1750 lightMeter;
// Initialiser l'écran LCD I2C à l'adresse 0x27 avec 16 colonnes et 2 lignes
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup(){
Serial.begin(9600); // Initialiser la communication série
Wire.begin(); // Initialiser la communication I2C
lightMeter.begin(BH1750::CONTINUOUS_HIGH_RES_MODE); // Initialiser le capteur en mode haute résolution continue
lcd.begin(); // Initialiser l'écran LCD
lcd.backlight(); // Allumer le rétroéclairage de l'écran LCD
lcd.print("BH1750 Test"); // Message de test
Serial.println("BH1750 Advanced Test"); // Message de test pour le Moniteur Série
}
void loop() {
float lux = lightMeter.readLightLevel(); // Lire la valeur de luminosité
lcd.setCursor(0, 0); // Positionner le curseur à la première ligne
lcd.print("Light: "); // Afficher le texte "Light:" sur l'écran LCD
lcd.setCursor(0, 1); // Positionner le curseur à la deuxième ligne
lcd.print(lux); // Afficher la valeur de luminosité sur l'écran LCD
lcd.print(" lx"); // Afficher l'unité de mesure "lx"
Serial.print("Light: ");
Serial.print(lux);
Serial.println(" lx");
delay(500); // Attendre 500 ms avant la prochaine lecture
}
التوصيلات الموضحة في المصدر
- VCC للمستشعر: 5 V في Arduino فقط عند دعم اللوحة الفعلية لذلك؛ وإلا فاستخدم 3.3 V
- GND للمستشعر: GND في Arduino
- SDA/SCL للمستشعر: A4/A5 في Arduino Uno
- VCC/GND للشاشة: وصّلهما وفق جهد التشغيل المحدد لوحدة الشاشة
- SDA/SCL للشاشة: يمكن مشاركتهما مع المستشعر على ناقل I²C بشرط توافق الجهد ومقاومات السحب
يشترك الجهازان في خطي بيانات وساعة I²C، لكن يجب أن تتوافق مقاومات السحب مع جهد المنطق في المتحكم. تحقّق من مخطط الأطراف وإعدادات المكتبات قبل تشغيل الدائرة.









