Урок 10: Фоторезистор
1. Цель эксперимента
Познакомиться с работой фоторезистора и научиться использовать его показания (аналоговый сигнал) для управления яркостью светодиода через PWM.
2. Компоненты
Кол-во |
Деталь |
---|---|
1 |
Плата Arduino UNO |
1 |
Фоторезистор |
1 |
Красный светодиод 5 мм |
1 |
Резистор 10 kΩ (делитель фоторезистора) |
1 |
Резистор 220 Ω (ограничение тока светодиода) |
1 |
Макетная плата (breadboard) |
5 |
Перемычки «папа–папа» |
1 |
USB-кабель A-B |
3. Немного знаний

Фоторезистор — полупроводниковый резистор, сопротивление которого падает при увеличении освещённости. Его часто используют в системах автоматического освещения, датчиках «день/ночь», сигнализациях и т.д.
При ярком свете сопротивление ≈ сотни Ом.
В темноте сопротивление растёт до сотен кОм.
Для получения напряжения, пропорционального свету, фоторезистор включают в делитель с постоянным резистором (10 kΩ). Это напряжение читают входом A0.
4. Схема подключения

Фоторезистор образует делитель с резистором 10 kΩ между 5 V и GND.
Узел делителя (средняя точка) идёт на аналоговый вход A0.
Светодиод подключён к пину 11 через резистор 220 Ω.
5. Пример кода
Код оставляем без изменений — он считывает показания фоторезистора и пропорционально им управляет яркостью светодиода.
int potpin = 0; // инициализация аналогового контакта 0, подключенного к фотоваристору
int ledpin = 11; // инициализация цифрового контакта 11
int val = 0; // инициализация переменной val
void setup(){
pinMode(ledpin, OUTPUT); // установка цифрового контакта 11 как "выход"
Serial.begin(9600); // установка скорости передачи данных на "9600"
}
void loop(){
val = analogRead(potpin); // считывание значения сенсора и присваивание его val
Serial.println(val); // отображение значения val
analogWrite(ledpin, val / 4); // установка яркости(максимальное значение 255)
delay(10); // ожидание 0.01 секунды
}
6. Как работает код
analogRead(A0)
возвращает значение 0–1023.Делим на 4 → получится 0–255 — требуемый диапазон для
analogWrite
.Чем ярче свет, тем ниже сопротивление фоторезистора, тем выше напряжение на входе A0, тем ярче светодиод.
7. Пошаговый запуск
Соберите схему согласно рисунку.
Подключите Arduino и выберите плату UNO.
Скопируйте скетч, загрузите его.
Откройте Serial Monitor — увидите поток чисел, отражающих уровень освещённости.
Затеняйте/освещайте фоторезистор и наблюдайте, как меняется яркость светодиода.
8. Что может пойти не так
Симптом |
Причина |
Решение |
---|---|---|
Светодиод не светит |
Пин, резистор или полярность светодиода подключены неверно |
Проверьте схему, убедитесь, что пин 11 объявлен как |
Значения в Serial Monitor всегда ~1023 или ~0 |
Делитель собран неправильно / пропал контакт |
Проверьте проводку фоторезистора и резистора 10 kΩ |
Реакция «наоборот» (ярче в темноте) |
Поменяли местами фоторезистор и 10 kΩ в делителе |
Просто переставьте их или измените формулу в коде |
9. Эксперименты
Замените светодиод на активный зуммер — получите звуковой датчик света.
Используйте два фоторезистора и сравнивайте их показания для простой системы слежения за источником света.