Koodu Arduino ati Fidio fun Modulu Sensa Imọlẹ pẹlu Relay
Nínú ẹ̀kọ́ yìí, a óò kọ́ bí a ṣe lè lo ẹ̀rọ̀ ìmọ̀lẹ̀ (light sensor module) láti ṣàkóso iná AC kan. Iṣẹ́ yìí yóò jẹ́ kí iná náà máa tàn fúnra rẹ̀ nígbà tí òkùnkùn bá wà, kí ó sì máa pa nígbà tí ìmọ́lẹ̀ bá pọ̀. Èyí wúlò púpọ̀ fún àwọn ohun èlò bíi iná òde tàbí iná gárajì. Ní ìparí ẹ̀kọ́ yìí, o óò ní ètò tí ó ń ṣiṣẹ́ tí ó lè ṣàkóso iná dáradára ní ìbámu pẹ̀lú àyíká. (nínú fídíò ní 02:15)

A óò lo ẹ̀rọ̀ ìmọ̀lẹ̀ kan, tí ó ní resistor tí ó gbẹ́kẹ̀lé ìmọ̀lẹ̀ (LDR) fún ṣíṣàwárí iye ìmọ̀lẹ̀, àti relay kan láti ṣàkóso iná AC. Ètò náà yóò tún ní potentiometer kan láti ṣàtúnṣe ìmọ̀lẹ̀ tí a fẹ́ kí ẹ̀rọ̀ náà mọ̀. Ìtòlẹ́yọ̀ yìí gba kí a ní àkóso oní nọ́mbà (digital) àti onírúurú (analog) lórí iná náà ní ìbámu pẹ̀lú ìmọ̀lẹ̀ tí ẹ̀rọ̀ náà rí. Fún àlàyé kíkún, wo fídíò ní 04:30.
Àlàyé Àwọn Ẹ̀rọ̀
Àwọn ohun pàtàkì tí a óò lò nínú iṣẹ́ yìí ni ẹ̀rọ̀ ìmọ̀lẹ̀, relay, àti Arduino. Ẹ̀rọ̀ ìmọ̀lẹ̀ náà ní LDR tí ń yí resistance rẹ̀ padà ní ìbámu pẹ̀lú ìmọ́lẹ̀, tí ó ń fún wa ní ìjàde oní nọ́mbà tàbí onírúurú. Relay ń ṣiṣẹ́ bíi kọ́ńtákítì tí ó lè ṣàkóso iná AC tí ó ní folti gíga, nígbà tí Arduino tí ó ní folti kékèké ń ṣiṣẹ́ pẹ̀lú rẹ̀ láìléwu. Ìyàtọ̀ yìí ṣe pàtàkì fún ààbò àti iṣẹ́ ṣíṣe.
Relay náà ní àwọn ẹ̀yà mẹ́ta pàtàkì: common (COM), normally open (NO), àti normally closed (NC). Nígbà tí a bá mú relay ṣiṣẹ́, ó ń so ẹ̀yà common pọ̀ mọ́ ẹ̀yà normally open, tí ó ń jẹ́ kí iná máa kọjá nínú iná tí a so. Ẹ̀yà yìí ni ó ń jẹ́ kí relay lè ṣàkóso iná náà ní ìbámu pẹ̀lú àwọn ifiranṣẹ́ tí ó gbà láti ọ̀dọ̀ Arduino.
Àwọn Àlàyé Datasheet
| Olùṣe | Generic |
|---|---|
| Nọ́mbà apá | Ẹ̀rọ̀ Ìmọ̀lẹ̀ |
| Folti Logic/IO | 5 V |
| Folti ìpèsè | 5 V |
| Ìjàde lọ́wọ́lọ́wọ́ (fún ikanni kọ̀ọ̀kan) | 10 mA |
| Ìjàde tí ó pọ̀ jù (fún ikanni kọ̀ọ̀kan) | 20 mA |
| Ìtọ́sọ́nà ìgbohùnsáfẹ́fẹ́ PWM | Kò sí |
| Àwọn ìpele ìwọ̀n ìmọ̀lẹ̀ | 2.5 V (gíga) / 0.8 V (kékèké) |
| Ìdínkù folti / RDS(on) / ìkúnlẹ̀ | 0.2 V ní pàtàkì |
| Àwọn ìwọ̀n ooru | 85 °C |
| Ìpako | Module |
| Àwọn àkíyèsí / àwọn oríṣi | Ó ní potentiometer fún ṣíṣàtúnṣe ìmọ̀lẹ̀ |
- Rí i pé ooru kò bá relay náà pọ̀ jù.
- Lo resistor ìfà (pull-up) fún ìwọ̀n ẹ̀rọ̀ ìmọ̀lẹ̀.
- Ṣàyẹ̀wò àwọn ìwọ̀n folti kí o tó so àwọn ẹ̀rọ̀ AC.
- Má ṣe fọwọ́ kan àwọn okun tí a kò bo nígbà tí ètò náà bá ń ṣiṣẹ́.
- Ṣàtúnṣe potentiometer fún ìmọ̀lẹ̀ tí o fẹ́.
Àwọn Ìtọ́sọ́nà Ìsopọ̀

