آرڈوینو کوڈ اور ویڈیو برائے لائٹ سینسر ماجیول بمعہ ریلے
اس ٹیوٹوریل میں، ہم سیکھیں گے کہ لائٹ سینسر ماجیول کا استعمال کرتے ہوئے اے سی لائٹ کو کیسے کنٹرول کیا جائے۔ یہ پروجیکٹ لائٹ کو خود بخود آن کرنے کے قابل بنائے گا جب اندھیرا ہو اور جب روشنی ہو تو بند کر دے گا۔ یہ خاص طور پر بیرونی روشنی یا گیراج لائٹس جیسی ایپلیکیشنز کے لیے مفید ہے۔ اس ٹیوٹوریل کے اختتام تک، آپ کے پاس ایک کام کرنے والا نظام ہوگا جو محیطی حالات کی بنیاد پر روشنی کو مؤثر طریقے سے منظم کر سکتا ہے۔ (ویڈیو میں 02:15 پر)

ہم ایک لائٹ سینسر ماجیول استعمال کریں گے، جس میں روشنی کی سطح کا پتہ لگانے کے لیے ایک لائٹ ڈیپینڈنٹ ریزسٹر (LDR) شامل ہے، اور اے سی لائٹ کو کنٹرول کرنے کے لیے ایک ریلے۔ یہ نظام روشنی کی حساسیت کو ایڈجسٹ کرنے کے لیے ایک پوٹینشیومیٹر بھی شامل کرے گا۔ یہ سیٹ اپ سینسر کے ذریعے پائی جانے والی محیطی روشنی کی بنیاد پر روشنی کے ڈیجیٹل اور اینالاگ دونوں طرح کے کنٹرول کی اجازت دیتا ہے۔ تفصیلی وضاحت کے لیے، 04:30 پر ویڈیو دیکھیں۔
ہارڈویئر کی وضاحت
اس تعمیر کے بنیادی اجزاء لائٹ سینسر ماجیول، ریلے، اور آرڈوینو ہیں۔ لائٹ سینسر ماجیول ایک LDR پر مشتمل ہے جو روشنی کی شدت کی بنیاد پر مزاحمت تبدیل کرتا ہے، ڈیجیٹل یا اینالاگ آؤٹ پٹ فراہم کرتا ہے۔ ریلے ایک سوئچ کے طور پر کام کرتا ہے جو ہائی وولٹیج اے سی لائٹ کو کنٹرول کر سکتا ہے جبکہ کم وولٹیج آرڈوینو کے ذریعے محفوظ طریقے سے چلایا جاتا ہے۔ یہ علیحدگی حفاظت اور فعالیت کے لیے اہم ہے۔
ریلے کے تین بنیادی پن ہیں: کامن (COM)، نارمل اوپن (NO)، اور نارمل کلوزڈ (NC)۔ جب فعال ہوتا ہے، ریلے کامن پن کو نارمل اوپن پن سے جوڑتا ہے، جس سے منسلک لائٹ کے ذریعے کرنٹ بہنے کی اجازت ملتی ہے۔ یہ طریقہ کار ریلے کو آرڈوینو سے موصول ہونے والے سگنلز کی بنیاد پر لائٹ کو کنٹرول کرنے کے قابل بناتا ہے۔
ڈیٹاشیٹ کی تفصیلات
| مینوفیکچرر | جنرک |
|---|---|
| پارٹ نمبر | لائٹ سینسر ماجیول |
| لاجک/آئی او وولٹیج | 5 V |
| سپلائی وولٹیج | 5 V |
| آؤٹ پٹ کرنٹ (فی چینل) | 10 mA |
| پیک کرنٹ (فی چینل) | 20 mA |
| PWM فریکوئنسی رہنمائی | N/A |
| ان پٹ لاجک تھریشولڈز | 2.5 V (ہائی) / 0.8 V (لو) |
| وولٹیج ڈراپ / RDS(on) / سیچوریشن | 0.2 V عام |
| تھرمل حدود | 85 °C |
| پیکیج | ماجیول |
| نوٹس / ویریئنٹس | حساسیت ایڈجسٹمنٹ کے لیے پوٹینشیومیٹر شامل ہے |
- ریلے کے لیے مناسب گرمی کی تقسیم کو یقینی بنائیں۔
- لائٹ سینسر ان پٹ کے لیے پل اپ ریزسٹر استعمال کریں۔
- اے سی ڈیوائسز کو جوڑنے سے پہلے وولٹیج کی درجہ بندی چیک کریں۔
- سسٹم کے چلنے کے دوران کھلی تاروں کو چھونے سے گریز کریں۔
- مطلوبہ روشنی کی حساسیت کے لیے پوٹینشیومیٹر کو ایڈجسٹ کریں۔
وائرنگ ہدایات

