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

Сізге қажет негізгі компоненттерге Arduino тақтасы, 10k омдық резистор, LDR және бірнеше джампер сымдары кіреді. LDR резистормен бірге кернеу бөлгіш конфигурациясында қосылады, бұл аналогтық кернеуді оқуға мүмкіндік береді, ол жарық интенсивтілігіне байланысты өзгереді. Біз бұл кернеуді LED немесе басқа шығару құрылғыларын басқару үшін қолданамыз.
Орнату мен кодтың визуалды демонстрациясы үшін байланысты бейнені қарауды ұмытпаңыз (бейне 0:10-да).
Аппараттық құралдар түсіндірілді
Жарыққа тәуелді резистор (LDR) - бұл кедергісі жарықтың интенсивтілігі артқан сайын төмендейтін резистордың бір түрі. Ол жарық деңгейлерін бақылау қажет болатын қосымшаларда кеңінен қолданылады. Біздің құрылымымызда LDR қоршаған ортадағы жарық деңгейлерін анықтау үшін пайдаланылады және Arduino-ға сәйкес аналогтық кернеуді жібереді.
Arduino бұл кернеуді аналогтық пиндерінің біреуі арқылы оқып, анықталған шекке негізделе отырып, қосылған жарықты қосу немесе өшіру туралы шешім қабылдайды. 10k омдық резистор LDR-мен бірге кернеу бөлгіш конфигурациясында пайдаланылады, бұл Arduino оқи алатын тұрақты кернеу шығысын жасау үшін.
Техникалық сипаттама мәліметтері
| Өндіруші | Жалпы |
|---|---|
| Бөлшек нөмірі | LDR |
| Кедергі (жеңіл) | 100 - 500 Ом |
| Кедергі (қара) | 10 кОм - 1 Мом |
| Жұмыс кернеуі | 3.3 В - 5 В |
| Жауап беру уақыты | 20 мс (тип.) |
| Пакет | Өткізгіш тесігі |
- Дұрыс кернеу деңгейлерін қамтамасыз етіңіз; 5В-тан аспаңыз.
- Оқу көрсеткіштерін тұрақтандыру үшін тарту резисторын пайдаланыңыз.
- Кернеу бөлгіші үшін қолайлы резистор мәнін таңдаңыз (10kΩ).
- Шуды сүзу үшін қажет болса, конденсаторды пайдалануды қарастырыңыз.
- LDR-ді сынау кезінде тікелей жарық көздерінен алыста ұстаңыз.
Сымдарды қосу нұсқаулары

Схеманы орнату үшін LDR-дің бір терминалын Arduino-ның 3.3V қуат көзіне қосыңыз. LDR-дің екінші терминалы 10k омдық резистордың бір ұшына қосылады. Резистордың екінші ұшы жерге қосылуы тиіс.
Келесі, LDR мен резистордың торабын аналогтық кіріс пиніне қосыңыз, мысалыA0Бұл байланыс Arduino-ға кернеуді оқуға мүмкіндік береді. Arduino-ның жерін схеманың жалпы жеріне қосқаныңызға көз жеткізіңіз, бұл дұрыс жұмыс істеуін қамтамасыз етеді.
Код мысалдары мен нұсқаулықтар
Келесі код үзіндісі сериялық байланысты инициализациялайды және LDR-ден аналогтық мәнді оқиды. Мән содан кейін кернеуге айналдырылады және сериялық мониторға шығарылады.
int LDRvalue = analogRead(A0); // Read the analog value from LDR
float voltage = LDRvalue * (5.0 / 1023.0); // Convert to voltage
Serial.print("Voltage ="); // Print label
Serial.print(voltage); // Print actual voltage
Бұл кодта айнымалыLDRvalueLDR-ден алынған шикі аналогтық оқуды сақтайды. Кернеу максималды аналогтық мән (1023) және кернеу сілтемесі (5V) негізінде есептеледі.
Келесі, біз бұл кернеудің шекті мәннен (бұл жағдайда 3В) төмен екенін тексереміз, шығу пинін басқару үшін.
if(voltage < 3 ){
digitalWrite(10, HIGH); // Turn on the light
}else{
digitalWrite(10, LOW); // Turn off the light
}Мұнда, егер өлшенген кернеу 3 вольттан төмен болса, біз шығыс пинін (10) HIGH күйіне қойып, жарықты қосамыз; әйтпесе, оны LOW күйіне қойып, сөндіреміз. Жарық жағдайын тұрақты тексеру қоршаған ортадағы жарық деңгейлеріне негізделген нақты уақыт режимінде басқаруға мүмкіндік береді.
Көрсетілім / Не күту керек
Сымдарды қосып, кодты жүктегеннен кейін, LDR-дің жарық интенсивтілігін өзгерткен сайын, сериялық мониторда кернеу көрсеткіштерінің өзгеруін көруіңіз керек. Егер LDR-ді жапсаңыз, кернеу артуы тиіс, ал жарыққа ұшырағанда, ол төмендеуі керек. Бұл мінез-құлық жарықты басқаруға жауапты шығыс пиніне тікелей әсер етеді.
Жүздеген кірістер немесе дұрыс емес кернеу деңгейлері сияқты жалпы қателіктерден сақ болыңыз, бұл қате көрсеткіштерге әкелуі мүмкін (бейнемен 12:30-да).
Бейне уақыт белгілері
- 00:00LDR-ге кіріспе
- 01:30Аппараттық конфигурация
- 03:45Кодтың түсіндірмесі
- 06:00Кодты іске қосу
- 09:15Ақауларды жою бойынша кеңестер
//Original source: https://www.arduino.cc/en/Tutorial/ReadAnalogVoltage
// This code is used with a video tutorial for RoboJax.com
// Published on August 31, 2017 from Ajax, ON, Canada.
// Written/Edited by A.B.S
/void setup()
{
Serial.begin(9600); // setup serial
pinMode(10, OUTPUT);
}
void loop(){
int LDRvalue = analogRead(A0);
// Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
float voltage = LDRvalue * (5.0 / 1023.0);
// print out the value you read:
Serial.print("Voltage =");// prints the text "Voltage ="
Serial.print(voltage);// prints the actual voltage
// check if voltage is less than 3, then set pin 10 to high or ON
if(voltage < 3 ){
digitalWrite(10, HIGH);
}else{
digitalWrite(10, LOW); // or keep it OFF when voltage is larger than 3
}
Serial.println();
delay(300);
}
Ресурстар мен сілтемелер
Әлі ресурстар жоқ.
Файлдар📁
Басқа файлдар
-
LDR схемасының диаграммасы 1
LDR_circuit1.PDF0.04 MB -
LDR схемасының диаграммасы 2
LDR_circuit2.PDF0.04 MB