Search Code

Ардуино коды және жарық сенсоры модулінің реле арқылы бейнежазбасы

Ардуино коды және жарық сенсоры модулінің реле арқылы бейнежазбасы

Бұл оқулықта біз жарық сенсоры модулін айнымалы ток шамын басқару үшін қалай қолдану керектігін үйренеміз. Жоба қараңғы болғанда шамның автоматты түрде қосылуын және жарық болғанда өшірілуін қамтамасыз етеді. Бұл әсіресе сыртқы жарықтандыру немесе гараж шамдары сияқты қолданбалар үшін пайдалы. Осы оқулықтың соңында сізде қоршаған орта жағдайларына негізделген жарықты тиімді басқара алатын жұмыс істейтін жүйе болады. (бейнеде 02:15)

LDR light sensor module

Біз жарық деңгейін анықтау үшін жарыққа тәуелді резисторды (LDR) қамтитын жарық сенсоры модулін және айнымалы ток шамын басқару үшін релені қолданамыз. Жүйе сонымен қатар жарықты анықтау сезімталдығын реттеу үшін потенциометрді қамтиды. Бұл қондырғы сенсор анықтаған қоршаған орта жарығына негізделген жарықты цифрлық және аналогтық басқаруға мүмкіндік береді. Егжей-тегжейлі түсіндіру үшін 04:30-дағы бейнені қараңыз.

Аппараттық құрал түсіндірмесі

Бұл құрылымның негізгі компоненттері - жарық сенсоры модулі, реле және Arduino. Жарық сенсоры модулі жарық қарқындылығына байланысты кедергісін өзгертетін LDR-ден тұрады, цифрлық немесе аналогтық шығысты қамтамасыз етеді. Реле жоғары вольтты айнымалы ток шамын басқара алатын қосқыш ретінде әрекет етеді, ал оны төмен вольтты Arduino қауіпсіз басқарады. Бұл бөлу қауіпсіздік пен функционалдылық үшін өте маңызды.

Реленің үш негізгі түйреуіші бар: ортақ (COM), әдетте ашық (NO) және әдетте жабық (NC). Белсендірілген кезде реле ортақ түйреуішті әдетте ашық түйреуішке қосады, токтың қосылған шам арқылы өтуіне мүмкіндік береді. Бұл механизм релеге Arduino-дан алынған сигналдарға негізделген шамды басқаруға мүмкіндік береді.

Деректер парағының мәліметтері

Өндіруші Жалпы
Бөлшек нөмірі Жарық сенсоры модулі
Логика/IO кернеуі 5 В
Қоректендіру кернеуі 5 В
Шығыс тогы (арнаға) 10 мА
Ең жоғары ток (арнаға) 20 мА
PWM жиілігі бойынша нұсқау Жоқ
Кіріс логикалық шектері 2,5 В (жоғары) / 0,8 В (төмен)
Кернеудің төмендеуі / RDS(on) / қанығу 0,2 В типтік
Жылулық шектер 85 °C
Қаптама Модуль
Ескертулер / нұсқалар Сезімталдықты реттеуге арналған потенциометрді қамтиды

 

  • Реле үшін дұрыс жылуды таратуды қамтамасыз етіңіз.
  • Жарық сенсорының кірісі үшін жоғары тарту резисторын қолданыңыз.
  • Айнымалы ток құрылғыларын қосу алдында кернеу рейтингтерін тексеріңіз.
  • Жүйе қуатталған кезде ашық сымдарға қол тигізбеңіз.
  • Қажетті жарық сезімталдығы үшін потенциометрді реттеңіз.

Сым қосу нұсқаулары

Arduino wiring for LDR light sensor module

Жарық сенсоры модулі мен релені Arduino-ға қосу үшін алдымен жарық сенсоры модулінің VCC түйреуішін Arduino-дағы 5V түйреуішіне қосыңыз. Әрі қарай, жарық сенсорының жер түйреуішін Arduino-дағы GND түйреуішіне қосыңыз. Жарық сенсорының цифрлық шығыс түйреуіші Arduino-дағы 2 түйреуішке қосылуы керек, ал аналогтық шығыс түйреуіші аналогтық көрсеткіштер үшін A0-ге қосылады.

Енді реле үшін оның VCC түйреуішін Arduino-дағы 5V түйреуішіне және оның жер түйреуішін GND-ге қосыңыз. Реленің кіріс түйреуіші Arduino-дағы 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); // релені ӨШІРУ
  }
}

Бұл бөлім жарық сенсорынан алынған аналогтық көрсеткішке негізделген сезімталдықты реттеуге мүмкіндік береді, бұл жарықты қосу шектерін бақылауды жақсартады.

Демонстрация / Не күтуге болады

Қондырғы дайын болып, қуат қосылғанда, жарық төмен жарық жағдайында қосылып, жарқын жағдайда өшірілуі керек. Жүйені жарық сенсорын жауып, қараңғылықты имитациялау арқылы сынап, реле қосылуын бақылай аласыз. Дұрыс конфигурацияланған болса, сериялық монитор сенсор көрсеткіштеріне негізделген "жарық қосулы" немесе "жарық өшірулі" деп көрсетеді. Айнымалы ток шамын қосу кезінде полярлықты ауыстырудан сақ болыңыз, себебі бұл ақауларға немесе қауіпсіздік қатерлеріне әкелуі мүмкін (бейнеде 10:00).

Бейне уақыт белгілері

  • 00:00 Жобаға кіріспе
  • 02:15 Компоненттер мен сымдарға шолу
  • 04:30 Кодты түсіндіру
  • 10:00 Функционалдылықты демонстрациялау

Суреттер

LDR light sensor module
LDR light sensor module
LDR light sensor module
LDR light sensor module
LDR light sensor module
LDR light sensor module
LDR light sensor module
LDR light sensor module
Light_LDR_sensor-4
Light_LDR_sensor-4
LDR light sensor module
LDR light sensor module
LDR light sensor module
LDR light sensor module
Light LDR sensor module schematic
Light LDR sensor module schematic
Arduino wiring for LDR light sensor module
Arduino wiring for LDR light sensor module
LDR light sensor module
LDR light sensor module
75-Light sensor module for Arduino (basic digital)
Тіл: C++
++
/*
 * 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
}
76-Light sensor module for Arduino (Advanced: analog)
Тіл: C++
/*
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      
   }
}

Сізге қажет болуы мүмкін нәрселер

Ресурстар мен сілтемелер

Әлі ресурстар жоқ.

Файлдар📁

Fritzing файлы