Подключение фоторезистора к Arduino
Датчик освещённости
Фоторезистор к Arduino подключают в делитель напряжения с резистором 10 кОм: напряжение с середины читается аналоговым входом A0–A5 (значения 0–1023).
Схема подключения фоторезистора к Arduino
| Фоторезистор | Arduino Uno |
|---|---|
| AO | A0 |
| VCC | 5V |
| GND | GND |
Схема из примера «Arduino Uno: ночник с гистерезисом».
Выводы Фоторезистор
| Вывод | Назначение |
|---|---|
| AO | аналоговый выход — средняя точка делителя |
| DO | цифровой выход компаратора: порог задаёт подстроечный резистор на модуле |
| VCC | питание делителя |
| GND | общий провод |
Код для Arduino
// Ночник: темнее порога — включить, светлее — выключить.
//
// Порогов два, и это не перестраховка. С одним порогом на границе
// освещённости выход щёлкает при каждом дрожании последнего разряда:
// 499 — включили, 501 — выключили, 499 — включили. Реле в такой схеме
// живёт неделю.
//
// Гистерезис — это разные пороги на включение и на выключение. Между
// ними не происходит ничего, и попасть в эту зону дрожанием нельзя:
// она шире дрожи.
//
// Крутите ползунок освещённости на детали, чтобы это увидеть.
const int LDR = A0;
const int LED = 8;
const int DARK = 400; // темнее этого — включаем
const int LIGHT = 600; // светлее этого — выключаем
bool lit = false;
void setup() {
pinMode(LED, OUTPUT);
Serial.begin(9600);
}
void loop() {
int level = analogRead(LDR);
if (!lit && level < DARK) {
lit = true;
Serial.println("стемнело — включаю");
} else if (lit && level > LIGHT) {
lit = false;
Serial.println("рассвело — выключаю");
}
digitalWrite(LED, lit);
Serial.print("light:");
Serial.println(level);
delay(200);
}
Скетч можно править и запускать в симуляторе без платы и установки среды.
Что учесть на Arduino
- Готовый модуль даёт аналоговый выход AO и цифровой DO (по порогу с подстроечным резистором).
- Освещённость меняется медленно, поэтому
analogRead()достаточно читать раз в 100–500 мс и сглаживать.
Частые ошибки при подключении к Arduino
- Подключить фоторезистор между A0 и 5 В без резистора: вход всегда читает максимум, делитель не работает.
- Перепутать направление: растёт или падает напряжение при свете, зависит от того, кто стоит сверху в делителе, фоторезистор или резистор.
- Порог без гистерезиса — на границе день/ночь лампа мигает. Нужны два порога: включить ниже одного, выключить выше другого.
- Датчик видит свет той лампы, которой управляет, — и выключает её. Разнесите их.
Ещё по теме
- плата Подключение фоторезистора к ESP32
- деталь Фоторезистор: подключение к ESP32 и Arduino
- калькулятор Делитель напряжения
Другие детали для Arduino
HC-SR04DHT22 (AM2302)BME280DS3231SSD1306 OLED 0,96″LCD 1602 с I2CMAX7219TM1637Модуль релеKY-040Клавиатура 4×4HX711Модуль microSDRGB-светодиодСервопривод SG9074HC595Шаговый двигательКнопкаПотенциометрПьезопищалкаСветодиодПолзунковый переключательHC-SR501TTP223Датчик влажности почвыMQ-2LM35Джойстик KY-023DHT11HTU21D