03Датчик света
Соберите схему с фоторезистором на аналоговом входе A0 — при снижении освещённости должен включаться светодиод.
Задание
- Соберите делитель напряжения: фоторезистор и резистор 10 кОм, средняя точка — на вход A0.
- Подключите светодиод к пину 9 через резистор 220 Ом.
- Напишите программу, которая читает значение с A0 и включает светодиод, когда значение меньше 700.
- Закройте фоторезистор ладонью — светодиод должен загореться; отпустите — погаснуть.
- Дополнительно: откройте «Монитор порта» и посмотрите, какие числа приходят с датчика при разном освещении, затем подберите свой порог вместо 700.
Что понадобится
- Arduino Uno
- Фоторезистор (LDR)
- Резистор 10 кОм
- Светодиод
- Резистор 220 Ом
- Провода
Схема

Соберите схему в Tinkercad Circuits так же, как на картинке.
Код
Скопировать нельзя специально — наберите код руками и подумайте над каждой строкой.
1void setup()
2{
3 pinMode(9, OUTPUT);
4}
5
6void loop()
7{
8 int svet = analogRead(A0);
9 if (svet < 700)
10 {
11 digitalWrite(9, HIGH);
12 }
13 else
14 {
15 digitalWrite(9, LOW);
16 }
17 delay(100);
18}
Что делает каждая строка
| Строка | Что делает |
|---|---|
| 1–4 | setup(): только одна настройка — пин 9 делаем выходом, потому что к нему подключён светодиод. |
| 6–7 | Начало бесконечного цикла loop(). |
| 8 | analogRead(A0) измеряет напряжение на входе A0 и возвращает число от 0 до 1023 — «сырое» значение освещённости. Оно сохраняется в переменную svet. |
| 9 | Проверяем: если значение меньше 700 (темно, сопротивление фоторезистора большое), выполняем блок ниже. |
| 10–12 | digitalWrite(9, HIGH) — включаем светодиод. |
| 13–16 | Иначе (значение 700 и больше — светло) выполняется else: digitalWrite(9, LOW) — светодиод выключен. |
| 17 | delay(100) — измерения не чаще 10 раз в секунду, чтобы не загружать плату зря. |
| 18 | Конец loop(); измерения продолжаются непрерывно. |