لائٹ سینسر ماجیول اور ریلے کو آرڈوینو سے جوڑنے کے لیے، لائٹ سینسر ماجیول کے VCC پن کو آرڈوینو کے 5V پن سے جوڑ کر شروع کریں۔ اگلا، لائٹ سینسر کے گراؤنڈ پن کو آرڈوینو کے GND پن سے جوڑیں۔ لائٹ سینسر کا ڈیجیٹل آؤٹ پٹ پن آرڈوینو کے پن 2 سے منسلک ہونا چاہیے، جبکہ اینالاگ آؤٹ پٹ پن اینالاگ ریڈنگز کے لیے A0 سے منسلک ہوتا ہے۔
اب، ریلے کے لیے، اس کے VCC پن کو آرڈوینو کے 5V پن سے اور اس کے گراؤنڈ پن کو GND سے جوڑیں۔ ریلے کا ان پٹ پن آرڈوینو کے پن 9 سے منسلک ہونا چاہیے۔ آخر میں، اپنی اے سی لائٹ کی ایک تار کو ریلے کے کامن پن (COM) سے اور دوسری تار کو نارمل اوپن پن (NO) سے جوڑیں۔ یہ سیٹ اپ ریلے کو لائٹ سینسر کی ریڈنگز کی بنیاد پر اے سی لائٹ کو کنٹرول کرنے کی اجازت دے گا۔

