Код для поиска

Использование LDR с Arduino и управляющего переключателя для освещения Arduino

Использование LDR с Arduino и управляющего переключателя для освещения Arduino

В этом учебном пособии мы рассмотрим, как использовать фотосопротивление (LDR) с Arduino для управления светом в зависимости от уровня окружающего освещения. LDR изменяет свое сопротивление в зависимости от интенсивности света; таким образом, его можно использовать для определения, светло или темно в окружающей среде. Когда уровень света ниже определенного порога, мы включим выходной пин для активации света.

LDR Illustration and symbol

Основные компоненты, которые вам понадобятся, включают плату Arduino, резистор на 10 кОм, LDR и несколько соединительных проводов. LDR будет подключен в конфигурации делителя напряжения с резистором для считывания аналогового напряжения, которое будет изменяться в зависимости от интенсивности света. Мы будем использовать это напряжение для управления светодиодом или другими выходными устройствами.

Для визуальной демонстрации настройки и кода обязательно посмотрите связанное видео (в видео на 0:10).

Объяснение аппаратного обеспечения

Светозависимый резистор (LDR) — это тип резистора, сопротивление которого уменьшается с увеличением интенсивности падающего света. Он обычно используется в приложениях, где необходимо контролировать уровень освещенности. В нашей настройке LDR будет использоваться для обнаружения уровней окружающего света и будет отправлять соответствующее аналоговое напряжение на Arduino.

Arduino будет считывать это напряжение через один из своих аналоговых выводов и решать, включать или выключать подключенный свет в зависимости от заданного порога. Резистор на 10 кОм используется в конфигурации делителя напряжения с LDR для создания стабильного выходного напряжения, которое может считывать Arduino.

Технические характеристики

ПроизводительОбщий
Номер деталиLDR
Сопротивление (свет)100 - 500 Ом
Сопротивление (темное)10 кОм - 1 МΩ
Рабочее напряжение3.3 В - 5 В
Время отклика20 мс (тип.)
ПакетСквозное отверстие

  • Обеспечьте правильные уровни напряжения; не превышайте 5В.
  • Используйте подтягивающий резистор для стабилизации показаний.
  • Выберите подходящее значение резистора (10 кОм) для делителя напряжения.
  • Рассмотрите возможность использования конденсатора для фильтрации шума, если это необходимо.
  • Держите LDR подальше от прямых источников света во время тестирования.

Инструкции по проводке

Wiring LDR with Arduino
Wiring LDR with Arduino

Чтобы настроить цепь, начните с подключения одного вывода LDR к источнику питания 3.3V на Arduino. Другой вывод LDR будет подключен к одному концу резистора на 10 кОм. Другой конец резистора должен быть подключен к земле.

Затем создайте соединение между узлом 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

В этом коде переменнаяLDRvalueхранит сырое аналоговое значение от LDR. Напряжение рассчитывается на основе максимального аналогового значения (1023) и опорного напряжения (5В).

Далее мы проверяем, ниже ли это напряжение порога (в данном случае 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:00Введение в LDR
  • 01:30Аппаратная настройка
  • 03:45Объяснение кода
  • 06:00Запуск кода
  • 09:15Советы по устранению неполадок

Изображения

Wiring LDR with Arduino
Wiring LDR with Arduino
An LDR
An LDR
LDR Illustration and symbol
LDR Illustration and symbol
14-Using an LDR with an Arduino and a control switch for a light
Язык: C++
/*
 * // Этот код используется с видеоруководством для RoboJax.com
 * // Опубликовано 31 августа 2017 года из Аякса, Онтарио, Канада.
 * // Написано/Отредактировано A.B.S
 */
/void setup()

{

  Serial.begin(9600); // настройка серийного порта
  pinMode(10, OUTPUT);
}



void loop(){

  int LDRvalue = analogRead(A0);
 // Преобразуйте аналоговое значение (которое варьируется от 0 до 1023) в напряжение (от 0 до 5 В):
  float voltage = LDRvalue * (5.0 / 1023.0);
 // выведите значение, которое вы прочитали:
  Serial.print("Voltage ="); // печатает текст "Напряжение ="
  Serial.print(voltage); // печатает текущее напряжение

 // проверьте, если напряжение меньше 3, то установите вывод 10 в высокий или ВКЛ.
  if(voltage < 3 ){
    digitalWrite(10, HIGH);
  }else{
    digitalWrite(10, LOW); // или оставьте его ВЫКЛЮЧЕННЫМ, когда напряжение больше 3
  }
  Serial.println();
  delay(300);

}

Ресурсы и ссылки

Ресурсов пока нет.

Файлы📁

Нет доступных файлов.