Láti so ẹ̀rọ̀ ìmọ̀lẹ̀ àti relay pọ̀ mọ́ Arduino, bẹ̀rẹ̀ nípa sísopọ̀ ẹ̀yà VCC ti ẹ̀rọ̀ ìmọ̀lẹ̀ sí ẹ̀yà 5V lórí Arduino. Lẹ́yìn náà, so ẹ̀yà ilẹ̀ (ground) ti ẹ̀rọ̀ ìmọ̀lẹ̀ sí ẹ̀yà GND kan lórí Arduino. Ẹ̀yà ìjàde oní nọ́mbà ti ẹ̀rọ̀ ìmọ̀lẹ̀ yẹ̀ kí a so sí ẹ̀yà 2 lórí Arduino, nígbà tí ẹ̀yà ìjàde onírúurú yóò so sí A0 fún àwọn ìwọ̀n onírúurú.
Nísinsin yìí, fún relay, so ẹ̀yà VCC rẹ̀ sí ẹ̀yà 5V lórí Arduino àti ẹ̀yà ilẹ̀ rẹ̀ sí GND. Ẹ̀yà ìwọ̀n ti relay yẹ̀ kí a so sí ẹ̀yà 9 lórí Arduino. Ní ìparí, so okun kan ti iná AC rẹ sí ẹ̀yà common (COM) ti relay àti okun kejì sí ẹ̀yà normally open (NO). Ìtòlẹ́yọ̀ yìí yóò jẹ́ kí relay lè ṣàkóso iná AC ní ìbámu pẹ̀lú àwọn ìwọ̀n láti ọ̀dọ̀ ẹ̀rọ̀ ìmọ̀lẹ̀.