کوڈ مثالیں اور واک تھرو
لائٹ سینسر کے بنیادی ڈیجیٹل کوڈ میں، ہم سینسر اور ریلے کے لیے پنوں کی وضاحت کرتے ہیں۔ سیٹ اپ فنکشن سیریل کمیونیکیشن کو ابتدائی کرتا ہے اور پن موڈز سیٹ کرتا ہے:
#define LIGHT 2 // سینسر کے لیے پن 2 کی وضاحت کریں
#define RELAY 9 // ریلے کے لیے پن 9 کی وضاحت کریں
void setup() {
Serial.begin(9600); // سیریل مانیٹر سیٹ اپ کریں
pinMode(LIGHT, INPUT_PULLUP); // پن کو ان پٹ سینسر کے طور پر وضاحت کریں
pinMode(RELAY, OUTPUT); // پن کو ریلے کے لیے آؤٹ پٹ کے طور پر وضاحت کریں
}
یہ کوڈ پن 2 کو لائٹ سینسر پڑھنے کے لیے ان پٹ کے طور پر اور پن 9 کو ریلے کو کنٹرول کرنے کے لیے آؤٹ پٹ کے طور پر سیٹ کرتا ہے۔ سیریل مانیٹر بھی لائٹ کی حیثیت کے بارے میں فیڈ بیک فراہم کرنے کے لیے ابتدائی کیا جاتا ہے۔
لوپ فنکشن کے اندر، ہم مسلسل سینسر کی حالت پڑھتے ہیں:
int L = digitalRead(LIGHT); // سینسر پڑھیں
if (L == 1) {
Serial.println(" لائٹ آن ہے");
digitalWrite(RELAY, LOW); // ریلے آن کریں
} else {
Serial.println(" === لائٹ آف ہے");
digitalWrite(RELAY, HIGH); // ریلے آف کریں
}
یہ منطق لائٹ سینسر کی حالت چیک کرتی ہے اور اس کے مطابق ریلے کو آن یا آف کرتی ہے، سیریل مانیٹر کے ذریعے فیڈ بیک فراہم کرتی ہے۔
اعلی درجے کے اینالاگ کوڈ میں، ہم اینالاگ آؤٹ پٹ سے اقدار پڑھنے کا طریقہ شامل کرتے ہیں:
if (digital == true) {
int L = digitalRead(LIGHT); // سینسر پڑھیں
if (L == 1) {
Serial.println(" لائٹ آن ہے");
digitalWrite(RELAY, LOW); // ریلے آن کریں
} else {
Serial.println(" === لائٹ آف ہے");
digitalWrite(RELAY, HIGH); // ریلے آف کریں
}
} else {
int a0Value = analogRead(A0); // A0 قدر پڑھیں
if (a0Value >= LightValue) {
Serial.print(analogRead(A0));
Serial.println(" لائٹ آن ہے");
digitalWrite(RELAY, LOW); // ریلے آن کریں
} else {
Serial.print(analogRead(A0));
Serial.println(" === لائٹ آف");
digitalWrite(RELAY, HIGH); // ریلے آف کریں
}
}
یہ سیکشن لائٹ سینسر سے اینالاگ ریڈنگ کی بنیاد پر حساسیت کو ایڈجسٹ کرنے کی اجازت دیتا ہے، جس سے لائٹ ایکٹیویشن کی حدوں پر زیادہ کنٹرول ملتا ہے۔
مظاہرہ / کیا توقع کریں
جب سیٹ اپ مکمل ہو جائے اور پاور آن ہو، تو روشنی کم روشنی والے حالات میں آن ہونی چاہیے اور تیز روشنی والے حالات میں بند ہونی چاہیے۔ آپ لائٹ سینسر کو ڈھانپ کر اندھیرے کی نقل کر سکتے ہیں اور ریلے کے ایکٹیویشن کا مشاہدہ کر سکتے ہیں۔ اگر درست طریقے سے کنفیگر کیا گیا ہو، تو سیریل مانیٹر سینسر کی ریڈنگز کی بنیاد پر "لائٹ آن ہے" یا "لائٹ آف ہے" دکھائے گا۔ AC لائٹ کو جوڑتے وقت پولارٹی کو الٹنے سے محتاط رہیں، کیونکہ اس سے خرابی یا حفاظتی خطرات پیدا ہو سکتے ہیں (ویڈیو میں 10:00 پر)۔
ویڈیو ٹائم اسٹیمپس
- 00:00 پروجیکٹ کا تعارف
- 02:15 اجزاء اور وائرنگ کا جائزہ
- 04:30 کوڈ کی وضاحت
- 10:00 فعالیت کا مظاہرہ
++
/*
* This is the Arduino code for the Light module for Arduino (basic).
This video shows you how to turn an AC light ON during the night using a light sensor
and turn it OFF during the day. This code is a basic version where
the digital output of the module is used.
// Written for Robojax.com video
* Watch the HC-SR505 Motion Sensor video for details https://youtu.be/qhThpxiXubI
* Code is available at http://robojax.com/learn/arduino
*
// Written by Ahmad S. for Robojax.com on
// February 10, 2018 at 13:43 in Ajax, Ontario, Canada
*/
#define LIGHT 2 // define pin 2 for sensor
#define RELAY 9 // define pin 9 as for relay
/*
* Permission granted to share this code given that this
* note is kept with the code.
* Disclaimer: this code is "AS IS" and for educational purposes only.
*
*/
void setup() {
// Light LDR Sensor Code by Robojax.com 20180210
Serial.begin(9600);// setup Serial Monitor to display information
pinMode(LIGHT, INPUT_PULLUP);// define pin as Input sensor
pinMode(RELAY, OUTPUT);// define pin as OUTPUT for relay
}
void loop() {
// Light LDR Sensor Code by Robojax.com 20180210
int L =digitalRead(LIGHT);// read the sensor
if(L == 1){
Serial.println(" light is ON");
digitalWrite(RELAY,LOW);// turn the relay ON
}else{
Serial.println(" === light is OFF");
digitalWrite(RELAY,HIGH);// turn the relay OFF
}
delay(500);
// Light LDR Sensor Code by Robojax.com 20180210
}
/*
Light Sensor module for Arduino (Advanced: analog)
This video shows you how to turn an AC light ON during the night using
a light sensor and turn it OFF during the day.
This code is to control a light either digitally and control
the sensitivity with the potentiometer on the module.
You can control the light using an analog value from pin A0
and set your own sensitivity. Make sure you turn the
potentiometer to the maximum value and set digital=false.
// Written for Robojax.com video
* Watch Light Sensor video https://youtu.be/CyDAWcY8_5w
* Code is available at http://robojax.com/learn/arduino
*
*/
#define LIGHT 2 // define pin 2 for sensor
#define RELAY 9 // define pin 9 as for relay
/*
*
// Written by Ahmad S. for Robojax.com on
// February 10, 2018 at 13:43 in Ajax, Ontario, Canada
* Permission granted to share this code given that this
* note is kept with the code.
* Disclaimer: this code is "AS IS" and for educational purposes only.
*
*/
// LDR, Light Dependant Resistor
boolean digital = false;// set true to use digital and control the sensitivity with potentiometer on the module
// set to false to control with A0 value on Arduino
unsigned int LightValue = 350;// LightValue to determine
// at what value the relay should be ON
void setup() {
// Light LDR Sensor Code by Robojax.com 20180210
Serial.begin(9600);// setup Serial Monitor to display information
pinMode(LIGHT, INPUT_PULLUP);// define pin as Input sensor
pinMode(RELAY, OUTPUT);// define pin as OUTPUT for relay
}
void loop() {
delay(500);
relay();// call the relay() method
// Light LDR Sensor Code by Robojax.com 20180210
}
void relay()
{
if(digital == true)
{
// Light LDR Sensor Code by Robojax.com 20180210
int L =digitalRead(LIGHT);// read the sensor
if(L == 1){
Serial.println(" light is ON");
digitalWrite(RELAY,LOW);// turn the relay ON
}else{
Serial.println(" === light is OFF");
digitalWrite(RELAY,HIGH);// turn the relay OFF
} // if
}// if digital end
else
{
int a0Value = analogRead(A0);// read A0 value
if( a0Value >= LightValue){
Serial.print(analogRead(A0));
Serial.println(" Light is ON");
digitalWrite(RELAY,LOW);// turn the relay ON
}else{
Serial.print(analogRead(A0));
Serial.println(" === light OFF");
digitalWrite(RELAY,HIGH);// turn the relay OFF
} // if
}
}
آپ کو جن چیزوں کی ضرورت ہو سکتی ہے
-
ایمیزون
وسائل اور حوالہ جات
ابھی تک کوئی وسائل نہیں۔
فائلیں📁
فریٹزنگ فائل
-
LDR light sensor module black
LDR_module_black.fzpz0.01 MB