</> Задания по ArduinoПрактические работы для Tinkercad Circuits · Школа № 2094

← все задания

03Датчик света

Соберите схему с фоторезистором на аналоговом входе A0 — при снижении освещённости должен включаться светодиод.

Средний

Задание

  1. Соберите делитель напряжения: фоторезистор и резистор 10 кОм, средняя точка — на вход A0.
  2. Подключите светодиод к пину 9 через резистор 220 Ом.
  3. Напишите программу, которая читает значение с A0 и включает светодиод, когда значение меньше 700.
  4. Закройте фоторезистор ладонью — светодиод должен загореться; отпустите — погаснуть.
  5. Дополнительно: откройте «Монитор порта» и посмотрите, какие числа приходят с датчика при разном освещении, затем подберите свой порог вместо 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–4setup(): только одна настройка — пин 9 делаем выходом, потому что к нему подключён светодиод.
6–7Начало бесконечного цикла loop().
8analogRead(A0) измеряет напряжение на входе A0 и возвращает число от 0 до 1023 — «сырое» значение освещённости. Оно сохраняется в переменную svet.
9Проверяем: если значение меньше 700 (темно, сопротивление фоторезистора большое), выполняем блок ниже.
10–12digitalWrite(9, HIGH) — включаем светодиод.
13–16Иначе (значение 700 и больше — светло) выполняется else: digitalWrite(9, LOW) — светодиод выключен.
17delay(100) — измерения не чаще 10 раз в секунду, чтобы не загружать плату зря.
18Конец loop(); измерения продолжаются непрерывно.