Àwọn Àpẹẹrẹ Kóòdù & Àlàyé
Nínú kóòdù oní nọ́mbà ìpìlẹ̀ fún ẹ̀rọ̀ ìmọ̀lẹ̀, a ń ṣàlàyé àwọn ẹ̀yà fún ẹ̀rọ̀ ìmọ̀lẹ̀ àti relay. Ìṣiṣẹ́ setup ń bẹ̀rẹ̀ ìbánisọ̀rọ̀ serial àti ṣíṣètò àwọn ipo ẹ̀yà:
#define LIGHT 2 // ṣàlàyé ẹ̀yà 2 fún ẹ̀rọ̀ ìmọ̀lẹ̀
#define RELAY 9 // ṣàlàyé ẹ̀yà 9 fún relay
void setup() {
Serial.begin(9600); // ṣètò Serial Monitor
pinMode(LIGHT, INPUT_PULLUP); // ṣàlàyé ẹ̀yà bíi ìwọ̀n ẹ̀rọ̀
pinMode(RELAY, OUTPUT); // ṣàlàyé ẹ̀yà bíi ìjàde fún relay
}
Kóòdù yìí ṣètò ẹ̀yà 2 bíi ìwọ̀n fún kíkà ẹ̀rọ̀ ìmọ̀lẹ̀ àti ẹ̀yà 9 bíi ìjàde láti ṣàkóso relay. A tún bẹ̀rẹ̀ Serial monitor láti pèsè ìsọfúnni nípa ipò iná náà.
Nínú ìṣiṣẹ́ loop, a ń kà ipò ẹ̀rọ̀ ìmọ̀lẹ̀ nígbà gbogbo:
int L = digitalRead(LIGHT); // kà ẹ̀rọ̀ ìmọ̀lẹ̀
if (L == 1) {
Serial.println(" iná ń tàn");
digitalWrite(RELAY, LOW); // mú relay ṣiṣẹ́
} else {
Serial.println(" === iná kò tàn");
digitalWrite(RELAY, HIGH); // pa relay
}
Ìtòlẹ́yọ̀ yìí ń ṣàyẹ̀wò ipò ẹ̀rọ̀ ìmọ̀lẹ̀, tí ó sì ń mú relay ṣiṣẹ́ tàbí pa á ní ìbámu pẹ̀lú rẹ̀, tí ó ń pèsè ìsọfúnni nípa Serial monitor.
Nínú kóòdù onírúurú tí ó gbòòrò, a ń fi ọ̀nà kan láti kà àwọn iye láti ìjàde onírúurú:
if (digital == true) {
int L = digitalRead(LIGHT); // kà ẹ̀rọ̀ ìmọ̀lẹ̀
if (L == 1) {
Serial.println(" iná ń tàn");
digitalWrite(RELAY, LOW); // mú relay ṣiṣẹ́
} else {
Serial.println(" === iná kò tàn");
digitalWrite(RELAY, HIGH); // pa relay
}
} else {
int a0Value = analogRead(A0); // kà iye A0
if (a0Value >= LightValue) {
Serial.print(analogRead(A0));
Serial.println(" Iná ń tàn");
digitalWrite(RELAY, LOW); // mú relay ṣiṣẹ́
} else {
Serial.print(analogRead(A0));
Serial.println(" === iná kò tàn");
digitalWrite(RELAY, HIGH); // pa relay
}
}
Apá yìí gbà láti ṣàtúnṣe ìmọ̀lára nípa lílo ìwọ̀n analog láti inú ẹ̀rọ ìmọ́lẹ̀, tí ó ń fúnni ní ìdarí púpọ̀ síi lórí àwọn ìpele tí ìmọ́lẹ̀ yóò máa ń ṣiṣẹ́.
Ìfihàn / Ohun Tí O Lè Retí
Nígbà tí ìtòlẹ́sẹ̀ bá parí tí a sì tan iná sí i, iná yóò máa tàn nígbà tí ìmọ́lẹ̀ bá kéré, yóò sì máa kú nígbà tí ìmọ́lẹ̀ bá pọ̀. O lè dán an wò nípa fíbo ẹ̀rọ ìmọ́lẹ̀ mọ́lẹ̀ láti fi dárúkọ òkùnkùn, kí o sì kíyè sí bí relay ṣe ń ṣiṣẹ́. Bí a bá ṣètò rẹ̀ dáradára, ẹ̀rọ ìṣàfihàn serial yóò fi "iná wà ní ìmọ́lẹ̀" tàbí "iná kú" hàn nípa lílo àwọn ìwọ̀n tí ẹ̀rọ ìmọ́lẹ̀ gbà. Ṣọ́ra kí o má ṣe yí pólarity padà nígbà tí o bá ń so iná AC pọ̀, nítorí èyí lè fa ìṣòro tàbí ewu ààbò (nínú fídíò ní 10:00).
Àkókò Nínú Fídíò
- 00:00 Ìfihàn iṣẹ́-ìdá náà
- 02:15 Àkọsílẹ̀ àwọn ohun èlò àti bí wọ́n ṣe ń so wọ́n pọ̀
- 04:30 Àlàyé kóòdù náà
- 10:00 Ìfihàn bí ó ṣe ń ṣiṣẹ́
++
/*
* 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
}
}
Ohun ti o le nilo
-
Amazon
Orisun & itọkasi
Ko si awọn orisun sibẹsibẹ.
Fáìlìs📁
Fayile Fritzing
-
LDR light sensor module black
LDR_module_black.fzpz0.01 MB