НТО Юниоры 2026/27
Книга помогает школьнику самостоятельно подготовиться к отборочному этапу сферы «Агротех» Национальной технологической олимпиады «НТО Юниоры»: теория с нуля, подробные разборы задач и задачи для самопроверки с ответами.
Большинство задач составлены автором по образовательной программе сферы, часть – по мотивам открытых заданий прошлых лет; источник указан у каждой задачи. Уровни сложности – шкала этой книги, а не баллы олимпиады. Правила, сроки и формат отбора – на сайте junior.ntcontest.ru.
Версия 1.0 от 02.10.2026, сборка 02.10.2026. © Артём Осиновский, 2026.
Как устроена эта книга
Эта книга – тренажёр для отборочного этапа сферы «Агротех» олимпиады «НТО Юниоры». В ней теория с нуля, подробные разборы задач и сразу после каждого разбора – похожие задачи «Реши сам» с ответами в конце книги. Своя теплица и набор с датчиками не нужны: половина задач решается в тетради с калькулятором, остальное – в браузере, в том же симуляторе, что и на курсе сферы.
Для кого эта книга
- Для школьников 5–7 классов, которые выбрали (или думают выбрать) сферу «Агротех».
- Для тех, кто ни разу не держал в руках Arduino и ещё не проходил физику. Ток, напряжение, датчик, программа – всё начинается с самого начала, а первый код разобран построчно.
- Для тех, кто живёт в городе и помидоры видел только на тарелке. Про растения тоже рассказываем с нуля.
- Для наставников и родителей, которые хотят помочь. Для них есть отдельный раздел в конце введения.
Как устроен отбор
| Когда | Что происходит |
|---|---|
| до 9 ноября | регистрация на олимпиаду (наш совет – успеть до 20 октября, тогда будут обе попытки) |
| 20–30 октября | отбор, попытка 1 (3 часа) |
| 31 октября – 10 ноября | отбор, попытка 2 (засчитывают лучшую из двух) |
| 7–17 декабря | финалы в регионах |
- Отбор проходит дома, онлайн, с компьютера. Задания открываются в личном кабинете на my.ntcontest.ru и решаются на платформе «Орбита» (orbita.education). Каждый решает сам за себя.
- Задания – это задачи с ответом: ввести число, выбрать верные варианты, сопоставить, расставить шаги по порядку, прочитать график или таблицу, написать короткую программу.
- Разработчик сферы на установочном вебинаре в сентябре 2026 года сказал: вся основная информация для отбора и финала есть в онлайн-курсе сферы. Поэтому книга построена по программе сферы «Агротех. Основы инженерных агросистем». Он же предупредил, что это не тест на зубрёжку: даже на знакомом материале задачи потребуют подумать как инженер.
- На вебинаре для наставников разработчик сказал ещё одну важную вещь: часть задач отбора связана с практикой в симуляторе. Если не умеешь собрать в нём схему и написать простую программу, решать будет очень трудно. Поэтому в главах 5–8 много схем и программ, которые стоит повторить руками.
- За тест бесплатного курса своей сферы дают +5 баллов. Курс – на academy.junior.online, вход через «Талант». Бонус нужно включить самому в личном кабинете («Мои привилегии») до конца отбора. Учти: после этого сферу уже не поменять.
- Финал – командный и очный: участники приезжают на площадку в своём регионе, собираются в команды и решают на компьютерах теоретические задачи и задачи в симуляторе – собирают схемы, пишут программы, обрабатывают данные. Общая тема сезона – космос, поэтому на финале, по словам разработчика, нужно будет построить теплицу для космической базы, где растениям совсем непривычно.
Совет. Сроки и правила могут уточняться. Главный источник – сайт олимпиады junior.ntcontest.ru и памятка для Новосибирской области nto.kvantorium54.ru. Свежие новости сферы публикуют в канале «Сфера Агротех» в мессенджере MAX.
Что пригодится на отборе и где это в книге
На странице сферы перечислено, что пригодится на отборе. Вот где это в книге:
| Что пригодится на отборе | Глава |
|---|---|
| Биология: факторы роста, фотосинтез, дыхание, биоритмы, корневое питание | 1. Растение как живая система |
| Математика: пропорции, проценты, дроби, единицы измерения | 2. Микроклимат теплицы: считаем |
| Математика: графики, временные интервалы, среднее; работа с таблицами | 3. Графики и таблицы агронома |
| Физика: давление жидкостей, испарение и конденсация | 4. Вода и полив |
| Физика: электрические цепи, тепловые явления, преобразование энергии | 5. Электричество, энергия и датчики |
| Информатика: алгоритмы, исполнители, язык и среда программирования | 6. Программирование умной теплицы |
| Анализ данных и обработка сигналов с датчиков (из программы сферы) | 7. Сигналы и обработка данных |
| Метеостанция и альтернативная энергетика (из программы сферы) | 8. Метеостанция и автоматика |
Главы 1–4 можно читать в любом порядке: хватит тетради, карандаша и калькулятора. Главу 5 прочитай раньше главы 6 – без понятия «напряжение» программа для датчика будет казаться заклинанием. Главы 7 и 8 – после шестой: в них программа, датчики и расчёты работают вместе, как в настоящей теплице.
Как пользоваться книгой
В каждой главе теория и разборы идут вперемешку: за разбором сразу стоят две похожие задачи «Реши сам», чтобы закрепить приём, пока он свежий в голове.
- Теория. Коротко и по делу, с рисунками. Каждая новая тема начинается с большой картинки «на пальцах», а самое важное собрано в рамках «Запомни». Все «Запомни» из всех глав повторяются в конце книги, в шпаргалке.
- Разбираем задачи. Задачи похожи на задачи отбора, и к каждой – решение по шагам: что дано, что делаем и почему, где обычно ошибаются, какой ответ получился и похож ли он на правду.
- Реши сам. Сразу после разбора – две задачи на тот же приём, но с другими числами и сюжетом.
- Ответы – в конце книги, в разделе «Ответы и решения». Там только ответ, иногда – короткая подсказка, если задача с подвохом. Полного решения нет специально: если подсказки не хватило, вернись к разбору перед задачей.
Не готов читать всю главу целиком? Есть отдельная короткая книжка «Быстрый старт»: из каждой главы главное, один разбор и несколько задач «Реши сам». Её удобно пройти за неделю, а эту книгу держать под рукой.
У каждой задачи есть уровень – как в обычном задачнике: у трудных задач звёздочка рядом с номером («задача 3*»), лёгкие подписаны словом «разминка». Это уровни нашей книги, а не баллы олимпиады. Сколько задач будет на отборе и сколько стоит каждая, заранее не объявляют.
Совет. Разбор читай с листком бумаги. Закрой решение, попробуй решить сам, а потом сверяйся по шагам. Если в разборе есть схема или программа – собери её в симуляторе. Прочитанная программа забывается к вечеру, запущенная своими руками – помнится до отбора.
У каждой задачи внизу написано, откуда она взялась. «По мотивам задачи отборочного этапа» – значит, похожая задача была на отборе прошлых лет: мы пересказали её своими словами и поменяли числа. «Своя задача по программе сферы» – значит, мы придумали её по теме из программы 2026/27 года. Таких в этой книге большинство, и честно об этом сказано в конце введения.
Как вводить ответы на отборе
Так было на отборочных этапах прошлых лет. На «Орбите» перед каждой задачей читай инструкцию: там сказано, в каком виде нужен ответ.
- Только число, без единиц измерения и без знака процента, если не сказано иначе. Смотри, в чём просят ответ: в литрах или миллилитрах, в минутах или секундах, в вольтах или милливольтах.
- Дробную часть на сайте обычно отделяют точкой:
24.8, а не24,8. В книге мы пишем по-русски, через запятую. - Округляй так, как сказано в условии. Промежуточные результаты не округляй – только ответ.
- Показание
analogRead– всегда целое число от 0 до 1023. Если у тебя вышло 511,5, значит, в задаче спрашивали что-то другое, или ошибка где-то раньше. - Запасы округляй вверх. Если воды в баке должно хватить, а поливов получилось 9,2, бак нужен на 10.
- Выбор нескольких вариантов часто вводят строкой из их номеров – например,
135. Порядок цифр и нужны ли пробелы, смотри в инструкции к задаче. - У каждого могут быть свои числа. В некоторых задачах условие генерируется для каждого участника отдельно, так что списать ответ не выйдет.
- Попытки ограничены. На задачу даётся несколько попыток ввода, и каждая неверная снижает балл за неё. Сначала реши на бумаге или проверь программу в симуляторе, и только потом вводи ответ.
Что понадобится
- Тетрадь в клетку, карандаш, линейка – для глав 1–4 и для графиков.
- Калькулятор. Хватит обычного на телефоне: проценты, дроби, деление.
- Компьютер с интернетом и мышью – для глав 5–8. Схему на планшете собирать мучительно: провода тянутся мышкой.
- Tinkercad – онлайн-симулятор, в котором работают курс, отбор и финал сферы. Раздел «Цепи» (по-английски Circuits): собираешь схему из платы Arduino Uno, датчиков и проводов, пишешь программу и смотришь, как всё работает. В курсе сферы есть ссылка на класс «Агротех» и подробная инструкция, как в него войти. Отдельно регистрироваться не нужно.
- Wokwi (wokwi.com) – запасной симулятор Arduino в браузере. Если на твоём компьютере он не открывается, хватит Tinkercad. На бесплатной учётной записи запуск иногда ждёт в очереди несколько секунд.
- Кибериада IDE (по-английски Cyberiada IDE; ищи по обоим названиям) – редактор, где программу не пишут строчками, а рисуют схемой из состояний и переходов (язык ПРИМС). С ней работают в модулях курса про машины состояний, ссылка – в курсе.
- Arduino IDE – по желанию, если дома есть настоящая плата. Писать в ней код удобно и без платы, а потом копировать в симулятор. Для подготовки к отбору хватит симулятора; программу для настоящей платы поможет поставить педагог кружка.
- Таблицы – Excel, LibreOffice Calc или любые онлайн-таблицы: для главы 3 и для задач, где данные с датчиков нужно посчитать и построить по ним график.
Эти же четыре инструмента – онлайн-симулятор, Кибериада IDE, Arduino IDE и таблицы – названы в официальных требованиях к площадкам финала сферы «Агротех».
Tinkercad: вход в класс и первая схема
Tinkercad (tinkercad.com) – бесплатный симулятор электронных схем и Arduino прямо в браузере: ставить ничего не нужно. В нём идёт практика курса сферы. Регистрироваться тоже не надо – курс даёт ссылку на класс и общее имя ученика. Ниже весь путь по шагам, рамка с номером на картинке – куда нажимать.
Шаг 1. Войти в класс. Открой ссылку на класс курса: tinkercad.com/joinclass/XWZDYPNAX (класс курса «Агротех»; та же ссылка – в курсе сферы, модуль 5 «Теория и практика по созданию инженерных агросистем. Часть 1»). Нажми «Присоединиться, используя имя учащегося» (1 на левой половине рисунка). Впиши имя учащегося test (1 на правой половине) и нажми «Перейти в класс» (2).


Шаг 2. Новая схема. Вверху справа нажми «Создать» (1), в меню – «Цепи» (2). Откроется редактор схем.
Шаг 3. Окно редактора. Вот что в нём где.
- Инструменты: копировать, вставить, удалить, отменить и вернуть действие, повернуть деталь.
- «Код» – программа для Arduino; «Начать моделирование» – запуск схемы.
- Компоненты: сверху выбор набора, ниже поиск и сами детали. Деталь перетаскивают мышью на поле.
- Рабочее поле – здесь собирают схему. Провод тянется так: щёлкни по выводу одной детали, потом по выводу другой.
- Свойства выбранной детали – например, цвет светодиода или сопротивление резистора.
Шаг 4. Готовая схема для старта. В списке компонентов выбери «Стартовые наборы» → «Arduino» (1 на левой половине) и перетащи на поле «Мерцание» (1 на правой половине): это Arduino со светодиодом, резистором и уже написанной программой. Рядом лежат и другие готовые схемы – кнопка, сервопривод, ультразвуковой дальномер.


Шаг 5. Код и запуск. Кнопка «Код» (1) открывает программу. Её можно смотреть блоками или текстом на языке Arduino: переключатель «Блоки» вверху окна кода. Кнопка «Начать моделирование» (2) запускает схему.
Во время моделирования кнопка называется «Остановить моделирование» (1), а светодиод на плате мигает (2): секунду горит, секунду нет. Остановить – той же кнопкой.
Важно про имя test. Под ним одновременно сидят все ученики курса: твою схему видят и могут поменять другие, а сохранение не гарантируется. Не пиши туда ничего личного. Если хочешь хранить свои работы, заведите вместе со взрослым свой аккаунт Autodesk – вход «Адрес эл. почты или имя пользователя» на том же экране, где выбирают способ входа.
Кибериада IDE: установка и первая программа
Кибериада IDE – бесплатная отечественная среда, в которой программу не пишут строчками, а рисуют диаграммой на языке ПРИМС: режимы работы – прямоугольники-состояния, смена режима – стрелки-переходы. Ниже весь путь от установки до первой программы «мигалка» – задача из курса сферы. Рамка с номером на картинке – куда нажимать.
Шаг 1. Скачать и поставить. Открой method.insitulab.pro/cyberiada и нажми «Скачать программу». Выбери файл под свою систему: .exe – Windows, .dmg – macOS, .deb или .AppImage – Linux. Запусти его. Установщик попросит права администратора – он ставит драйверы для плат, так и должно быть; дома нажимай «Да» вместе со взрослым. После установки программа откроется сама.
Шаг 2. Новый документ. Слева – панель «Документ», в ней «Создать…» (1).
Шаг 3. Платформа. Кибериада умеет работать с разными платами, поэтому сначала выбирают, для какой пишем. Дважды щёлкни «Arduino Uno» в списке платформ (1) – она появится в «Выбрано» (2). Нажми «Создать» (3).
Шаг 4. Компоненты. Компонент – это то, чем программа управляет или от чего ждёт сигнала: светодиод, кнопка, таймер. Нажми «+» у «Компонентов» (1).
Выбери «Светодиод» (1 на левой половине) и нажми «Добавить» (2). В форме впиши название «Светодиод» (1 на правой половине) и выбери пин (2) – номер вывода Arduino, к которому подключён светодиод; на занятии курса это 2. Нажми «Применить» (3). Так же добавь «Таймер» – у него пина нет, только название «Таймер».


Шаг 5. Состояние «Не горит». Дважды щёлкни по пустому месту поля – появится прямоугольник «Состояние». К нему от синего кружка ведёт стрелка: отсюда программа начинает работу. Нажми карандаш (1) и впиши «Не горит», затем Enter.
Теперь скажем, что делать в этом состоянии. Дважды щёлкни по нему – откроется «Редактор состояния». Нажми «+» (1).
В «Редакторе события» в строке «Когда» уже стоит «Общие → Вход» (1): действия выполнятся, как только программа войдёт в это состояние. Так и оставь. Нажми «+» у «Делай» (2).
Выбери компонент «Светодиод» (1) и действие «Погасить» (2), нажми «Сохранить».
Ещё раз «+» у «Делай»: компонент «Таймер» (1), действие «Старт» (2), в поле интервала – 1000 (3), это миллисекунды, то есть одна секунда. Нажми «Сохранить» (4). Переключатель «Интервал» не трогай: он нужен, чтобы брать число из другого компонента, а нам хватит простого числа.
В «Делай» теперь два действия (1). Нажми «Сохранить» (2), потом «Закрыть» в редакторе состояния.
Шаг 6. Состояние «Горит». Так же: двойной щелчок по пустому месту, имя «Горит», одно действие – «Светодиод → Зажечь». Таймер второй раз запускать не нужно: на платформе Arduino Uno таймер повторяющийся – запустили один раз, и он срабатывает каждую секунду. На других платформах бывает иначе – смотри описание компонента.
Шаг 7. Переходы. Щёлкни по «Не горит» – вокруг появятся плюсики. Потяни мышью нижний плюсик (1) до состояния «Горит» (2) и отпусти.
Откроется «Редактор соединения». В «Когда» выбери «Таймер» (1) и «Тайм-аут» (2) – переход случится, когда таймер отсчитает секунду. Условия и действия не нужны. Нажми «Сохранить» (3).
Так же протяни стрелку обратно – из «Горит» в «Не горит», с тем же событием. Если две стрелки легли одна на другую, перетащи значок перехода мышью в сторону.
Прочитай программу по стрелкам: старт → «Не горит» (погасить, запустить таймер) → через секунду тайм-аут → «Горит» (зажечь) → тайм-аут → «Не горит» – и так по кругу. Светодиод мигает раз в секунду. Сохрани работу: «Документ → Сохранить как…», программа сохранится файлом .graphml.
Карта значков слева. По ним переключают панели.
- Документ – создать, открыть, сохранить.
- Диаграмма – машины состояний, компоненты, иерархия состояний.
- Компилятор – превращает диаграмму в прошивку для платы.
- Загрузчик – записывает прошивку в плату через USB.
- Монитор порта – показывает, что плата присылает по USB.
- История изменений – что и когда менялось в документе.
- Документация – справка (её же открывает F1).
- Настройки.
Шаг 8. Компиляция и прошивка – когда есть плата. Открой «Компилятор» (3 на карте) и нажми большую синюю кнопку (1) – «Скомпилировать». Кружок рядом с заголовком (2) показывает связь с компилятором: если он красный, кнопка называется «Переподключиться» – нажми её и дождись, пока кружок станет зелёным.
Подключи Arduino к компьютеру кабелем и открой «Загрузчик» (4 на карте). Нажми «Подключить плату» (1), выбери свою плату в списке и нажми синюю кнопку с изображением платы – «Прошить». Прошивка готова, когда в «Журнале действий» появится подтверждение.
Платы под рукой нет – диаграмму всё равно можно проверить: пройди пальцем по стрелкам, как в разборах этой книги, и посмотри, в каком состоянии окажется программа после каждого события.
Wokwi: симулятор Arduino в браузере
Wokwi (wokwi.com) – бесплатный симулятор Arduino прямо в браузере. Ставить ничего не нужно, регистрироваться тоже: плату, светодиоды, кнопки и датчики «собирают» на экране проводами, а программу пишут тут же и запускают кнопкой. Ничего не сгорит, даже если ошибёшься. Если на твоём компьютере сайт не открывается, все схемы этой книги собираются и в Tinkercad. Интерфейс английский: названия кнопок ниже даны в кавычках по-английски, с переводом. Рамка с номером на картинке – куда нажимать. Зачем в схеме резистор – в главе об электричестве и электронике, что делают setup(), loop() и Serial – в главе про программирование Arduino. А здесь – как работать в самой программе и три задачи, чтобы руки привыкли.
Шаг 1. Открыть. Самый короткий путь – ссылка wokwi.com/projects/new/arduino-uno: сразу откроется чистый проект с платой Arduino Uno. То же самое кнопками: на главной странице wokwi.com выбери «Arduino (Uno, Mega, Nano)» (1 на левой половине рисунка), а на открывшейся странице в блоке «Start from Scratch» («Начать с нуля») – «Arduino Uno» (1 на правой половине).


Входить в аккаунт не нужно: кнопки «Sign in» и «Sign up» (вход и регистрация) вверху справа не нажимай. Зато у работы без входа есть два неудобства. Первое: проект нигде не хранится. Обновишь страницу или закроешь вкладку – всё пропадёт, так что перед закрытием скачай проект (шаг 7). Второе: перед запуском Wokwi собирает программу на своём сервере. Обычно это доли секунды, иногда до минуты. Подожди, это нормально.
Шаг 2. Окно Wokwi. Слева – программа, справа – плата и схема.
- Вкладки. «sketch.ino» – твоя программа. «diagram.json» – та же схема, записанная текстом: Wokwi пишет её сам, и в эту вкладку можно вставить готовую схему. «Library Manager» – подключаемые библиотеки, нам не понадобится.
- Окно программы. Сразу лежат две обязательные функции,
setup()иloop(). - «Start the simulation» («запустить симуляцию») – зелёная кнопка.
- «Add a new part» («добавить деталь») – синяя кнопка «+».
- Меню «Zoom, grid, and more» (три точки). «Undo» – отменить (Ctrl + Z), «Zoom in» и «Zoom out» – приблизить и отдалить, «Fit» – вернуть схеме размер по окну, «Toggle Grid» – показать сетку. Меню само не закрывается: закрой его клавишей Esc.
- Плата Arduino Uno. Ножки подписаны: цифровые 0–13 – сверху, а питание (5V, GND – «земля») и аналоговые A0–A5 – снизу.
- «Save» («сохранить») работает только со входом, поэтому нам нужна стрелка рядом с ним: в её меню лежит «Download project ZIP» (шаг 7).
Шаг 3. Добавить деталь. Нажми «+» (4 на карте окна). Откроется список деталей. В разделе «Basic» («основные») лежат LED – светодиод, Pushbutton и Pushbutton 6mm – кнопки (побольше и поменьше), Resistor – резистор (2). Нужной детали на виду нет? Впиши её английское название в строку поиска (1), например potentiometer. Щёлкни по детали – она появится в левом верхнем углу поля. Нажми на неё и перетащи мышью на свободное место рядом с платой.
Шаг 4. Настроить и повернуть. Щёлкни по детали – над полем появится её панель. У резистора в ней поле «Resistance» («сопротивление», 1), кнопка «Rotate» («повернуть», 2) и корзина «Delete» («удалить», 3). Впиши в поле 220 и нажми Enter: полоски на резисторе перекрасятся. В поле число – это омы, а буква k – «кило»: 1k – это 1000 Ом.
Деталь поворачивают кнопкой «Rotate» или клавишей R: одно нажатие – четверть оборота. Удалить деталь можно корзиной или клавишей Delete.


Шаг 5. Провода. Щёлкни по ножке одной детали – от неё потянется провод. Щёлкни по ножке другой детали – провод закрепится. Передумал, пока тянешь, – нажми Esc, и провода не будет. Наведи мышь на ножку, и Wokwi её подпишет: led1:C – это деталь led1 и её ножка C, катод (у светодиода есть ещё led1:A – анод). Пока тянешь провод, цвет можно сменить цифрой: 2 – красный, 0 – чёрный, 5 – зелёный (как цвета полосок на резисторах). Лишний провод убирают так: щёлкни по нему и нажми Delete.


Шаг 6. Запуск и монитор порта. Нажми «Start the simulation». Пока Wokwi собирает программу, подожди, потом схема оживёт: светодиоды горят, кнопки нажимаются мышью. На месте зелёной кнопки появятся три: «Restart the simulation» (начать заново), «Stop the simulation» (остановить, 1) и «Pause» (пауза). Кнопки «+» и меню с тремя точками при этом спрятаны: чтобы поправить схему, сначала нажми «Stop». Вверху справа бежит время симуляции (2). Если в программе есть Serial.println(...), внизу откроется монитор порта (3). Это окно, куда плата «печатает» числа и слова. В нижнем ряду у него кнопка графика («Serial plotter»), корзина (очистить окно) и стрелка (свернуть монитор).
Шаг 7. Сохранить. Без входа работу сохраняют архивом: нажми стрелку рядом с «Save» (1) и выбери «Download project ZIP» (2). Скачается project.zip: в нём sketch.ino – программа, diagram.json – схема и ещё wokwi-project.txt – ссылка на сайт. Чтобы вернуться к работе, открой новый проект, во вкладку sketch.ino вставь текст из sketch.ino, а во вкладку diagram.json – текст из diagram.json.
Задача П.1. Мигалка. Собери схему: ножка 4 → резистор 220 Ом → анод светодиода, катод светодиода → GND. На рисунке провод от ножки 4 (1) идёт к одному концу резистора (2), от другого его конца – к аноду светодиода (3), а от катода (левая ножка) – на GND (4) рядом с ножкой 13. Резистор ограничивает ток: в настоящей схеме без него светодиод бы сгорел.
Вставь в окно программы текст и нажми «Start the simulation».
void setup() {
pinMode(4, OUTPUT); // ножка 4 – выход
}
void loop() {
digitalWrite(4, HIGH); // светодиод включить
delay(1000); // ждать 1000 мс = 1 с
digitalWrite(4, LOW); // выключить
delay(1000); // ждать ещё 1 с
}

Что должно получиться: секунду светодиод горит, секунду нет. Теперь нажми «Stop», поменяй оба delay(1000) на delay(250) и запусти снова. Сколько раз вспыхнет светодиод за 10 секунд по времени симуляции? Ответ: 20. Одна вспышка – это 250 мс горит и 250 мс не горит, то есть 0,5 с, а 10 : 0,5 = 20. Мы прогнали это в Wokwi: за 10 секунд ровно 20 вспышек. Светодиод не горит совсем? Проверь полярность: анод (правая ножка) должен смотреть в сторону резистора, а катод – на GND. Включённый наоборот светодиод не загорится, но и не сгорит.
Задача П.2. Кнопка. Открой новый проект (шаг 1): схема из П.1 больше не нужна. Лампочку возьмём ту, что уже стоит на плате: это светодиод L, он подключён к ножке 13. Добавь Pushbutton. У кнопки четыре вывода – два сверху и два снизу. Внутри кнопки два верхних вывода соединены всегда, два нижних тоже, а нажатие соединяет верхнюю пару с нижней. Поэтому провода берут так: один вывод верхней пары – к ножке 2, один вывод нижней пары – к GND. На рисунке это верхний правый вывод (1) и ножка 2 (3), нижний левый вывод (2) и GND (4).
Программа. Здесь кнопка – вход с подтяжкой (INPUT_PULLUP): пока кнопка отпущена, на ножке 1.
void setup() {
pinMode(2, INPUT_PULLUP); // кнопка: вход, подтянутый к 5 В
pinMode(13, OUTPUT); // светодиод L на плате
Serial.begin(9600);
}
void loop() {
int knopka = digitalRead(2);
Serial.println(knopka);
if (knopka == LOW) { // нажата = LOW
digitalWrite(13, HIGH);
} else {
digitalWrite(13, LOW);
}
delay(200);
}Запусти, потом нажми на кнопку мышью и подержи, а затем отпусти.


Что должно получиться: пока кнопка отпущена, в мониторе порта единицы, а L не горит. Нажал и держишь – пошли нули, и L загорается. Отпустил – снова единицы. Ответ: нажатой кнопке соответствует 0 (LOW), отпущенной – 1. Сплошные нули без нажатия? Значит, оба провода сели на выводы одной пары, например на два верхних: такая кнопка «нажата» всегда. Перенеси один провод на вывод другой пары.
Задача П.3. Потенциометр. Открой новый проект. Перетащи плату повыше: под ней нужно место. Добавь «Potentiometer» (строка поиска, potentiometer), поставь его под платой, щёлкни по нему и дважды нажми R: выводы окажутся сверху, ближе к плате. Они подписаны мелко: VCC, SIG, GND. Провода: красный – от VCC на 5V, чёрный – от GND на GND рядом с 5V, зелёный – от SIG на A0. На рисунке это выводы потенциометра (1), питание платы (2) и аналоговая ножка A0 (3).
Программа печатает в монитор порта число с ножки A0.
void setup() {
Serial.begin(9600);
}
void loop() {
int n = analogRead(A0); // число от 0 до 1023
Serial.println(n);
delay(300);
}Запусти, нажми мышью на круглую ручку и води по кругу: ручка идёт за курсором, а числа в мониторе меняются сразу. Между двумя упорами у ручки есть пустой промежуток. Если провести через него, число перескочит с 1023 на 0 или обратно.


Что должно получиться: в одном крайнем положении ручки в мониторе 0, в другом – 1023, а посередине – около 500. Сразу после добавления ручка стоит на нуле, поэтому первые числа в мониторе – нули. Ответ: 0 и 1023. Это границы analogRead: 0 соответствует 0 В, а 1023 – 5 В. Вопрос на подумать: какое напряжение на A0, когда в мониторе 512? Ответ: около 2,5 В, потому что 512 · 5 / 1023 ≈ 2,5.
План на месяц до отбора
Если начинаешь в конце сентября, вот спокойный план: примерно по часу в день.
| Неделя: что читаем | Главное дело недели |
|---|---|
| 1: главы 1–3 | записаться на курс сферы |
| 2: главы 4–5 | собрать схемы в Tinkercad |
| 3: главы 6–7 | запустить программы из разборов |
| 4: глава 8 и шпаргалка | пройти тест курса сферы, если ещё не прошёл (+5 баллов) |
Подробнее по неделям:
- Неделя 1. Запишись на курс сферы и войди в класс «Агротех» в Tinkercad – просто чтобы убедиться, что всё открывается. Каждый день решай «Реши сам» к свежим разборам.
- Неделя 2. Собери в Tinkercad схемы из главы 5: светодиод с резистором, фоторезистор, термометр.
- Неделя 3. Повтори программы из разборов глав 6 и 7, посмотри показания датчиков в мониторе порта и на графике.
- Неделя 4. Заново реши задачи, где были ошибки, пролистай шпаргалку и пройди тест курса сферы.
С 1 октября у олимпиады по плану открывается демо-этап с пробными заданиями. Попробуй их, как только появятся: так заранее увидишь, как выглядят задачи на «Орбите» и куда вводить ответы, и не будешь тратить на это время отбора.
Отбор длится до 10 ноября, и попыток две. Если первая прошла неудачно, вернись к главам, где потерял баллы, и иди на вторую.
Родителям и наставникам
- Помогайте разбираться, но не решайте за ребёнка. На командном финале сразу видно, кто разобрался сам, а за кого решили. Лучше пусть ребёнок ошибётся на отборе и научится, чем попадёт в финал и растеряется там.
- Садитесь рядом на первых задачах в симуляторе. Детей останавливает скорее «не могу войти в класс», «кнопка моделирования не нажимается» или «куда делась моя схема», чем трудная задача. Две подсказки из вебинара сферы: общая учётная запись класса «Агротех» не сохраняет проекты (нужное стоит переписать в тетрадь или скопировать код в файл), а если после ошибки в программе моделирование не запускается, помогает обновить страницу.
- Если дома есть настоящая плата Arduino, напомните правила, которые разработчики сферы просят повторять даже при работе в симуляторе: схему меняют только при отключённом питании, мокрыми руками к ней не прикасаются, свои детали без спроса не подключают. В симуляторе ничего не сгорит, а настоящий светодиод без резистора сгорает за секунду.
- Всё про регистрацию, бонусы и финал для Новосибирской области – на nto.kvantorium54.ru (вкладки «Я наставник» и «Я участник или родитель»).
- Региональный координатор НТО Юниоры в Новосибирской области – детский технопарк «Кванториум», info@kvantorium54.ru.
Честно об этой книге
Главное, что нужно знать про эту книгу: заданий отбора 2026/27 мы не видели – организаторы их заранее не показывают. Угадывать их бесполезно: наставники, которые следят за олимпиадой не первый год, говорят, что задания из года в год не повторяются. Поэтому книга учит темам из программы сферы и приёмам решения, а не готовит к конкретным задачам. Когда организаторы выложат пробные задания, мы сверим с ними книгу и выпустим новую версию.
Это не официальное издание НТО. Книгу составил методист «Кванториума» по открытым материалам олимпиады: программе сферы «Агротех. Основы инженерных агросистем» 2026/27, записям вебинаров сферы для наставников и участников, официальным требованиям к площадкам финала.
Сфера «Агротех» появилась только в сезоне 2026/27, поэтому своих задач прошлых лет у неё нет. Ближе всего к ней по темам сфера «Технологии и среда обитания» прошлых сезонов: там тоже были метеостанция, умная теплица и Arduino. Но тексты её задач в открытом доступе закрыты – видны только названия вроде «Графики спасают урожай» или «Как полить сити-ферму и сэкономить?». Эти темы мы использовали как подсказку, о чём спрашивают, а сами задачи придумали заново по программе сферы. Поэтому большинство задач в книге – свои.
Книга написана до демо-этапа с пробными заданиями. Когда он откроется, мы сверим книгу с настоящим форматом задач и обновим её. Кнопки Tinkercad и Кибериады описаны такими, какими их показывали на вебинарах в сентябре 2026 года: если интерфейс изменится, смысл останется тем же.
Каждое число в ответах мы пересчитали на компьютере, а каждую программу запустили. Если ты всё-таки нашёл ошибку или что-то осталось непонятным, напиши автору: osinovsky.aa@kvantorium54.ru. Следующие версии книги станут лучше благодаря тебе.
Растение как живая система

Умная теплица начинается с растения. Датчик покажет «+31 °C», но хорошо это или плохо, скажет только тот, кто знает, чего хочет помидор. Здесь – из чего растение строит себя, когда оно ест и когда дышит, зачем ему корни и почему к утру в закрытой теплице копится углекислый газ. В задачах по этой теме придётся выбирать верные утверждения, подбирать причину к признаку и делать выводы из описания опыта. Счёт тоже будет: проценты, часы и минуты, пропорции.
1.1. Что нужно растению
Каждая доска – одно из условий жизни растения. Сколько ни наращивай длинные доски, воды больше не станет, пока не надставишь короткую.
Семечко огурца весит меньше грамма, а за лето из него вырастает плеть длиной в пару метров с десятком огурцов. Строительный материал для этого растение берёт из окружающего мира. Условия, от которых зависит, как оно растёт, называют факторами роста. Главных пять:
- свет – источник энергии, без него растение не может сделать себе еду;
- тепло – при холоде жизнь внутри растения идёт медленно, при жаре оно страдает;
- вода – из неё травянистое растение на 80–95 % и состоит, она же несёт по стеблю питательные вещества;
- воздух – листьям нужен углекислый газ, а корням и всем живым клеткам – кислород;
- минеральное питание – соли азота, фосфора, калия и других веществ, которые корни берут из почвы.
Ни один фактор не заменяет другой. Нельзя «добрать» свет лишним поливом, а азот – теплом. В XIX веке немецкий химик Юстус Либих прославил простое правило: урожай зависит от того условия, которого растению не хватает сильнее всего. Его называют законом минимума, а рисуют его бочкой из досок разной высоты, как на картинке выше. Вода в ней стоит вровень с самой короткой доской.
Зимой в теплице под Новосибирском самая короткая доска почти всегда – свет: день длится около семи часов, а солнце висит низко. Летом в той же теплице в солнечный полдень может быть за +40 °C, и короткой доской становится тепло, вернее, его избыток. Поэтому агроном в разные месяцы борется с разными бедами.
На лунной базе растению не достанется ничего бесплатно: свет дадут лампы, тепло – обогреватель, воду и углекислый газ – система жизнеобеспечения. Каждую доску бочки там строит инженер. Кстати, теплица для космической базы – сквозная тема финала Агротеха в этом сезоне (так говорили разработчики сферы на вебинаре).
Сколько нужно. Точные нормы зависят от сорта и от возраста растения, поэтому ниже – ориентиры, примерные для многих сортов. По ним агрономы настраивают тепличную автоматику.
| Культура | Днём, °C | Ночью, °C | Влажность воздуха, % |
|---|---|---|---|
| Томат | 20–25 | 16–18 | 60–70 |
| Огурец | 24–28 | 18–20 | 80–90 |
| Листовой салат | 16–20 | 10–15 | около 70 |
Огурец любит тепло и сырость: его родина – влажные леса у подножия Гималаев в Индии. Томату сырость вредна, во влажном воздухе его листья быстро поражает грибок. Салат – культура прохладная: в жару он пускает цветочную стрелку, и листья горчат. А выше +30–32 °C у томата хуже развивается пыльца: завязей становится меньше, а при +35 °C и выше цветы опадают, так и не дав плодов. Освещённость для томата в тесте курса – 20 000–50 000 лк.
Запомни. Факторов роста пять, и ни один не заменяет другой. Урожай держит на привязи тот, которого не хватает сильнее всего, – это закон минимума. У каждой культуры свои нормы: огурцу подавай тепло и сырость, томату – посуше, салату – прохладу.
1.2. Фотосинтез: еда из воздуха и света
Лист – кухня, которая работает на солнечной энергии. Продукты – газ из воздуха и вода из корней, блюдо – сахар.
Растение не ест готовую еду, как мы. Оно делает её само, и делает в листьях. Этот процесс называют фотосинтезом: «фото» – свет, «синтез» – соединение, сборка. Словами: на свету из углекислого газа и воды лист делает сахар и выделяет кислород. Коротко это записывают так:
Работает эта кухня благодаря хлорофиллу – зелёному веществу в клетках листа. Хлорофилл ловит свет и тратит его энергию на сборку сахара. Из сахара растение потом делает всё остальное: крахмал про запас, клетчатку для стенок клеток, а с помощью солей из почвы – белки.
Откуда тогда берётся вес растения? Не из земли, хотя так думали сотни лет. В XVII веке учёный из Фландрии (сейчас это Бельгия) Ян ван Гельмонт насыпал в горшок около 90 кг сухой земли и посадил ветку ивы весом чуть больше 2 кг. Пять лет он поливал её только дождевой водой. Ива потяжелела примерно до 77 кг, а земля за это время полегчала граммов на шестьдесят. Сам ван Гельмонт решил, что ива выросла из воды. Сейчас мы знаем: почти вся сухая масса растения собрана из углекислого газа, который лист вытянул из воздуха.
Почему листья зелёные. Солнечный свет только кажется белым – в нём смешаны все цвета радуги. Хлорофилл сильнее всего поглощает красный и синий свет, а зелёный почти не берёт и отражает. Этот отражённый зелёный свет и попадает нам в глаза. Отсюда розово-фиолетовые фитолампы в теплицах: в их свете много красного и синего, того, что растению нужнее всего.
Сколько света. Освещённость измеряют в люксах (лк). Для сравнения (по справочной таблице Википедии):
| Где | Освещённость, лк |
|---|---|
| Прямое солнце | 32 000–100 000 |
| Ясный день в тени | 10 000–25 000 |
| Пасмурный день | около 1000 |
| Рабочее место в офисе | 320–500 |
| Восход или закат в ясную погоду | около 400 |
Глаз этой разницы почти не замечает: в комнате нам светло, а растению – сумерки. Солнечный полдень ярче офисной лампы в сотни раз.
Чем больше света, тем быстрее фотосинтез, – но только до поры. На графике видно: сначала линия круто идёт вверх, а потом становится почти горизонтальной. Это насыщение: листу уже хватает света, и тормозит его что-то другое, например нехватка углекислого газа или холод. Опять закон минимума. А при очень слабом свете, левее оранжевой точки, растение тратит на дыхание больше сахара, чем успевает сделать. Такое растение не растёт, а худеет.
Запомни. Фотосинтез идёт в листьях на свету: углекислый газ + вода → сахар + кислород. Хлорофилл берёт в основном красный и синий свет, зелёный отражает. После насыщения лишний свет почти ничего не прибавляет.
Совет. В задачах про фотосинтез держи в голове «кухню» с картинки: что входит (свет, CO₂, вода) и что выходит (сахар, кислород). Утверждение, где газы перепутаны местами, сразу отбрасывай.
1.3. Дыхание: растение тоже тратит
Фотосинтез похож на зарплату, дыхание – на расходы. Зарплата приходит только днём, а тратить приходится круглые сутки.
Сахар, сделанный листом, – это запас энергии. Чтобы им воспользоваться, растение его «сжигает» с помощью кислорода, как мы сжигаем еду. Этот процесс называют дыханием. Словами: сахар и кислород превращаются в углекислый газ и воду, а освобождённая энергия идёт на жизнь и рост. Выходит фотосинтез наоборот:
Дышат все живые клетки растения – листья, стебель, корни, цветы, плоды – и дышат всегда, днём и ночью. Частая ошибка школьников – думать, что растения днём делают кислород, а ночью дышат. Днём они делают и то и другое, просто фотосинтез в светлое время идёт намного быстрее дыхания. Поэтому днём лист в итоге поглощает углекислый газ, а ночью, когда фотосинтеза нет, только выделяет его.
Проверить, что растения дышат, можно без приборов. Насыпь в термос горсть проросших семян фасоли, а в другой – такую же горсть семян, заранее прокипячённых (живых клеток в них уже нет). Через сутки в первом термосе будет заметно теплее: при дыхании выделяется тепло. А если в воздух из первого термоса опустить горящую лучинку, она погаснет – кислород там израсходован, вместо него углекислый газ.
Зачем ночью прохладнее. Чем теплее, тем быстрее дыхание. Тёплой ночью растение сжигает много сахара впустую – днём заработанное уходит в трубу. Поэтому в теплице ночью держат на несколько градусов ниже, чем днём (сравни столбцы таблицы в разделе 1.1).
Углекислый газ в теплице. В уличном воздухе углекислого газа мало – около 0,04 %. Такие маленькие доли удобнее считать в ppm – «частях на миллион»: 1 ppm – одна частица из миллиона. Сейчас на улице около 420–430 ppm. Если теплицу закрыть на ночь, растения надышат углекислого газа, и к утру его станет больше, чем снаружи. Утром включается фотосинтез – и к обеду газа в закрытой теплице может остаться меньше, чем на улице. Растениям его уже не хватает, поэтому теплицу проветривают, а в больших тепличных комбинатах углекислый газ даже подают специально – до 800–1000 ppm.
Запомни. Дыхание: сахар + кислород → углекислый газ + вода + энергия. Растение дышит всегда. Днём фотосинтез сильнее дыхания, ночью фотосинтеза нет. В закрытой теплице CO₂ растёт ночью и падает днём.
1.4. Корни: вода и минеральное питание
Растение работает как водопровод. Корни забирают воду из земли, стебель поднимает её вверх, а листья выпускают почти всю наружу паром.
У корня две работы: держать растение в земле и всасывать воду. Всасывает он кончиками, на которых растут тысячи корневых волосков – тоненьких выростов тоньше волоса. Они сильно увеличивают поверхность корня, как ворс на махровом полотенце: такое полотенце впитывает больше гладкого.
Вместе с водой в корень входят растворённые в ней минеральные соли. Главных «элементов питания» три, их пишут на каждом пакете удобрения буквами N, P, K:
- азот (N) – для роста листьев и стеблей; нехватку выдают бледные, желтеющие старые листья;
- фосфор (P) – для корней, цветения, созревания семян;
- калий (K) – для плодов и устойчивости к болезням и холоду.
Почти всю воду, которую корни подняли, растение отдаёт в воздух – больше 90 %. Испаряется она через устьица – крошечные «форточки», которых больше всего на нижней стороне листа. Испарение воды растением называют транспирацией. Зачем такая расточительность? Испаряясь, вода охлаждает лист, как пот охлаждает нас в жару. А ещё она тянет за собой снизу новую воду с солями.
Корни тоже дышат. Им нужен кислород из воздуха, который есть между комочками почвы. Если землю в горшке постоянно заливать, все промежутки занимает вода, корни задыхаются и начинают гнить. Растение при этом вянет, хотя воды вокруг полно. Поэтому датчик влажности почвы в умной теплице следит за обеими границами: и «слишком сухо», и «слишком мокро».
Запомни. Корни всасывают воду с минеральными солями через корневые волоски. N – листья, P – корни и цветы, K – плоды. Больше 90 % воды испаряется через устьица. Корням нужен кислород, поэтому перелив опасен так же, как засуха.
1.5. Суточные ритмы
У растения нет будильника, но режим дня у него есть. Его задают восход и закат.
Всё, что в растении повторяется раз в сутки, называют суточными (биологическими) ритмами. Примеры ты видел сам: одуванчик к вечеру закрывает соцветие, а утром раскрывает. У большинства растений на свету открываются устьица – лист «вдыхает» углекислый газ для фотосинтеза. В темноте они закрываются, чтобы зря не терять воду. В сильную жару и засуху устьица тоже закрываются, даже днём, – и фотосинтез тормозит.
Растения замечают и длину дня – сколько часов в сутках светло. По ней они «узнают» время года. Редис, например, при длинном летнем дне уходит в стрелку и цветёт вместо того, чтобы наливать корнеплод. Поэтому его сеют весной или в конце лета.
В Новосибирске летом день длиннее семнадцати часов, а в декабре – чуть больше семи. Рассаду сеют в конце зимы, когда света мало, поэтому её досвечивают – включают лампы утром до рассвета и вечером после заката. Так делают на подоконниках и в больших теплицах. Сколько часов должны гореть лампы – задача на временные интервалы, мы её решим в задаче 1.5.
Как считать длину дня. Из времени заката вычитаем время восхода. Часы и минуты вычитаем отдельно, а если минут не хватает – занимаем один час, это 60 минут. Пример: восход в 8:21, закат в 19:02. Минуты: 2 − 21 не получается, занимаем час: 62 − 21 = 41 мин, часов стало 18 − 8 = 10. Длина дня – 10 ч 41 мин.
Запомни. Устьица у большинства растений открыты на свету и закрыты в темноте. Длина дня подсказывает растению время года. Длина дня = закат − восход, в часе 60 минут, а не 100.
Совет. В задачах на время переводи всё в минуты: 8:21 – это мин. Дальше обычное вычитание, а в конце переведи обратно в часы и минуты.
1.6. Микроклимат: что мерить и зачем
У теплицы своя погода, и хозяин не может сидеть в ней круглые сутки. Вместо него дежурят пять датчиков, у каждого своя работа.
Микроклимат – погода внутри небольшого замкнутого места: теплицы, комнаты, аквариума. Для растения главное в нём – температура воздуха, влажность воздуха, освещённость, количество углекислого газа и влажность почвы. Каждый из этих параметров меряет свой датчик, а все вместе – сырьё для автоматики, о которой пойдёт речь в следующих главах.
| Что мерим | Датчик | Единица |
|---|---|---|
| Температура воздуха | термометр (датчик температуры) | °C |
| Влажность воздуха | датчик влажности воздуха (например, DHT11) | % |
| Освещённость | фоторезистор или датчик освещённости | лк |
| Углекислый газ | датчик CO₂ | ppm |
| Влажность почвы | датчик влажности почвы | условные единицы или % |
Зачем мерить, если можно зайти и посмотреть? Затем, что человек ошибается и спит. Теплица в солнечный майский день нагревается за час-два: стекло и плёнка пропускают солнечный свет внутрь, а тёплый воздух наружу не выпускают. Форточку надо открыть вовремя, а не когда хозяин вернётся с работы. Ночью, наоборот, может ударить заморозок.
Запомни. Микроклимат – погода внутри теплицы. У каждой его величины свой датчик и своя единица: градусы, проценты, люксы, ppm. Автоматике нужны числа, «на глаз» она не умеет.
1.7. Влажность воздуха и роса
Пара в воздухе столько же, а стакан за ночь стал меньше. Что не влезло, выливается на стёкла и листья каплями росы.
Влажность воздуха – самый хитрый из пяти параметров. В воздухе всегда есть невидимый водяной пар. Но тёплый воздух может удержать пара намного больше, чем холодный: в кубометре воздуха при +22 °C помещается до 19 г пара, а при +12 °C – только около 11 г. Относительная влажность показывает, на сколько процентов «стакан» заполнен паром от того предела, который возможен при этой температуре:
Посчитаем на числах. В комнате +20 °C, в каждом кубометре воздуха 8,7 г пара, а поместиться может 17,3 г. Влажность: %, стакан налит наполовину. Ночью комната остыла до +10 °C, и предел упал до 9,4 г. Пара всё те же 8,7 г, а влажность уже %. Воды в воздухе не прибавилось ни капли – просто стакан стал меньше.
Если тёплый влажный воздух остывает, предел опускается. Когда пара становится больше предела, лишний пар превращается в капли – выпадает роса. Ты видел это на холодной бутылке из холодильника и на траве летним утром. В теплице ночью роса садится на стёкла и листья, а мокрые листья – лучшее место для грибковых болезней. Температуру, при которой начинает выпадать роса, называют точкой росы.
Запомни. Относительная влажность – сколько пара есть, в процентах от того, сколько может поместиться. Остывая, воздух «сжимает стакан»: проценты растут, хотя пара не прибавилось. Остыл ниже точки росы – выпадает роса.
1.8. Разбираем задачи
Задача 1.1 Кухня и расходы
Выбери все верные утверждения. Ответ – номера верных утверждений по возрастанию, без пробелов и запятых.
- Для фотосинтеза растению нужен свет.
- Растения дышат только ночью.
- При фотосинтезе растение поглощает углекислый газ и выделяет кислород.
- Лист зелёный, потому что хлорофилл лучше всего поглощает зелёный свет.
- При дыхании растение расходует сахар и выделяет углекислый газ.
- Большую часть своей массы растение берёт из почвы.
- Ночью в закрытой теплице углекислого газа становится больше.
Дано: 7 утверждений.
Найти: номера верных.
Шаг 1. Утверждения про фотосинтез (1, 3, 4, 6). Вспоминаем «кухню»: на входе свет, углекислый газ и вода, на выходе сахар и кислород. Утверждение 1 – верно. Утверждение 3 – верно, газы стоят на своих местах. Утверждение 4 – неверно: хлорофилл зелёный свет как раз почти не берёт и отражает, поэтому мы видим лист зелёным. Утверждение 6 – неверно, это старая ошибка, которую опроверг опыт ван Гельмонта с ивой: земля почти не полегчала, масса пришла из воздуха и воды.
Шаг 2. Утверждения про дыхание (2, 5, 7). Растение дышит всегда, значит, 2 – неверно. Утверждение 5 – верно: при дыхании сахар «сжигается», выходит углекислый газ. Утверждение 7 – верно: ночью фотосинтеза нет, дыхание идёт, и углекислый газ в закрытой теплице копится.
Шаг 3. Собираем ответ. Верные: 1, 3, 5, 7. Записываем по возрастанию без пробелов.
Типичная ошибка. Отметить утверждение 2, потому что в памяти засело «днём растения делают кислород, ночью дышат». Слово «только» в тестах – повод насторожиться: проверь, нет ли исключений. Вторая ловушка – утверждение 4: оно звучит логично («зелёный – значит, любит зелёный»), но всё наоборот.
Ответ: 1357.
Своя задача по программе сферы, модуль 2
Реши сам
1.1. Выбери верные утверждения о корнях. Ответ – номера по возрастанию, без пробелов.
- Корень всасывает воду вместе с растворёнными в ней минеральными солями.
- Корням кислород не нужен: они же под землёй.
- Корневые волоски сильно увеличивают поверхность, через которую всасывается вода.
- Сахар растение получает из почвы через корни.
- Если землю в горшке постоянно заливать, корни могут загнить.
- Азот, фосфор и калий растение берёт из почвы.
1.2. Выбери верные утверждения о свете. Ответ – номера по возрастанию, без пробелов.
- Хлорофилл сильнее всего поглощает красный и синий свет.
- Фитолампы часто светят розово-фиолетовым, потому что в их свете много красного и синего.
- Зелёный лист лучше всего использует зелёный свет.
- В солнечный летний полдень освещённость может быть в сотни раз больше, чем на рабочем месте в офисе.
- Если освещённость вырастет вдвое, фотосинтез обязательно тоже вырастет вдвое.
- При очень слабом свете растение может тратить на дыхание больше сахара, чем успевает сделать.
Задача 1.2 Что с растением?
В кружке ребята ведут дневник наблюдений за растениями. Сопоставь признаки (А–Д) и самую вероятную причину (1–6). Одна причина лишняя. Ответ – пять цифр подряд: номер причины для А, для Б, для В, для Г и для Д.
- А. Рассада вытянулась, стебли тонкие и бледные, все тянутся к окну.
- Б. В жаркий полдень листья поникли, а земля в горшке сухая и отстала от стенок.
- В. Земля в горшке мокрая уже неделю, из него пахнет гнилью, растение вянет.
- Г. Старые нижние листья равномерно желтеют, растение растёт медленно, хотя света и воды хватает.
- Д. Томаты в теплице цвели, а завязей нет; днём термометр там показывал +38 °C.
Причины: 1 – перегрев; 2 – не хватает азота; 3 – мало света; 4 – корням не хватает воздуха; 5 – не хватает воды; 6 – слишком холодные ночи.
Дано: 5 признаков, 6 причин, одна лишняя.
Найти: строку из пяти цифр.
Шаг 1. Начинаем с самых ясных. Д: при жаре выше 30–32 °C пыльца томата развивается плохо, а при +35 °C и выше цветы опадают без завязей – это перегрев, 1. Б: сухая земля и полуденная жара – растению не хватает воды, 5.
Шаг 2. Два случая с вянущим растением. Вянет и в Б, и в В, но причины противоположные. В Б земля сухая, а в В – мокрая целую неделю и пахнет гнилью. Воды там с избытком, а вот воздуха корням не осталось – они задохнулись и загнили. В – 4.
Шаг 3. Бледная вытянутая рассада. Растение «ищет» свет: вытягивает стебель к окну и не успевает окрепнуть. А – 3.
Шаг 4. Желтеющие нижние листья. Свет и вода в условии специально исключены. Равномерно желтеют старые листья, когда растению не хватает азота: он уходит из старых листьев в молодые. Г – 2.
Шаг 5. Проверка. Использованы 3, 5, 4, 2, 1. Лишней осталась причина 6 – «холодные ночи», ни один признак на неё не указывает. Каждая цифра встречается один раз.
Типичная ошибка. Увидеть в В слово «вянет» и ответить «не хватает воды». Вянет растение и от засухи, и от перелива: в обоих случаях вода не доходит до листьев. Решает то, что сказано про землю.
Ответ: 35421.
Своя задача по программе сферы, модуль 2
Реши сам
1.3. Сопоставь задачу умной теплицы (А–Д) и датчик, который для неё нужен (1–6). Один датчик лишний. Ответ – пять цифр подряд для А, Б, В, Г, Д.
- А. Узнать, не пора ли поливать грядку.
- Б. Вовремя открыть форточку, пока теплица не перегрелась.
- В. Включить фитолампы, когда на улице стемнело.
- Г. Понять, хватает ли растениям углекислого газа днём.
- Д. Заметить, что воздух слишком сырой и на стёклах вот-вот выступит роса.
Датчики: 1 – термометр; 2 – датчик влажности почвы; 3 – фоторезистор; 4 – датчик CO₂; 5 – датчик влажности воздуха; 6 – анемометр (меряет скорость ветра).
ответ1.4. В трёх теплицах записали средние показания за неделю. Пользуясь таблицей норм из раздела 1.1, определи, какая культура лучше всего подойдёт для каждой: А – томат, Б – огурец, В – листовой салат. Ответ – три буквы подряд для теплиц 1, 2, 3.
- Теплица 1: днём 26 °C, ночью 19 °C, влажность воздуха 85 %.
- Теплица 2: днём 18 °C, ночью 12 °C, влажность воздуха 70 %.
- Теплица 3: днём 23 °C, ночью 17 °C, влажность воздуха 65 %.
Задача 1.3 Пузырьки элодеи
Элодея – водное растение из аквариума. Ребята поставили веточку элодеи в стакан с водой и светили на неё настольной лампой с разного расстояния. Каждый раз ждали 5 минут, а потом считали пузырьки газа, которые поднимались от веточки.
| Расстояние до лампы, см | Пузырьков в минуту |
|---|---|
| 10 | 42 |
| 20 | 40 |
| 30 | 23 |
| 40 | 12 |
| 50 | 6 |
Какие выводы следуют из этого опыта? Ответ – номера по возрастанию, без пробелов.
- Чем ближе лампа, тем больше пузырьков в минуту.
- Пузырьки – это кислород.
- Если отодвинуть лампу на 100 см, пузырьков не будет совсем.
- Между 10 и 20 см число пузырьков почти не меняется: вблизи лампы света растению уже почти хватает.
- Когда лампу отодвинули с 20 до 40 см, число пузырьков уменьшилось больше чем в 3 раза.
- Элодея дышит только в темноте.
Дано: таблица «расстояние – число пузырьков».
Найти: выводы, которые можно сделать из этих чисел.
Шаг 1. Что значит «следует из опыта». Вывод должен опираться на то, что ребята увидели и посчитали. Утверждение может быть верным в жизни, но если опыт его не проверял, из опыта оно не следует. Проверяем каждое по таблице.
Шаг 2. Утверждение 1. Идём по таблице сверху вниз: 42, 40, 23, 12, 6 – числа только уменьшаются, пока лампа отодвигается. Первый вывод опыт подтверждает.
Шаг 3. Утверждение 2. Мы знаем, что при фотосинтезе выделяется кислород. Но ребята газ не проверяли – например, тлеющей лучинкой, которая в кислороде вспыхивает. Они только считали пузырьки, так что из опыта это не следует.
Шаг 4. Утверждение 3. На 100 см лампу не ставили. Сколько будет пузырьков, можно только гадать: в комнате есть и другой свет. Опыт об этом молчит.
Шаг 5. Утверждение 4. От 10 до 20 см: 42 и 40 – разница 2 пузырька. От 20 до 30 см: 40 и 23 – разница 17. Вблизи лампы прибавка света почти ничего не даёт – это насыщение, как на графике раздела 1.2. Следует.
Шаг 6. Утверждение 5. На 20 см – 40 пузырьков, на 40 см – 12. Делим: . Уменьшилось в 3,3 раза – больше чем в 3, утверждение подходит.
Шаг 7. Утверждение 6. Про темноту в опыте ничего нет, а в жизни это вообще неверно: растение дышит всегда.
Настоящий исследователь заметил бы ещё одну вещь: если лампа старая, накаливания, она греет воду, и вблизи вода теплее. Так что часть разницы могла дать температура. Чтобы это исключить, между лампой и стаканом ставят банку с водой – она забирает тепло, а свет пропускает.
Типичная ошибка. Отметить утверждение 2: «это же правда, я читал». В задачах «что следует из опыта» проверяют не эрудицию, а умение отделить увиденное от того, что знаешь заранее. Спроси себя про каждое утверждение: какие числа или наблюдения его доказывают?
Ответ: 145.
Своя задача по программе сферы, модуль 2
Реши сам
1.5. Комнатную пеларгонию (герань) двое суток держали в тёмном шкафу. Потом один лист с обеих сторон закрыли полоской фольги и поставили растение на солнечное окно на целый день. Вечером лист сорвали, прокипятили, обесцветили в спирте и капнули на него раствор йода. Йод синеет там, где есть крахмал. Открытая часть листа посинела, закрытая фольгой – нет. Какие выводы следуют из этого опыта? Ответ – номера по возрастанию, без пробелов.
- На свету в листе образовался крахмал.
- Без света крахмал в листе не образуется.
- Для образования крахмала нужен углекислый газ.
- При фотосинтезе выделяется кислород.
- Крахмал появился только в той части листа, куда попадал свет.
- Крахмал из листа уходит в корни.
1.6. Семена фасоли разложили в четыре банки и неделю наблюдали за ними. Банки 1–3 стояли в тёмном шкафу при +22 °C, банка 4 – в холодильнике при +4 °C (там тоже темно).
- Банка 1: семена на сухой вате – не проросли.
- Банка 2: семена на влажной вате – проросли.
- Банка 3: семена целиком залиты прокипячённой и остуженной водой, в которой почти не осталось воздуха, – не проросли.
- Банка 4: семена на влажной вате – не проросли.
Какие две банки нужно сравнить, чтобы доказать, что семенам для прорастания нужен воздух? А какие – что нужно тепло?
ответЗадача 1.4 Самая короткая доска
На гидропонной ферме в Академгородке растят салат. Когда всего хватает, с 1 м² снимают 3,6 кг за один урожай. Датчики показали, сколько каждого фактора растения получают сейчас (в процентах от того, что им нужно): свет – 55 %, тепло – 90 %, вода – 100 %, азот – 70 %, углекислый газ – 80 %.
Считай по упрощённому закону минимума: урожай равен наибольшему возможному, умноженному на долю того фактора, которого не хватает сильнее всего.
а) Какой урожай с 1 м² ферма получает сейчас?
б) Поставили фитолампы, и свет стал 100 %. Какой урожай будет теперь?
в) На сколько процентов вырастет урожай после установки ламп? Ответ округли до целых.
Дано: максимум 3,6 кг/м²; свет 55 %, тепло 90 %, вода 100 %, азот 70 %, CO₂ 80 %.
Найти: урожай сейчас, урожай после ламп, рост в процентах.
Шаг 1. Ищем самую короткую доску. Сравниваем: 55 %, 90 %, 100 %, 70 %, 80 %. Меньше всех – свет, 55 %.
Шаг 2. Урожай сейчас. 55 % – это 0,55. Урожай: кг с 1 м².
Шаг 3. После ламп. Свет стал 100 %, и он больше не короткая доска. Смотрим заново: 100 %, 90 %, 100 %, 70 %, 80 %. Теперь меньше всех азот – 70 %. Урожай: кг с 1 м².
Шаг 4. Рост в процентах. Процент изменения считаем от того, что было до: урожай прибавил кг, а было 1,98 кг. %, до целых – 27 %.
Лампы дали прибавку, но не ту, на которую надеялся хозяин: «ведь света стало почти вдвое больше». Бочку теперь держит азот. Следующий шаг хорошего агронома – подкормка, а не новые лампы.
Модель, конечно, упрощённая: в жизни факторы влияют друг на друга, и урожай не всегда строго пропорционален самому слабому. Но для прикидки, куда тратить деньги, её хватает.
Типичная ошибка. Перемножить все проценты: кг. Или взять среднее всех процентов. По закону минимума работает только одна доска – самая короткая. И вторая ловушка в пункте б: оставить в ответе 3,6 кг, забыв, что после света короткой доской стал азот.
Ответ: а) 1,98 кг; б) 2,52 кг; в) на 27 %.
Своя задача по программе сферы, модуль 0
Реши сам
1.7. В идеальных условиях с 1 м² теплицы снимают 12 кг огурцов за сезон. Сейчас растения получают: свет – 85 %, тепло – 60 %, вода – 95 %, питание – 90 %. Какой фактор ограничивает урожай и сколько килограммов снимут с 1 м²? Считай по упрощённому закону минимума, как в задаче 1.4.
ответ1.8. На ферме салата максимальный урожай – 4 кг с 1 м². Сейчас растения получают: свет – 70 %, тепло – 95 %, вода – 100 %, азот – 75 %, CO₂ – 85 %. Хозяин хочет снимать 3,4 кг с 1 м². а) Какие факторы обязательно нужно подтянуть? б) Сколько он получит, если улучшит только свет (до 100 %)? Считай по упрощённому закону минимума.
ответЗадача 1.5 Досветка рассады
1 марта в Новосибирске солнце встаёт примерно в 8:21, а садится в 19:02. Рассаде томатов на подоконнике хотят дать 16 часов света в сутки. Утром лампа включается в 6:00 и горит до восхода, вечером включается на закате.
а) Сколько длится светлое время суток 1 марта?
б) Сколько минут в сутки должна гореть лампа?
в) Во сколько её выключить вечером?
Дано: восход 8:21; закат 19:02; нужно 16 ч света; утром лампа с 6:00.
Найти: длину дня; время работы лампы, мин; время выключения.
Шаг 1. Переводим время в минуты от полуночи. Восход: мин. Закат: мин.
Шаг 2. Длина дня. мин. Переводим обратно: и 41 в остатке, то есть 10 ч 41 мин.
Шаг 3. Сколько не хватает. 16 ч – это мин. Не хватает мин – столько и должна гореть лампа за сутки.
Шаг 4. Утренняя часть. С 6:00 (360 мин) до восхода (501 мин): мин.
Шаг 5. Вечерняя часть. мин = 2 ч 58 мин. Выключаем в .
Для пункта в есть путь короче. Свет – солнечный или от лампы – идёт без перерыва с 6:00 до момента выключения. Значит, выключить надо через 16 часов после 6:00, в 22:00, и восход с закатом для этого не нужны. Без них не обойтись только в пункте б.
Пять с лишним часов лампы в сутки для начала марта в Сибири – вполне жизненно: на картинке с длиной дня видно, что солнца тогда меньше одиннадцати часов.
Типичная ошибка. Вычитать время как обычные десятичные числа: и написать «10 ч 81 мин» или «10,81 ч». В часе 60 минут, поэтому минуты при вычитании занимают у часов 60, а не 100.
Ответ: а) 10 ч 41 мин; б) 319 мин; в) в 22:00.
Своя задача по программе сферы, модуль 2
Реши сам
1.9. 15 февраля в Новосибирске солнце встаёт примерно в 8:53, а садится в 18:32. Сколько длится светлое время суток? Ответ дай в часах и минутах.
ответ1.10. Салату в школьной теплице нужно 14 часов света в сутки. Лампы включают только вечером, на закате. 15 марта солнце встаёт примерно в 7:46, а садится в 19:30. Во сколько выключить лампы? Сколько минут они будут гореть?
ответЗадача 1.6 Сутки теплицы
Датчик CO₂ в закрытой теплице с томатами записывал показания каждые 2 часа. Солнце встаёт около 6:00, садится около 20:00. На улице углекислого газа около 420 ppm.
Выбери все верные утверждения. Ответ – номера по возрастанию, без пробелов.
- Больше всего углекислого газа в теплице около 6 утра, перед рассветом.
- Ночью углекислый газ прибавляется, потому что растения дышат, а фотосинтеза нет.
- Меньше всего углекислого газа в 12:00, когда солнце выше всего.
- Днём растения перестают дышать.
- В 14:00 углекислого газа в теплице примерно вдвое меньше, чем в уличном воздухе.
- Если днём открыть форточку, растениям достанется больше углекислого газа.
- С 20:00 до 6:00 углекислый газ прибавлялся в среднем примерно на 40 ppm в час.
Дано: график CO₂ за сутки; на улице 420 ppm.
Найти: номера верных утверждений.
Шаг 1. Максимум и минимум по графику. Самая высокая точка – 820 ppm в 6:00. Утверждение 1 верно. Самая низкая – 210 ppm в 14:00, а в 12:00 было 250 ppm. Утверждение 3 неверно: минимум позже полудня. Растения всё утро и полдень вытягивают газ из закрытой теплицы, и запас кончается к середине дня.
Шаг 2. Почему так. Ночью фотосинтеза нет, дыхание идёт – газ копится. Утверждение 2 верно. Утверждение 4 неверно: дыхание не выключается никогда, днём его просто «перекрывает» фотосинтез.
Шаг 3. Сравнение с улицей. В 14:00 – 210 ppm, на улице 420 ppm: . Вдвое меньше, утверждение 5 верно. Значит, через открытую форточку в теплицу пойдёт воздух, где углекислого газа больше. Утверждение 6 верно.
Шаг 4. Скорость прибавки ночью. В 20:00 – 400 ppm, в 6:00 – 820 ppm. Прибавилось ppm. Прошло времени: от 20:00 до полуночи 4 ч, от полуночи до 6:00 ещё 6 ч, всего 10 ч. В среднем ppm в час – примерно 40. Утверждение 7 верно.
Шаг 5. Собираем ответ. Верные: 1, 2, 5, 6, 7.
Типичная ошибка. Посчитать время от 20:00 до 6:00 как ч: через полночь так вычитать нельзя, дели промежуток на две части. И второе – ответить на утверждение 3 «по логике», не глядя в график: «солнце в полдень выше всего – значит, газа меньше всего». Задача проверяет, умеешь ли ты читать график, а не угадывать.
Ответ: 12567.
Своя задача по программе сферы, модуль 2
Реши сам
1.11. В закрытом боксе с рассадой датчик CO₂ в 21:00 показал 430 ppm, а в 6:00 – 610 ppm. На сколько ppm в час в среднем прибавлялся углекислый газ? Сколько показывал датчик в 3:00, если газ прибавлялся равномерно?
ответ1.12*.* Растение закрыли прозрачным колпаком с датчиком CO₂. Лампа горела 30 минут, и за это время углекислого газа под колпаком стало меньше: было 450 ppm, стало 330 ppm. Потом лампу выключили, и за следующие 30 минут газ поднялся с 330 до 390 ppm. Считай, что дыхание идёт с одной и той же скоростью и при свете, и в темноте. Сколько ppm углекислого газа в минуту поглощал фотосинтез, пока горела лампа?
ответЗадача 1.7* *. Роса на стёклах
Вечером в 20:00 в теплице с томатами +22 °C, влажность воздуха 70 %. Объём воздуха в теплице – 36 м³. Метеостанция обещает холодную ночь, и к утру воздух в теплице остынет до +12 °C. Теплица закрыта, воздух не меняется. В таблице – сколько граммов пара может быть в 1 м³ воздуха самое большее при разной температуре.
| Температура, °C | Пара в 1 м³ самое большее, г |
|---|---|
| 10 | 9,4 |
| 12 | 10,7 |
| 14 | 12,1 |
| 16 | 13,6 |
| 18 | 15,4 |
| 20 | 17,3 |
| 22 | 19,4 |
| 25 | 23,0 |
а) Примерно при какой температуре на стёклах начнёт выпадать роса?
б) Сколько граммов воды к утру выпадет росой? Ответ округли до целых.
Дано: °C; влажность 70 %; м³; °C; таблица.
Найти: точку росы; массу росы.
Шаг 1. Сколько пара в воздухе сейчас. При +22 °C в 1 м³ может быть самое большее 19,4 г пара. Влажность 70 % значит, что пара 70 % от этого предела: г в каждом кубометре.
Шаг 2. Точка росы. Пока теплица остывает, пара в воздухе остаётся те же 13,58 г/м³, а предел опускается. Ищем в таблице, когда предел станет меньше 13,58: при 16 °C он 13,6 г – почти столько же, при 14 °C уже 12,1 г. Значит, роса начнёт выпадать около +16 °C.
Шаг 3. Сколько пара «не поместится» утром. При +12 °C в 1 м³ может остаться самое большее 10,7 г. Лишнее выпадет каплями: г с каждого кубометра.
Шаг 4. На всю теплицу. г, до целых – 104 г.
Сто граммов воды – это полстакана, размазанные тонкой плёнкой по стёклам и листьям. На листьях томата такая плёнка – приглашение для грибка. Поэтому вечером перед холодной ночью теплицу проветривают, пока воздух снаружи суше, или подогревают, чтобы не опуститься до точки росы.
Типичная ошибка. Вычесть проценты вместо граммов: «было 70 %, при остывании станет 100 %, выпадет 30 %». Проценты влажности считаются каждый раз от своего предела, а предел зависит от температуры. Складывать и вычитать можно только граммы. Ещё одна ошибка – забыть умножить на объём и ответить «2,88 г»: это роса с одного кубометра, а не со всей теплицы.
Ответ: а) около +16 °C; б) 104 г.
По мотивам задачи образовательного курса НТО Junior 2023/24, сфера «Технологии и среда обитания», «У природы есть плохая погода»
Реши сам
1.13. В теплице +20 °C, в каждом кубометре воздуха 12,1 г водяного пара. Пользуясь таблицей из задачи 1.7, найди относительную влажность (в процентах, до целых). При какой температуре из таблицы начнёт выпадать роса?
ответ1.14*.* В теплице с огурцами +25 °C, влажность 80 %, объём воздуха 50 м³. Пользуйся таблицей из задачи 1.7. а) Какая температура из таблицы – самая низкая, при которой роса ещё не выпадет? б) Ночью теплица остыла до +18 °C. Сколько граммов воды выпало росой? в) Ночная норма для огурца – 18–20 °C (раздел 1.1). Выпадет ли роса, если ночью держать в теплице +20 °C, а воздух вечером не осушать?
ответМикроклимат теплицы: считаем

Умная теплица живёт по числам. Датчики присылают «26 °C», «61 %», «3200 лк», автоматика сравнивает их с порогами и решает, открыть ли форточку и пора ли поливать. Здесь ты научишься читать эти числа, переводить ppm в проценты, считать влажность и часы света – и сам решать за автоматику. Задачи здесь устроены как на отборе: короткая история с показаниями датчиков, а ответ – число или строка из номеров устройств.
2.1. Что меряют в теплице и в чём
Слева пять чисел, и по ним ничего не понять. Справа те же числа с единицами и подписями – и сразу видно, что в теплице тепло, свет слабоват, а углекислого газа хватает.
Какие датчики стоят в теплице и зачем, мы разобрали в главе 1 (раздел 1.6). Теперь нас интересуют их числа. У каждого числа своя единица, и одно и то же «28» может значить совсем разное. 28 °C – тепло, 28 % влажности воздуха – сушь, как в квартире зимой у батареи, а 28 ppm углекислого газа в воздухе у земли не бывает вовсе.
- Температура воздуха – в градусах Цельсия, °C. При 0 °C замерзает вода, при 100 °C она кипит. Разница температур тоже измеряется в градусах: «ночью на 8 °C холоднее, чем днём».
- Влажность воздуха (греческая буква «фи») – в процентах. Что это за проценты и от чего они считаются, разберём в разделе 2.3.
- Влажность почвы – тоже в процентах: 0 % – земля сухая, как песок на пляже в жару, 100 % – мокрее уже не бывает. Как датчик получает эти проценты, рассказано в главе 5.
- Освещённость – в люксах, лк (раздел 2.4).
- Углекислый газ, CO₂, – в ppm (раздел 2.2).
Нормы для томата, огурца и салата – в таблице раздела 1.1, общие ориентиры для тепличных овощей – в справочнике в конце книги. Но у каждой культуры нормы свои, у рассады – одни, у взрослого куста – другие. Поэтому в задачах отбора нормы и пороги дают прямо в условии, и считать надо по ним, даже если ты помнишь из таблицы другие числа.
И ещё. Датчик в симуляторе (Wokwi, Tinkercad) или на настоящей плате Arduino выдаёт голое число от 0 до 1023 – без градусов и процентов. Как перевести его в понятные единицы, рассказано в главе 5. В этой главе перевод уже сделан, и на табло – нормальные единицы.
Запомни. Температура – в °C, влажность воздуха и почвы – в %, свет – в люксах, углекислый газ – в ppm. Число без единицы – не ответ. Нормы и пороги бери из условия задачи.
2.2. Переводим единицы: ppm, люксы, время
Углекислого газа в воздухе так мало, что в процентах получается чуть больше 0,04 – неудобное число. Поэтому его считают крошками по одной миллионной – в ppm.
Процент – одна сотая часть. ppm (читается «пи-пи-эм», от английского parts per million) – одна миллионная часть, «штука на миллион». Если в воздухе 500 ppm углекислого газа, то из каждого миллиона частиц воздуха 500 – это CO₂.
Как связаны проценты и ppm? В миллионе – десять тысяч сотен, поэтому
Отсюда правило: проценты в ppm – умножь на 10 000, ppm в проценты – раздели на 10 000.
- 0,04 % = 0,04 · 10 000 = 400 ppm. На улице углекислого газа сейчас чуть больше – около 420–430 ppm (глава 1).
- 1200 ppm = 1200 : 10 000 = 0,12 %.
Зачем растению эти крошки и почему днём в закрытой теплице их становится меньше, чем на улице, – в главе 1. Для задач важнее другое: датчик может показывать CO₂ и в процентах, и в ppm, а порог в условии записан в чём-то одном. Для сравнения: в классе с закрытыми окнами к концу урока легко набирается больше 1000 ppm – и тянет в сон.
Люксы и килолюксы. Приставка «кило-» означает тысячу: 1 клк = 1000 лк. 3,2 клк = 3200 лк, а 800 лк = 0,8 клк.
Время. Датчики опрашивают быстро, и время в программах Arduino пишут в миллисекундах: 1 с = 1000 мс. Если датчик опрашивают раз в 2000 мс, то есть раз в 2 с, за час он сделает замеров.
Часы и минуты считаются по 60, десятичные привычки тут подводят. Поэтому 7 ч 09 мин в часах – это ч, а вовсе не 7,09 ч. И наоборот: 0,75 ч = мин.
Запомни. 1 % = 10 000 ppm, 1 клк = 1000 лк, 1 с = 1000 мс. В часе 60 минут, поэтому 1,5 ч – это 1 ч 30 мин.
Совет. Перед сравнением с порогом приведи оба числа к одной единице. Датчик показывает 0,12 %, а порог – 1000 ppm? Переведи показание в ppm и только потом сравнивай.
2.3. Влажность воздуха и почвы: проценты
Пара одинаково, 7 г, но большая кружка заполнена меньше чем на треть, а маленькая – почти доверху. Остынет воздух – кружка станет ещё меньше, и пар начнёт переливаться через край каплями.
Про водяной пар и росу ты уже читал в главе 1: тёплый воздух удерживает пара больше, холодный – меньше. Теперь посчитаем это в граммах и процентах. Вот сколько пара самое большее вмещает один кубометр воздуха при разной температуре (числа те же, что в таблице задачи 1.7, просто шаг другой):
| Температура воздуха, °C | Наибольшее количество пара в 1 м³, г |
|---|---|
| 0 | 4,8 |
| 5 | 6,8 |
| 10 | 9,4 |
| 15 | 12,8 |
| 20 | 17,3 |
| 25 | 23,0 |
| 30 | 30,3 |
Относительная влажность показывает, насколько воздух заполнен паром – сколько процентов пара в нём есть от того количества, которое он может вместить при этой температуре. Словами: влажность равна пару, который есть, делённому на пар, который поместился бы, и умноженному на 100 %. Буквами:
где – сколько граммов пара в 1 м³ воздуха сейчас, – сколько поместилось бы при этой температуре (из таблицы).
Пример. В теплице 15 °C, в каждом кубометре 9,6 г пара. Из таблицы г, значит, %.
Формулу можно повернуть и в другую сторону: если известна влажность, пар найдём так: . При 25 °C и влажности 40 % в кубометре г пара.
Отчего влажность меняется? Прежде всего от температуры. Пар никуда не делся, а воздух остыл – «кружка» стала меньше, и процент вырос. Поэтому к ночи влажность в теплице поднимается сама, без всякого полива, а на 100 % лишний пар выпадает росой: на стёклах теплицы, на траве, на очках, когда с мороза заходишь в тёплый автобус. Как считать росу в граммах, разобрано в задаче 1.7.
А ещё пар можно добавить или убрать, не трогая температуру. Этим занимается увлажнитель: он превращает воду в мелкий туман или пар. Один миллилитр воды весит 1 г, поэтому 100 мл испарившейся воды – это 100 г пара. Пока температура та же, «кружка» не меняется, и проценты влажности можно спокойно вычитать: поднять влажность с 40 % до 70 % – значит добавить 30 % от .
Растениям плохо и в слишком сыром воздухе, и в слишком сухом. В сырой теплице быстрее заводятся плесень и грибковые болезни. В сухой листья сильно испаряют воду и вянут, даже если земля влажная.
Влажность почвы – тоже проценты, но попроще: датчик настроен так, что 0 % – это сухая земля, а 100 % – только что пролитая водой. Если влажность ниже порога, пора поливать.
Влажность почвы упала с 60 % до 45 %. Ушёл один оранжевый кусок – 15. Сколько это: 15 или 25? Зависит от того, о чём спросили.
Процентные пункты. Влажность почвы была 60 %, стала 45 %. Разность – это 15 процентных пунктов. А «на сколько процентов уменьшилась» считают от прежнего значения: %. Вопросы похожи как близнецы, а ответы разные, и на отборе легко ввести не тот.
Запомни. %, и обратно . Воздух остывает – влажность растёт. Разность процентов – это процентные пункты; «на сколько процентов» – всегда от прежнего значения.
2.4. Свет: люксы и часы света
Глазу кажется, что в классе и на улице в пасмурный день светло примерно одинаково. Люксметр говорит другое: на улице света в несколько раз больше, а под летним солнцем – в сотни раз.
Освещённость – сколько света падает на каждый квадратный метр поверхности. Измеряют её в люксах (лк) прибором люксметром. Глаз – плохой люксметр: он подстраивается и под полумрак, и под яркое солнце, поэтому на глаз освещённость не оценить. А растению разница очень важна: свет для него – это еда (глава 1).
Таблица с люксами есть в разделе 1.2, а числа с картинки полезно держать в голове как «линейку» для проверки. Если в задаче у тебя вышло, что лампа досветки даёт 50 лк, это меньше, чем в комнате вечером, – подозрительно. А 500 000 лк – больше, чем солнце в полдень.
Фоторезистор в симуляторе выдаёт голое число от 0 до 1023, люксов он не знает. Разработчики сферы на вебинаре честно говорили: для теплицы переводить его в люксы не всегда нужно, порог «темно – включить лампу» можно подобрать прямо в этих числах. А в расчётных задачах освещённость дают уже в люксах или килолюксах.
Часы света. Растению важна не только яркость, но и то, сколько часов в сутки оно на свету. Как считать длину дня от восхода до заката и сколько досвечивать рассаду, разобрано в главе 1 (раздел 1.5 и задача 1.5): из позднего времени вычитаем раннее, а если минут не хватает, занимаем час – 60 минут. Но бывает, что свет горит ночью.
Лампа горит с 22:30 до 5:00. Полночь разрезает этот отрезок: кусок до полуночи и кусок после. Каждый считаем отдельно, потом складываем.
Через полночь. На сити-ферме в подвале солнца нет, и лампы работают по таймеру, часто ночью – по ночному тарифу электричество дешевле. Если отрезок переходит через полночь, вычитание «5:00 минус 22:30» даёт чепуху. Считай две части: до полуночи и после. Лампа горела с 22:30 до 5:00: до полуночи ч 30 мин, после – 5 ч, всего 6 ч 30 мин.
Доля суток. Переведи время в часы и раздели на 24. Лампа горит 10 ч 45 мин: это ч, а доля суток %.
Запомни. Освещённость – в люксах; от лунной ночи до солнечного полдня она растёт в сотни тысяч раз. Отрезок через полночь – это две части: до 24:00 и после 0:00. Доля суток = часы : 24 · 100 %.
2.5. Температура за сутки
Солнечный свет проходит сквозь стекло и греет землю, листья и воздух, а тёплому воздуху наружу не выйти. Ночью греть некому, и тепло уходит через стенки.
Температура в теплице за сутки ходит вверх и вниз, как качели. Ночью теплица остывает, и самое холодное время – под утро, перед восходом. Взошло солнце – начинает греть. Самое жаркое время наступает после полудня, часам к двум-трём дня: земля и воздух ещё какое-то время продолжают нагреваться. Потом солнце опускается, и к вечеру становится прохладнее.
В солнечный день в закрытой теплице бывает намного жарче, чем на улице, а жара опасна для урожая (раздел 1.1). Поэтому днём теплицу проветривают. А ночью растениям нужно прохладнее, чем днём, но не холодно, и в морозную ночь теплицу подогревают.
Датчик температуры не пишет плавную кривую – он делает замеры через равные промежутки: раз в 10 минут, раз в час, раз в 2 часа. По замерам считают:
- сколько замеров вне нормы – пересчитать те, что выше верхней границы и ниже нижней;
- какую долю они составляют – поделить на число всех замеров и умножить на 100 %;
- сколько часов было вне нормы – если в условии сказано, что показание держится до следующего замера, умножить число таких замеров на промежуток между ними;
- размах – самую высокую температуру минус самую низкую.
Внимательно с границами. «Норма 18–28 °C» означает, что и 18, и 28 – ещё норма. «Выше 28 °C» – 28 уже не выше.
Запомни. Холоднее всего под утро, жарче всего после полудня. Доля замеров = число нужных замеров : число всех · 100 %. Время вне нормы = число таких замеров · промежуток между замерами.
2.6. Пороги: когда включать и выключать
Верхняя черта открывает форточку, нижняя закрывает. Пока температура между ними, форточка остаётся такой, какой была.
Автоматика теплицы устроена просто: взять показание датчика, сравнить с числом-порогом и решить, включать устройство или нет. Например:
- температура 28 °C и выше – открыть форточку;
- температура ниже 16 °C – включить обогреватель;
- влажность почвы ниже 40 % – включить насос полива;
- освещённость ниже 5000 лк и на часах день – включить лампы.
Правила простые, а спотыкаются на них постоянно.
Граница. «Выше 28» и «28 и выше» – разные правила. Если показание равно порогу, первое правило ничего не включит, а второе включит. В программе это разница между знаками > и >=.
Единицы. Порог 5000 лк, показание 3,2 клк. Сравнивать 3,2 с 5000 нельзя, сначала 3,2 клк = 3200 лк – и тогда видно, что света меньше порога.
Каждый кран – один вопрос: ответ «да» открывает кран. По трубе с кранами подряд вода пройдёт, только если открыты оба. Если труб две, воде хватит и одной.
«И» и «или». Условие с «и» выполняется, только если верны обе части: лампы досветки не включатся в полночь, хотя темно, – сейчас не день. Условие с «или» выполняется, если верна хотя бы одна часть: вентилятор включается, когда жарко, когда много углекислого газа или когда и то и другое сразу.
Два порога. Возьмём форточку с одним порогом: открыть при 25 °C и выше, закрыть ниже 25 °C. Температура около 25 скачет на полградуса туда-сюда – и форточка хлопает каждую минуту, мотор изнашивается. Поэтому ставят два порога, как на картинке: открыть при 28 °C, а закрыть только при 24 °C. Между ними ничего не меняем. Такой приём называется гистерезис. Слово трудное, а суть бытовая: не дёргаться из-за каждой мелочи.
С двумя порогами одного показания мало. При 26 °C форточка может быть и открыта, и закрыта – смотря что было раньше. Поэтому задачи на два порога решают по порядку, замер за замером, и каждый раз записывают, в каком состоянии устройство.
Запомни. Проверь знак на границе (> или ≥) и единицы. «И» – нужны обе части, «или» – хватит одной. С двумя порогами между ними устройство остаётся как было, поэтому иди по замерам по порядку.
2.7. Разбираем задачи
Задача 2.1 Хватит подкормки
В теплицу подают углекислый газ, чтобы растения быстрее росли. Подачу выключают, когда углекислого газа больше 1000 ppm. Датчик показывает долю углекислого газа в процентах: 0,12 %. Сколько это ppm? На сколько ppm показание выше порога? Нужно ли выключать подачу?
Дано: показание 0,12 %; порог выключения – больше 1000 ppm; 1 % = 10 000 ppm.
Найти: показание в ppm; на сколько выше порога.
Шаг 1. Переводим проценты в ppm. В одном проценте 10 000 ppm, значит, умножаем: ppm.
Шаг 2. Сравниваем с порогом. – показание выше порога на ppm. Подачу нужно выключить.
Прикинем: 0,1 % – это 1000 ppm, а 0,12 % чуть больше, значит, и ppm чуть больше тысячи. 1200 подходит.
Типичная ошибка. Сравнить 0,12 с 1000 напрямую и решить, что углекислого газа совсем мало. Числа в разных единицах не сравнивают. Вторая ошибка – умножить на 1000 или на 100 и получить 120 или 12 ppm. Миллионных в одном проценте десять тысяч.
Ответ: 1200 ppm; на 200 ppm выше порога; подачу выключить.
Своя задача по программе сферы, модуль 2
Реши сам
2.1. В конце урока датчик в классе показал 1850 ppm углекислого газа. Сколько это процентов?
ответ2.2. Лампы досветки включаются, если освещённость меньше 4,5 клк. Датчик показывает 3800 лк. Включатся ли лампы? Сколько люксов не хватает до порога?
ответЗадача 2.2 Почему к ночи сыро
Днём в теплице 25 °C, и в каждом кубометре воздуха 16,1 г водяного пара. К ночи воздух остыл до 20 °C, окна закрыты, пара осталось столько же. Найди относительную влажность днём и ночью (до целых процентов). На сколько процентных пунктов она выросла? Наибольшее количество пара возьми из таблицы в разделе 2.3.
Дано: днём °C; ночью °C; г/м³ (не меняется); г/м³; г/м³.
Найти: , и их разность.
Шаг 1. Что происходит. Пара в воздухе столько же, а вмещать воздух может всё меньше – он остывает. Значит, влажность должна вырасти. Посчитаем, насколько.
Шаг 2. Днём. При 25 °C кубометр может вместить 23,0 г пара. В нём 16,1 г: %.
Шаг 3. Ночью. При 20 °C вмещается 17,3 г. Пара те же 16,1 г: %.
Шаг 4. Разность. процентных пункта.
Ночью 93 % – воздух почти полон, ещё чуть-чуть остынет, и стёкла станут мокрыми. Кто заходил утром в теплицу на даче, видел это своими глазами.
Типичная ошибка. Посчитать ночную влажность по дневной таблице – снова разделить на 23,0 – и получить те же 70 %: «пара же столько же». Пар тот же, а знаменатель другой, потому что другая температура. Ещё путают «на сколько процентных пунктов» и «на сколько процентов»: % – это ответ на другой вопрос.
Ответ: днём 70 %, ночью 93 %; выросла на 23 процентных пункта.
Своя задача по программе сферы, модуль 2
Реши сам
2.3. Днём в теплице 30 °C, в каждом кубометре воздуха 18,2 г пара. Какова относительная влажность? Какой она станет, если воздух остынет до 25 °C, а пара останется столько же? Оба ответа – до целых процентов.
ответ2.4. Пока ты неделю был в лагере, влажность земли в горшке с рассадой упала с 55 % до 44 %. На сколько процентных пунктов она упала? На сколько процентов уменьшилась по сравнению с прежней?
ответЗадача 2.3 Сити-ферма в подвале
На сити-ферме в подвале окон нет, весь свет салату дают фитолампы. Таймер включает их в 17:40, а выключает в 7:25 следующего утра. а) Сколько часов и минут в сутки горят лампы? б) Какую долю суток это составляет? Ответ – в процентах, округли до целых. в) Агроном решил, что салату нужно 16 часов света в сутки. Время включения оставили прежним. На какое время перевести выключение?
Дано: включение 17:40; выключение 7:25 следующего утра; нужно 16 ч света.
Найти: сколько горят лампы; доля суток, %; новое время выключения.
Шаг 1. Делим отрезок полночью. Лампы горят с вечера до утра, и посередине – полночь. Считаем две части отдельно.
Шаг 2. До полуночи. С 17:40 до 24:00: . Минут не хватает, занимаем час: .
Шаг 3. После полуночи. С 0:00 до 7:25 – это 7 ч 25 мин.
Шаг 4. Всего. .
Шаг 5. Доля суток. Переводим в часы: 45 мин – это ч, всего 13,75 ч. Делим на 24: %.
Шаг 6. Новое выключение. Свет идёт без перерыва, поэтому к моменту включения просто прибавляем 16 ч: ч . Таких часов на циферблате нет – вычитаем сутки: утра. Проверим другим путём: не хватало , и .
Больше половины суток под лампами – в подвале без окон салат по-другому не вырастить.
Типичная ошибка. Вычесть «из большего меньшее»: ч 15 мин. Это время, когда лампы не горят, – тёмная часть суток. Если сомневаешься, сложи свет и темноту: вместе должно выйти 24 ч.
Ответ: а) 13 ч 45 мин; б) 57 %; в) в 9:40.
Своя задача по программе сферы, модуль 2
Реши сам
2.5. Лампы для рассады включаются в 21:15 и выключаются в 6:45 утра. Сколько часов и минут они горят? Какая это доля суток в процентах? Округли до целых.
ответ2.6. В конце июня солнце в Новосибирске встаёт около 4:48 и садится около 22:11. Растению по условию нужно 12 часов солнечного света в сутки, поэтому часть светлого времени теплицу закрывают плотной шторкой. Сколько часов и минут в светлое время шторка должна быть закрыта?
ответЗадача 2.4 Сутки в теплице
Датчик записывал температуру в теплице каждые 2 часа, начиная с полуночи: 0:00 – 16 °C, 2:00 – 15 °C, 4:00 – 14 °C, 6:00 – 15 °C, 8:00 – 19 °C, 10:00 – 24 °C, 12:00 – 29 °C, 14:00 – 31 °C, 16:00 – 28 °C, 18:00 – 23 °C, 20:00 – 19 °C, 22:00 – 17 °C. Норма для этих растений – от 18 до 28 °C включительно. а) Какой процент замеров вне нормы? Округли до целых. б) Сколько часов за сутки теплица была вне нормы, если каждое показание держится до следующего замера? в) Каков размах температуры?
Дано: 12 замеров через 2 ч; норма 18–28 °C, границы входят в норму.
Найти: процент замеров вне нормы; часы вне нормы; размах.
Шаг 1. Выше нормы. Выше 28 °C – только 29 и 31, это 2 замера. Замер в 16:00 показывает 28 °C – это ещё норма.
Шаг 2. Ниже нормы. Ниже 18 °C – 16, 15, 14, 15 и 17 °C, это 5 замеров, все ночью и ранним утром.
Шаг 3. Доля. Вне нормы замеров из 12: %.
Шаг 4. Часы. Каждое показание держится 2 часа: ч.
Шаг 5. Размах. Самая высокая температура – 31 °C, самая низкая – 14 °C: °C.
По графику видно, откуда столько брака: ночью теплице не хватает обогрева, а в обед – проветривания. Самый холодный замер – в 4:00, перед рассветом, самый жаркий – в 14:00: те самые качели из раздела 2.5.
Типичная ошибка. Засчитать 28 °C как выход за норму: «28 – это же край». В условии сказано «включительно», так что 28 – норма. Кто засчитал его в брак, получит 8 замеров из 12 и ответ 67 % вместо 58 %. Другая ошибка – ответить на вопрос б) числом 7: это замеры, а спрашивали часы.
Ответ: а) 58 %; б) 14 ч; в) 17 °C.
По мотивам задачи образовательного курса НТО Junior 2023/24, сфера «Технологии и среда обитания», «Анализ температурных данных»
Реши сам
2.7. Замеры каждые 2 часа с полуночи: 17, 16, 16, 17, 20, 23, 26, 27, 27, 25, 21, 19 °C. Норма – от 18 до 27 °C включительно. Какой процент замеров в норме? Округли до целых.
ответ2.8. Замеры каждые 3 часа с полуночи: 12, 11, 13, 20, 27, 30, 24, 16 °C. «Жарко» – это выше 26 °C. Каждое показание держится до следующего замера. Сколько часов в сутки было жарко? Какая это доля суток в процентах?
ответЗадача 2.5 Какие светодиоды горят
На пульте умной теплицы у каждого устройства свой светодиод: горит – устройство включено. Автоматика работает по правилам:
| № | Устройство | Что проверяем | Включено, когда |
|---|---|---|---|
| 1 | форточка | температура | 28 °C и выше |
| 2 | обогреватель | температура | ниже 16 °C |
| 3 | насос полива | влажность почвы | ниже 40 % |
| 4 | лампы досветки | свет и часы | ниже 5000 лк и время с 6:00 до 22:00 |
| 5 | увлажнитель | влажность воздуха | ниже 55 % |
В 14:30 датчики показывают: температура 28 °C, влажность воздуха 48 %, влажность почвы 40 %, освещённость 3,2 клк, углекислый газ 380 ppm. Какие светодиоды горят? Ответ – номера устройств по возрастанию без пробелов, например 235.
Дано: °C; %; %; освещённость 3,2 клк; CO₂ 380 ppm; время 14:30.
Найти: номера включённых устройств.
Шаг 1. Приводим единицы. Порог света – в люксах, показание – в килолюксах: 3,2 клк = 3200 лк.
Шаг 2. Проверяем правила по одному.
- Форточка: – да, «28 и выше» включает саму границу. Горит.
- Обогреватель: 28 ниже 16? Нет.
- Насос: 40 ниже 40? Нет, 40 равно порогу, а нужно строго ниже. Не горит.
- Лампы: – да, и 14:30 лежит между 6:00 и 22:00 – да. Обе части «и» верны. Горит.
- Увлажнитель: – да. Горит.
Шаг 3. Записываем ответ. Горят светодиоды 1, 4 и 5 – строка 145.
Углекислый газ ни в одном правиле не участвует – это лишнее данное. В задачах такое встречается, пугаться не надо. Картина жизненная: жаркий пасмурный день, воздух сухой – проветриваем, досвечиваем, увлажняем.
Типичная ошибка. Все три ловушки – на границах и единицах. Не включить форточку при 28 °C («28 – это ещё не жарко»), включить насос при 40 % («40 – это уже мало») или сравнить 3,2 с 5000 и решить, что света полно. Каждая ошибка меняет строку ответа, а вводить её на отборе приходится за попытки.
Ответ: 145.
По мотивам задачи образовательного курса НТО Junior 2023/24, сфера «Технологии и среда обитания», «Индикаторы в виде светодиодов»
Реши сам
2.9. Правила те же, что в задаче 2.5. В 23:10 датчики показывают: температура 15,5 °C, влажность воздуха 82 %, влажность почвы 37 %, освещённость 20 лк. Какие светодиоды горят? Ответ – номера по возрастанию без пробелов.
ответ2.10. К правилам задачи 2.5 добавили шестое: вентилятор (№ 6) включается, если влажность воздуха выше 85 % или углекислого газа больше 1500 ppm. В 7:40 датчики показывают: температура 17 °C, влажность воздуха 79 %, влажность почвы 55 %, освещённость 0,9 клк, углекислый газ 0,16 %. Какие светодиоды горят? Ответ – номера по возрастанию без пробелов.
ответЗадача 2.6* *. Увлажнитель для огурцов
Теплица – прямоугольный ящик длиной 5 м, шириной 4 м и высотой 2,5 м. В ней 25 °C, влажность воздуха 40 %, а огурцам нужно 70 %. Увлажнитель превращает в пар 400 мл воды в час. Сколько граммов пара нужно добавить в воздух? Сколько минут должен проработать увлажнитель? Считай, что температура не меняется, весь пар остаётся в воздухе, 1 мл воды весит 1 г. Время округли до целых минут вверх. Наибольшее количество пара возьми из таблицы в разделе 2.3.
Дано: м; °C; %; %; г/м³; увлажнитель 400 мл/ч.
Найти: масса пара; время работы, мин.
Шаг 1. План. Узнаем, сколько пара в кубометре сейчас и сколько должно стать. Разница – добавка на один кубометр. Умножим на объём – получим добавку на всю теплицу. Потом поделим на скорость увлажнителя.
Шаг 2. Пар сейчас. г в кубометре.
Шаг 3. Пар нужен. г в кубометре.
Шаг 4. Добавка на кубометр. г. Температура не меняется, поэтому можно короче: процентных пунктов от 23,0 г, г.
Шаг 5. Объём теплицы. м³.
Шаг 6. Добавка на всю теплицу. г. Это 345 мл воды.
Шаг 7. Время. Увлажнитель испаряет 400 мл за час. ч. В минутах: мин. Округляем вверх, чтобы влажность точно дошла до нормы: 52 мин.
Треть литра воды на всю теплицу – примерно полторы кружки. Выглядит мало, но пар лёгкий: целый кубометр воздуха при 25 °C вмещает всего 23 г. В настоящей теплице увлажнитель работал бы дольше: пар уходит в щели, а растения сами добавляют влагу, так что это грубая оценка.
Типичная ошибка. Ответить на первый вопрос числом 6,9 г – забыть умножить на объём. Или взять 30 % от объёма теплицы, , – проценты влажности считаются от граммов пара, а не от кубометров. В конце часто пишут «0,86 мин»: это часы, их ещё надо умножить на 60.
Ответ: 345 г пара; 52 мин.
Своя задача по программе сферы, модуль 2
Реши сам
2.11. Комната-питомник объёмом 30 м³, в ней 20 °C и влажность 40 %. Сколько граммов пара надо добавить, чтобы влажность стала 60 %? Температура не меняется. Округли до целых.
ответ2.12*.* Теплица 4 м × 2,5 м × 2 м, в ней 30 °C и влажность 50 %. Увлажнитель расходует 0,25 л воды в час, и вся она превращается в пар. Сколько минут ему нужно работать, чтобы влажность поднялась до 75 %? Температура не меняется, пар не уходит. Округли вверх до целых минут.
ответЗадача 2.7* *. Форточка, которая не хлопает
Форточка теплицы открывается, когда температура 27 °C и выше, и закрывается, когда 23 °C и ниже. При температуре между ними форточка остаётся такой, какой была. В 10:00 форточка закрыта. Датчик делает замер каждые 10 минут, с 10:00 до 12:10: 22, 24, 26, 24, 26, 28, 27, 25, 24, 26, 23, 25, 26, 22 °C. Каждое показание держится до следующего замера, последнее – до 12:20.
а) Сколько раз открылась форточка? б) Сколько минут она была открыта? в) Сколько раз она открылась бы, если бы порог был один: открыть при 25 °C и выше, закрыть ниже 25 °C?
Дано: открыть при °C; закрыть при °C; вначале закрыта; 14 замеров через 10 мин.
Найти: число открываний; минуты открытой форточки; число открываний с одним порогом 25 °C.
Шаг 1. Идём по замерам с двумя порогами. Состояние записываем после каждого замера.
- 10:00 – 22, 10:10 – 24, 10:20 – 26, 10:30 – 24, 10:40 – 26: ни разу не 27 и выше, форточка закрыта.
- 10:50 – 28: , форточка открывается (первый раз).
- 11:00 – 27, 11:10 – 25, 11:20 – 24, 11:30 – 26: всё выше 23, закрывать не за что, форточка открыта.
- 11:40 – 23: , форточка закрывается.
- 11:50 – 25, 12:00 – 26, 12:10 – 22: до 27 ни разу не дошло, форточка закрыта.
Шаг 2. Считаем. Форточка открылась один раз. Открыта она с 10:50 до 11:40: мин.
Шаг 3. Один порог 25 °C. Теперь каждый замер решает сам за себя: 25 и выше – открыта, ниже – закрыта. Ряд состояний: 22 – закр., 24 – закр., 26 – откр., 24 – закр., 26 – откр., 28 – откр., 27 – откр., 25 – откр., 24 – закр., 26 – откр., 23 – закр., 25 – откр., 26 – откр., 22 – закр. Открываний – переходов из «закрыта» в «открыта» – четыре.
Четыре раза за два часа против одного: теперь видно, зачем нужны два порога. В настоящей теплице датчик опрашивают хоть каждую секунду, и с одним порогом мотор форточки щёлкал бы без остановки.
Типичная ошибка. Решать каждый замер отдельно, как будто порог один: «26 – это между порогами, значит, закрыта». С двумя порогами между ними ничего не решается – форточка остаётся как была, а была она открыта. Ещё считают открываниями все замеры, когда форточка открыта (при одном пороге таких восемь), хотя открываний – только переходы из «закрыта» в «открыта».
Ответ: а) 1 раз; б) 50 мин; в) 4 раза.
Своя задача по программе сферы, модуль 2
Реши сам
2.13. Обогреватель включается, когда температура 15 °C и ниже, и выключается, когда 18 °C и выше; между ними – как был. В 18:00 он выключен. Замеры каждые 15 минут с 18:00 до 21:15: 19, 17, 16, 15, 16, 17, 18, 17, 16, 15, 14, 16, 18, 19 °C. Каждое показание держится до следующего замера. Сколько раз включался обогреватель и сколько минут он работал всего?
ответ2.14*.* Вентилятор включается, когда влажность воздуха 85 % и выше, и выключается, когда 75 % и ниже; между ними – как был. В 13:00 он выключен. Замеры каждые 5 минут с 13:00 до 13:55: 70, 78, 84, 86, 88, 83, 79, 76, 75, 80, 85, 82 %. Последнее показание держится до 14:00. Сколько минут за этот час работал вентилятор? Какой это процент часа? Округли до целых.
ответГрафики и таблицы агронома

Датчик в теплице меряет температуру круглые сутки, и к утру у него набираются сотни чисел. Столбиком их никто не читает: агроном смотрит на график и за пять секунд видит, когда было жарко, когда холодно и пора ли открывать форточку. В этой главе научимся читать графики, считать среднее и размах, строить график по таблице и заставлять электронную таблицу считать за нас. На отборе такие задачи выглядят так: график или таблица, короткий вопрос, в ответ – число или номера верных утверждений.
3.1. Как читать график
Каждая точка графика – одна запись в дневнике погоды. Вправо – когда измерили, вверх – сколько намерили.
График – рисунок, на котором числа превращены в точки. У графика две оси. По горизонтальной откладывают, когда был сделан замер, по вертикальной – сколько показал прибор. Соседние точки соединяют линией, и по её форме сразу видно, как менялась величина.
Читать график начинают не с линии, а с подписей. Сначала посмотри, что отложено по осям и в каких единицах: градусы, проценты, часы или минуты. Потом узнай, сколько стоит одна клетка сетки – её называют ценой деления. Подписи стоят не у каждой линии сетки, поэтому цену считают так: берут две соседние подписи, вычитают меньшую из большей и делят на число клеток между ними.
На этом графике по вертикали подписаны 0, 10, 20 и 30 °C. Между 0 и 10 – пять клеток, значит, одна клетка стоит °C. Точка на второй линии над подписью 10 – это °C. Точка посередине клетки между 6 и 8 – это 7 °C.
Дальше следим за линией. Слева направо она поднимается – величина растёт, опускается – падает, идёт горизонтально – не меняется. Чем круче участок, тем быстрее идёт изменение. С 6:00 до 9:00 потеплело на °C, а с 0:00 до 3:00 похолодало всего на °C: первый участок крутой, второй пологий. Скорость изменения считают как скорость машины: изменение делят на время. С 6:00 до 12:00 температура выросла на °C за 6 часов, то есть в среднем на °C в час.
Не забывай, откуда взялась линия. Метеостанция мерила раз в три часа, а всё, что между точками, дорисовано. Какой была температура в 7:30, прибор не знает. Линия подсказывает разумную оценку: если в 6:00 было 6 °C, а в 9:00 – 13 °C, то в 7:30 было где-то около 9–10 °C. Если данные идут с датчика каждую минуту, точки сливаются, и линия почти не врёт.
Строить такие картинки руками нужно не всегда. В Tinkercad у окна монитора порта есть кнопка, которая рисует показания датчика линией прямо во время работы схемы. На вебинаре сферы так смотрели, как меняется сигнал фоторезистора, когда двигаешь ползунок освещённости. В Arduino IDE тот же инструмент есть у настоящей платы и называется плоттером (Serial Plotter).
Запомни. Порядок чтения: оси и единицы → цена деления → точки → форма линии. Точки – настоящие замеры, линия между ними – оценка. Круче участок – быстрее меняется величина.
3.2. Максимум, минимум, среднее и размах
Переложи лишние кубики из высоких столбиков в низкие, пока все не станут одной высоты. Эта общая высота и называется средним.
Четыре числа описывают любой набор замеров коротко.
- Максимум – самое большое значение. На графике это самая высокая точка.
- Минимум – самое маленькое значение, самая низкая точка.
- Размах – максимум минус минимум. Он говорит, насколько сильно величина «гуляла». На уроках географии этот же промежуток между самой высокой и самой низкой температурой называют амплитудой. В главе 7 про сигналы слово «амплитуда» будет значить другое – половину размаха, так что не перепутай.
- Среднее арифметическое – сумма всех значений, делённая на их количество. Буквами: если замеров , а их сумма , то среднее равно .
Посчитаем для графика из раздела 3.1. За сутки там восемь замеров: в 0:00, 3:00, 6:00 и дальше до 21:00. Точка в 24:00 – это уже полночь следующих суток, её не берём. Многие метеостанции так и считают среднесуточную температуру – по восьми замерам раз в три часа.
Максимум – 24 °C, минимум – 6 °C, размах °C.
Среднее 14,1 °C не совпало ни с одним замером, и в этом нет ничего странного: средний рост в классе тоже может не совпасть ни с чьим ростом. А вот выйти за пределы от минимума до максимума среднее не может. Получилось больше максимума – ищи ошибку в сложении.
Числа с минусом. В мае под Новосибирском ночью запросто бывает −3 °C, и такие числа попадают в сумму. Складывай их как долги: было 5 рублей, отдал долг 3 рубля – осталось 2. Так же . Пример: замеры −4, −1, +2, +3 °C. Сумма , среднее °C. Размах °C. Проверь по термометру: от −4 до 0 – четыре деления, от 0 до +3 – ещё три, всего семь.
Один сломанный замер. Иногда датчик выдаёт чепуху: отошёл провод или на корпус упал прямой солнечный луч. Пусть вместо последнего замера 14 °C в таблицу попало 85 °C. Среднее станет °C – на девять градусов выше правды из-за одного числа. Поэтому, прежде чем считать, пробеги числа глазами. Как отсеивать такие скачки автоматически, разберём в главе 7.
Запомни. Среднее = сумма : количество. Размах = максимум − минимум. Среднее всегда лежит между минимумом и максимумом. С минусами считай внимательно: от −3 до +13 размах 16 градусов, а вовсе не 10.
3.3. Строим график по таблице
Одна строчка таблицы – одна точка. Время отмеряем вправо, температуру – вверх.
Построить график по таблице можно на бумаге в клетку, и порядок действий всегда один.
Шаг 1. Что по какой оси. Время – по горизонтали, измеренную величину – по вертикали. Так принято, и так быстрее читается.
Шаг 2. Масштаб. Посмотри на самое большое число в таблице и прикинь, сколько клеток у тебя есть по высоте. Пусть самое большое показание 820, а места – 10 клеток. Клетка по 50 не подойдёт: , и половина точек улетит за край листа. Клетка по 100 даёт – всё влезает. Цену клетки бери круглую: 1, 2, 5, 10, 20, 50, 100. Считать по клеткам «по 37» мучительно.
Шаг 3. Подписи. Подпиши оси, единицы и несколько круглых делений. График без подписей – картинка, по которой ничего нельзя проверить.
Шаг 4. Точки. Для каждой строчки находишь время на горизонтальной оси, поднимаешься вверх до нужного значения и ставишь точку.
Шаг 5. Линия. Соединяешь точки по порядку времени – слева направо.
На горизонтальной оси время идёт равномерно. Если замеры делали в 8:00, 10:00 и 16:00, отрезок от 10 до 16 должен быть втрое длиннее отрезка от 8 до 10. Поставишь три точки на равных расстояниях – график соврёт: покажет, что к 16:00 всё поменялось быстро, хотя прошло шесть часов.
Линия или столбики. Линией рисуют то, что меняется непрерывно: температуру, влажность, освещённость. У такой величины есть значение в любой момент, даже между замерами. Столбиками рисуют отдельные порции: сколько литров вылили в понедельник, во вторник, в среду; сколько миллиметров осадков выпало за каждые сутки; какой урожай дала каждая грядка. Верхушки столбиков линией не соединяют. Между понедельником и вторником не было «половины полива».
Запомни. Строчка таблицы – точка графика. Масштаб выбирай по самому большому числу. Равное время – равные отрезки по оси. Непрерывно меняется – рисуй линию, отдельными порциями – столбики.
3.4. Электронная таблица считает за тебя
У каждой клетки есть адрес: буква столбца и номер строки. Формула берёт числа по адресам и считает сама.
Электронная таблица – программа, где числа лежат в клетках, а клетки умеют считать. Это Excel, LibreOffice Calc или онлайн-таблицы в браузере. Таблицы есть в официальном списке программ для финала сферы «Агротех» – рядом с симулятором и Arduino IDE. Столбцы в них обозначены буквами A, B, C…, строки – числами 1, 2, 3… Адрес клетки складывается из буквы и числа: B3 – столбец B, строка 3, как клетка в «Морском бое».
Формула начинается со знака =. Напишешь в клетку =B2+B3 и нажмёшь Enter – в клетке появится сумма, а сама формула останется видна в строке формул над таблицей. Поменяешь число в B2 – сумма пересчитается сама.
Диапазон – несколько клеток подряд, его записывают через двоеточие: B2:B9 – клетки от B2 до B9. Сколько в нём клеток? Не , а : считаются обе крайние. На этом спотыкаются чаще, чем на самих формулах.
| Формула | Что считает | В английской версии |
|---|---|---|
=СУММ(B2:B9) |
сумму | SUM |
=СРЗНАЧ(B2:B9) |
среднее | AVERAGE |
=МАКС(B2:B9) |
максимум | MAX |
=МИН(B2:B9) |
минимум | MIN |
=СЧЁТЕСЛИ(B2:B9;">25") |
сколько чисел больше 25 | COUNTIF |
=ОКРУГЛ(E2;1) |
округляет до десятых | ROUND |
Условие в СЧЁТЕСЛИ пишут в кавычках. ">25" – строго больше, саму 25 не считает. ">=25" – 25 и больше. В русской версии числа внутри формулы разделяют точкой с запятой, в английской – запятой. Функции можно вкладывать друг в друга: =ОКРУГЛ(СРЗНАЧ(B2:B9);1) сначала найдёт среднее, потом округлит его до десятых. Размах – одной формулой: =МАКС(B2:B9)-МИН(B2:B9).
Протягивание. Пусть в столбце B – температура, и ты хочешь знать, на сколько она менялась от замера к замеру. Пишешь в D3 формулу =B3-B2 и тянешь клетку за правый нижний уголок вниз. В D4 окажется =B4-B3, в D5 – =B5-B4: адреса съезжают вниз вместе с клеткой. Одна формула – и весь столбец разностей готов.
График из таблицы. Выдели столбец времени и столбец значений, открой вкладку «Вставка», выбери диаграмму типа «График». Программа сама подберёт масштаб, но подписи осей всё равно проверь.
То же самое можно посчитать короткой программой на Python – этот язык есть в программе сферы:
t = [10, 7, 6, 13, 20, 24, 19, 14] # замеры раз в 3 часа, °C
print(sum(t) / len(t)) # среднее
print(max(t), min(t)) # максимум и минимум
print(max(t) - min(t)) # размах
count = 0 # сколько замеров теплее 15 °C
for x in t:
if x > 15:
count = count + 1
print(count)Разберём построчно. В первой строке список t – восемь замеров из раздела 3.1 в квадратных скобках. После знака # идёт комментарий: его пишут для людей, программа его пропускает. sum(t) складывает все числа списка, len(t) считает, сколько их, – делим одно на другое и получаем среднее 14.125 (Python пишет дроби через точку). max и min находят 24 и 6, их разность – размах 18. Последний кусок заводит счётчик count, равный нулю, перебирает замеры по одному и прибавляет единицу за каждый теплее 15 °C. Таких три: 20, 24 и 19.
Запомни. Формула начинается с =. В диапазоне B2:B9 восемь клеток – обе крайние считаются. При протягивании вниз адреса в формуле сдвигаются сами. ">25" саму 25 не считает, ">=25" – считает.
3.5. Порог: когда пора действовать
Порог – горизонтальная линия. Пока график над ней, форточка открыта. Где линия графика её пересекла, там автоматика и сработала.
График нужен агроному, чтобы действовать. В умной теплице решения записаны правилами с порогами: «теплее 27 °C – открыть форточку», «почва суше 35 % – включить полив». Порог – то самое число из правила, при котором пора что-то делать. На графике его рисуют горизонтальной линией. Участки графика температуры выше неё – время, когда форточка должна быть открыта. Участки графика влажности ниже своей линии – время, когда растениям не хватает воды.
Обычно порог попадает куда-то между двумя замерами. Тогда считают, что между точками величина менялась равномерно, по одинаковому числу градусов в час. Пример с картинки: в 9:00 в теплице 22 °C, в 11:00 – 30 °C, форточку открывают при 27 °C. За 2 часа потеплело на °C, то есть на °C в час. От 22 до 27 не хватало °C, на это ушло ч. Четверть часа – 15 минут, значит, 1,25 ч – это 1 ч 15 мин, и форточку пора было открывать около 10:15.
Остывание считают так же, только температура теперь убывает. В 15:00 было 29 °C, в 17:00 – 24 °C: за 2 часа минус 5 градусов, по 2,5 °C в час. До порога 27 °C спускаться °C, это ч. Вот тут не спеши: в часе 60 минут, поэтому 0,8 часа – это мин (рука так и тянется написать «80»). Форточку закрыли около 15:48.
Запомни. Порог на графике – горизонтальная линия. Момент, когда её пересекли, ищут по двум соседним замерам: сначала «сколько градусов в час», потом «сколько часов до порога». Доли часа переводи в минуты умножением на 60.
Совет. Проведи карандашом линию порога прямо по графику и выпиши замеры в маленькую таблицу «время – значение». Дальше решаешь уже по числам, и глаз не обманет.
3.6. Графики-обманщики
Слева кажется, что температура взлетела, справа – что почти не менялась. А числа одни и те же: с 21 до 23,6 °C, на 2,6 градуса.
График может обмануть – бывает, что нечаянно, а бывает, что нарочно, в рекламе. Приёмы у обманщиков одни и те же, и их полезно знать в лицо.
- Ось начинается не с нуля. На картинке выше левая ось идёт от 20 до 24 °C, и подъём на 2,6 градуса выглядит взлётом. Сравнивай числа на осях, а не крутизну на глаз.
- У двух графиков разный масштаб. Когда сравниваешь две теплицы, сначала сравни их оси. Линия, прошедшая «от пола до потолка» на графике с осью 19–29 °C, может означать меньшие перемены, чем скромный горбик на оси 0–40 °C.
- Неравные промежутки времени. Если подписи 8:00, 10:00, 16:00 стоят на равных расстояниях, наклон врёт.
- Нет подписей или единиц. Число 40 – это градусы, проценты влажности почвы или минуты? Без подписи вывод делать нельзя.
- Среднее прячет крайности. Средняя температура за сутки 24 °C – вроде бы идеально для томатов. Но если в полдень было 36 °C, пыльца у томатов могла пострадать: выше 30–32 °C завязей становится меньше, а при 35 °C и выше жара совсем опасна, даже когда листья выглядят бодро. Для решения «открыть – закрыть» смотри на максимум, минимум и порог; среднее годится для общей картины.
- Редкие замеры. Если мерить раз в шесть часов – в 0:00, 6:00, 12:00 и 18:00, – можно проспать пик жары в 14:00.
Запомни. Два графика рядом – сначала сравни оси, потом линии. Среднее за сутки не скажет, была ли жара в полдень: для решений в теплице смотри на крайние значения.
3.7. Разбираем задачи
Задача 3.1 Сутки на метеостанции
Школьная метеостанция записала температуру воздуха за июльские сутки (рисунок). Ответь: а) какой была самая высокая температура и во сколько; б) какой была самая низкая температура и во сколько; в) каков размах температуры за сутки; г) сколько часов подряд температура держалась на отметке 20 °C и выше. Ответы – целые числа.
Дано: график температуры, замеры каждые 2 часа.
Найти: максимум, минимум, размах, число часов при 20 °C и выше.
Шаг 1. Оси и цена деления. По горизонтали – время суток, подписи через каждые 2 часа. По вертикали – температура, подписаны 0, 10, 20 и 30 °C. Между 0 и 10 – пять клеток, одна клетка стоит °C.
Шаг 2. Максимум. Самая высокая точка – над 14:00. Она на четвёртой линии выше подписи 20: °C.
Шаг 3. Минимум. Самая низкая точка – над 4:00, на четвёртой линии выше нуля: °C. Точки в 0:00 и 24:00 (12 и 14 °C) выше, это не минимум.
Шаг 4. Размах. °C.
Шаг 5. Сколько часов при 20 °C и выше. Ищем точки на линии 20 и над ней. Первая такая – в 10:00, она лежит на линии 20. Дальше линия идёт выше: 24, 28, 26, 24 °C. В 20:00 температура снова опустилась до 20 °C, а в 22:00 уже 16 °C. Значит, 20 °C и выше было с 10:00 до 20:00: ч.
Для сибирского июля картина знакомая: ночью у костра без свитера зябко, днём можно купаться в Обском море.
Типичная ошибка. Принять за минимум первую точку слева (12 °C в 0:00) и получить размах °C. Самая левая точка – не обязательно самая низкая, смотри на всю линию. В пункте г) часто считают точки вместо часов: на линии 20 и выше лежат шесть точек, и рука пишет «6». Но точки стоят через 2 часа, а считать нужно время от первой до последней: 10 часов.
Ответ: а) 28 °C в 14:00; б) 8 °C в 4:00; в) 20 °C; г) 10 ч.
По мотивам задачи образовательного курса НТО Junior 2023/24, сфера «Технологии и среда обитания», «У природы есть плохая погода»
Реши сам
3.1. По графику задачи 3.1: на сколько градусов потеплело с 6:00 до 14:00? На сколько градусов в час в среднем росла температура в это время?
ответ3.2. По тому же графику найди, между какими соседними замерами температура росла быстрее всего. Сколько градусов в час она прибавляла на этом участке?
ответЗадача 3.2 Майский заморозок
Метеостанция в саду под Новосибирском записывает температуру воздуха раз в 3 часа. Вот её записи за 24 мая.
| Время | Температура, °C |
|---|---|
| 0:00 | +2 |
| 3:00 | −1 |
| 6:00 | −3 |
| 9:00 | +4 |
| 12:00 | +11 |
| 15:00 | +13 |
| 18:00 | +9 |
| 21:00 | +6 |
Найди: а) среднесуточную температуру (среднее всех восьми замеров), округли до десятых; б) размах температуры; в) сколько замеров показали мороз, то есть температуру ниже 0 °C.
Дано: 8 замеров: +2, −1, −3, +4, +11, +13, +9, +6 °C.
Найти: среднее, размах, число замеров ниже 0 °C.
Шаг 1. Сумма. Складываем по одному числу, минусы не теряем: ; ; ; ; ; ; . Сумма – 41.
Шаг 2. Среднее. Замеров восемь: °C. До десятых: после запятой оставляем 1, следующая цифра 2 – меньше 5, поэтому округляем вниз: 5,1 °C.
Шаг 3. Размах. Максимум +13 °C в 15:00, минимум −3 °C в 6:00. °C. По термометру: от −3 до 0 – три градуса, от 0 до +13 – ещё тринадцать, всего 16.
Шаг 4. Мороз. Ниже нуля были −1 °C в 3:00 и −3 °C в 6:00 – два замера.
Ночь была морозной, а среднее всё равно вышло плюсовым: дневного тепла набралось больше, чем ночного холода. Для сада важнее другое – рассаду, которую уже высадили в грунт, в эту ночь надо было укрыть. В Сибири заморозки в конце мая – дело привычное, поэтому огородники и ждут начала июня.
Типичная ошибка. Потерять минусы и сложить . Тогда среднее выйдет °C, а размах °C. Ещё бывает, что 5,125 округляют до 5,2 «потому что там пятёрка» – но решает только цифра сразу за десятыми, а это 2.
Ответ: а) 5,1 °C; б) 16 °C; в) 2 замера.
Своя задача по программе сферы, модуль 8
Реши сам
3.3. Датчик влажности почвы в теплице каждое утро в 8:00 показывал: 42, 38, 35, 47, 44, 40 %. Найди среднюю влажность почвы за эти шесть дней и размах.
ответ3.4. Средняя дневная температура за пять дней по данным метеостанции – 14 °C. За первые четыре дня записано 12, 17, 9 и 15 °C, а запись за пятый день стёрлась. Какой была температура в пятый день?
ответЗадача 3.3 Формулы метеостанции
Данные метеостанции за день перенесли в электронную таблицу.
| A | B | C | |
|---|---|---|---|
| 1 | время | температура, °C | влажность, % |
| 2 | 8:00 | 17 | 78 |
| 3 | 10:00 | 21 | 70 |
| 4 | 12:00 | 26 | 58 |
| 5 | 14:00 | 29 | 51 |
| 6 | 16:00 | 27 | 55 |
| 7 | 18:00 | 25 | 64 |
| 8 | 20:00 | 19 | 73 |
В клетки справа записали формулы:
- E2:
=ОКРУГЛ(СРЗНАЧ(B2:B8);1) - E3:
=МАКС(C2:C8)-МИН(C2:C8) - E4:
=СЧЁТЕСЛИ(B2:B8;">25") - D3:
=B3-B2, а потом эту клетку протянули вниз до D8.
Какие числа появятся в клетках E2, E3, E4 и D6?
Дано: таблица, строки 2–8; формулы в E2, E3, E4, D3.
Найти: значения E2, E3, E4, D6.
Шаг 1. Сколько клеток в диапазоне. В строке 1 – заголовки, числа идут со строки 2 по строку 8. Клеток в B2:B8: .
Шаг 2. E2 – среднее температуры. Сумма: . Среднее: Функция ОКРУГЛ с числом 1 оставляет одну цифру после запятой; следующая цифра 2, поэтому получается 23,4.
Шаг 3. E3 – размах влажности. Смотрим столбец C. Максимум – 78 % в 8:00, минимум – 51 % в 14:00. .
Шаг 4. E4 – сколько замеров теплее 25 °C. Условие ">25" – строго больше. Подходят 26, 29 и 27. Замер 25 °C в 18:00 не считается: он равен 25, а не больше. Итого 3.
Шаг 5. D6 – протянутая формула. В D3 стоит =B3-B2. Протянули на три строки вниз – адреса тоже съехали на три строки: в D6 окажется =B6-B5. Это : с 14:00 до 16:00 похолодало на 2 градуса.
Заодно видно полезное: самый жаркий замер (29 °C в 14:00) совпал с самым сухим воздухом (51 %). Тёплый воздух может удержать больше пара, поэтому, даже если пара в нём не убавилось, влажность в процентах падает – подробнее об этом в главе 2.
Типичная ошибка. Поделить сумму на 8, потому что в таблице 8 строк: . Но строка 1 – заголовок, чисел только 7. Вторая ловушка – посчитать 25 в СЧЁТЕСЛИ и получить 4. Третья – решить, что протянутая формула осталась прежней, и написать в D6 разность .
Ответ: E2 = 23,4; E3 = 27; E4 = 3; D6 = −2.
По мотивам задачи образовательного курса НТО Junior 2023/24, сфера «Технологии и среда обитания», «Анализ температурных данных»
Реши сам
3.5. В клетках B2:B6 записано, сколько литров воды ушло на полив за пять дней: 12, 15, 9, 14, 10. Что покажут формулы =СУММ(B2:B6), =СРЗНАЧ(B2:B6) и =СЧЁТЕСЛИ(B2:B6;">=12")?
3.6. Датчик сутки записывал температуру раз в час, 24 замера лежат в клетках B2:B25. Какие формулы правильно посчитают среднюю температуру? Ответ – номера по возрастанию, без пробелов.
=СРЗНАЧ(B2:B25)=СУММ(B2:B25)/24=СУММ(B2:B25)/25=СРЗНАЧ(B2;B25)=(МАКС(B2:B25)+МИН(B2:B25))/2
Задача 3.4 Какой график построен по таблице
На крыше теплицы стоит фоторезистор – датчик света. Arduino раз в 2 часа записывала его показание analogRead. В этой схеме (фоторезистор здесь стоит между +5 В и A0, поэтому, в отличие от схемы курса из раздела 5.3, чем светлее, тем больше число) Arduino записала такие числа:
| Время | Показание |
|---|---|
| 8:00 | 310 |
| 10:00 | 560 |
| 12:00 | 820 |
| 14:00 | 450 |
| 16:00 | 790 |
| 18:00 | 520 |
| 20:00 | 140 |
Какой из четырёх графиков построен по этой таблице? Ответ – номер графика.
Дано: таблица из 7 замеров, 4 графика.
Найти: номер верного графика.
Шаг 1. Оси. У всех четырёх графиков оси одинаковые: время от 8 до 20 часов, показания от 0 до 1000. Между 0 и 500 – пять клеток, одна клетка стоит .
Шаг 2. Особые места таблицы. Сравнивать все 28 точек подряд долго. Сначала ищем в таблице то, что бросится в глаза на графике. Первое – провал в 14:00: до него 820, после 790, а в 14:00 только 450. Похоже, солнце закрыло облако. Второе – вечером свет падает до 140 в 20:00.
Шаг 3. Отсеиваем. На графике 1 провал стоит в 12:00, а в 14:00 точка поднялась к 820 – значения 12:00 и 14:00 перепутаны. На графике 2 провала нет вовсе: в 14:00 точка около 880. На графике 4 самая низкая точка стоит в 18:00, а в 20:00 линия снова поднимается к 520 – вечером стало светлее, чего по таблице не было. Остаётся график 3.
Шаг 4. Проверяем оставшийся по всем точкам. В 8:00 – чуть выше 300, в 10:00 – между 500 и 600, в 12:00 – чуть выше 800, в 14:00 – между 400 и 500, в 16:00 – чуть ниже 800, в 18:00 – чуть выше 500, в 20:00 – между 100 и 200. Все семь точек совпали с таблицей.
Если бы ни один из графиков не прошёл полную проверку, пришлось бы искать, где ошибся ты сам. Отсев «по особым местам» экономит время, но последнее слово – за проверкой каждой точки.
Типичная ошибка. Выбрать график 2, потому что он «красивый»: солнце утром встаёт, днём светит, вечером садится. Но задача спрашивает, что записал датчик, а не как должно быть. Ещё одна ловушка – график 4: первые пять точек у него совпадают с таблицей, и тот, кто проверил только начало, на нём и остановится.
Ответ: 3.
Своя задача по программе сферы, модуль 6
Реши сам
3.7. Показания датчика света за день – от 140 до 980. Ты рисуешь график на листе в клетку, по высоте есть 20 клеток, отсчёт начинается с нуля. Какую цену клетки выбрать – 20, 50, 100 или 200, – чтобы все точки поместились, а график получился как можно крупнее?
ответ3.8. По таблице задачи 3.4: между какими соседними замерами линия графика идёт круче всего? На сколько изменилось показание на этом участке и в какую сторону?
ответЗадача 3.5 Когда открыть форточку и когда полить
В теплице с томатами датчики каждые 2 часа записывали температуру воздуха и влажность почвы (рисунок). Правила автоматики: форточку открывают, если воздух теплее 27 °C; полив нужен, если влажность почвы ниже 35 %.
Выбери все верные утверждения. Ответ – номера по возрастанию, без пробелов.
- По замерам форточку нужно было держать открытой в 12:00, 14:00 и 16:00.
- Самый жаркий замер совпал по времени с самой сухой почвой.
- Впервые полив понадобился между 16:00 и 18:00.
- Быстрее всего почва сохла с 10:00 до 14:00, пока воздух разогревался до самой жары.
- Средняя температура воздуха по всем замерам выше 27 °C.
- Если не поливать, к 22:00 почва станет суше 30 %.
Дано: два графика с общей осью времени; пороги 27 °C и 35 %.
Найти: номера верных утверждений.
Шаг 1. Цена деления. Верхний график: подписи 10, 20, 30, 40 °C, между соседними пять клеток – по 2 °C. Нижний: подписи 20, 30 … 70 %, тоже пять клеток – по 2 %.
Шаг 2. Выписываем замеры. Совет из раздела 3.5: перевести картинку в числа.
| Время | Воздух, °C | Почва, % |
|---|---|---|
| 6:00 | 16 | 62 |
| 8:00 | 20 | 60 |
| 10:00 | 25 | 55 |
| 12:00 | 30 | 48 |
| 14:00 | 33 | 41 |
| 16:00 | 31 | 37 |
| 18:00 | 26 | 34 |
| 20:00 | 21 | 33 |
| 22:00 | 18 | 32 |
Шаг 3. Утверждение 1. Теплее 27 °C: 30 в 12:00, 33 в 14:00, 31 в 16:00. В 10:00 было 25, в 18:00 – 26, оба ниже порога. Верно.
Шаг 4. Утверждение 2. Самый жаркий замер – 33 °C в 14:00, почва тогда 41 %. Самая сухая почва – 32 % в 22:00. Неверно.
Шаг 5. Утверждение 3. В 16:00 почва 37 % – ещё не ниже 35. В 18:00 – 34 %, уже ниже. Порог пройден между 16:00 и 18:00. Верно.
Шаг 6. Утверждение 4. Сколько процентов почва теряла за каждые 2 часа: 2, 5, 7, 7, 4, 3, 1, 1. Больше всего – по 7 % с 10:00 до 12:00 и с 12:00 до 14:00. Верно.
Шаг 7. Утверждение 5. Сумма температур: . Замеров 9: °C. Это ниже 27. Неверно, хотя три замера и были выше порога.
Шаг 8. Утверждение 6. В 22:00 почва 32 % – это суше 35, но не суше 30. Неверно.
Верные: 1, 3, 4. Интересно, что почва отстаёт от воздуха. Воздух раскалился к 14:00, а почва дошла до порога только к вечеру: вода испаряется и уходит в растения постепенно. Поэтому поливать по часам «в самую жару» бессмысленно – агроном ждёт, что скажет датчик в земле.
Типичная ошибка. Отметить утверждение 5, потому что «днём почти весь график выше линии 27». Выше порога только три точки из девяти, а утренние и вечерние замеры тянут среднее вниз. Вторая ловушка – в утверждении 3 выбрать 16:00: точка 37 % лежит близко к линии, и кажется, что она уже под ней. Одна клетка здесь – 2 %, посчитай.
Ответ: 134.
По мотивам задачи образовательного курса НТО Junior 2023/24, сфера «Технологии и среда обитания», «Графики спасают урожай»
Реши сам
3.9. Почва в горшке с рассадой сохнет равномерно: в 7:00 датчик показал 58 %, в 11:00 – 46 %. Полив включается, когда влажность падает до 34 %. Во сколько включится полив?
ответ3.10. Вечером теплица остывает равномерно: в 17:00 было 26 °C, в 19:00 – 21 °C. Форточку закрывают, когда температура опускается до 22 °C, – иначе к утру теплица выстынет. Во сколько её нужно закрыть? Ответ – время в часах и минутах.
ответЗадача 3.6* *. Две теплицы – два графика
Агроном сравнивает две теплицы с томатами по графикам температуры за сутки, замер раз в 3 часа (рисунок). Норма для томатов в этой задаче – от 20 до 28 °C включительно; выше 32 °C пыльца развивается плохо.
Выбери все верные утверждения. Ответ – номера по возрастанию, без пробелов.
- В теплице А температура менялась сильнее, чем в Б: там линия прошла почти от низа графика до верха.
- Размах температуры в теплице Б на 14 °C больше, чем в А.
- Средние температуры за сутки в двух теплицах отличаются меньше чем на 1 °C.
- Раз средние почти равны, для томатов обе теплицы одинаково хороши.
- В теплице Б днём пыльца томатов могла пострадать от жары.
- В теплице А все замеры попали в норму.
Дано: два графика, по 8 замеров; норма 20–28 °C; пыльца страдает выше 32 °C.
Найти: номера верных утверждений.
Шаг 1. Оси – первым делом. Левый график начинается не с нуля: ось идёт от 19 до 29 °C, каждая линия – 1 °C. У правого ось от 0 до 40 °C, подписи через 10, между ними пять клеток – по 2 °C. Масштабы разные, значит, на глаз сравнивать нельзя.
Шаг 2. Выписываем замеры.
| Время | А, °C | Б, °C |
|---|---|---|
| 0:00 | 21 | 16 |
| 3:00 | 20 | 14 |
| 6:00 | 21 | 15 |
| 9:00 | 24 | 24 |
| 12:00 | 27 | 33 |
| 15:00 | 28 | 36 |
| 18:00 | 25 | 28 |
| 21:00 | 23 | 20 |
Шаг 3. Размахи (утверждения 1 и 2). А: °C. Б: °C. В Б температура менялась почти втрое сильнее, утверждение 1 неверно. Разница размахов °C – утверждение 2 верно.
Шаг 4. Средние (утверждения 3 и 4). А: , °C. Б: , °C. Разница °C, меньше градуса – утверждение 3 верно. Но в Б ночью было 14–16 °C, ниже нормы, а днём 33 и 36 °C – выше. Средние равны, а условия разные, утверждение 4 неверно.
Шаг 5. Пыльца (утверждение 5). В Б в 12:00 было 33 °C, а в 15:00 – 36 °C, оба значения выше 32. Верно.
Шаг 6. Норма в А (утверждение 6). Все замеры А – от 20 до 28 °C. Самые крайние, 20 °C в 3:00 и 28 °C в 15:00, лежат на границах нормы, а границы в неё входят («включительно»). Верно.
Верные: 2, 3, 5, 6. Задача показывает сразу два обмана из раздела 3.6. Растянутая ось сделала спокойную теплицу А похожей на американские горки. А одинаковое среднее спрятало, что в Б томаты ночью мёрзнут, а днём перегреваются.
Типичная ошибка. Отметить утверждение 1, сравнив графики на глаз, – ради этой ловушки задача и придумана. Вторая ошибка – выкинуть утверждение 6 из-за замеров 20 и 28 °C: «на границе – значит, уже не норма». Читай условие: норма дана включительно.
Ответ: 2356.
Своя задача по программе сферы, модуль 2
Реши сам
3.11. На графике А вертикальная ось идёт от 18 до 26 °C и разбита на 8 клеток. На графике Б ось от 0 до 40 °C, тоже 8 клеток. За утро линия на графике А поднялась на 6 клеток, а на графике Б – на 3 клетки. В какой теплице потеплело сильнее? На сколько градусов потеплело в каждой?
ответ3.12*.* Датчик записывал температуру в теплице неравномерно: ночью редко, днём часто. Записи: 0:00 – 14 °C, 6:00 – 12 °C, 9:00 – 20 °C, 10:00 – 24 °C, 11:00 – 27 °C, 12:00 – 29 °C, 13:00 – 30 °C, 14:00 – 29 °C, 18:00 – 22 °C. Аня посчитала среднее всех девяти записей. Боря взял только записи с равным шагом – в 0:00, 6:00, 12:00 и 18:00 – и посчитал среднее по ним. Найди оба средних. У кого из ребят среднее завышено и почему?
ответВода и полив

Вода – самое простое, что есть в теплице, и на ней же постоянно путаются в арифметике. В этой главе посчитаем, сколько литров выпивает грядка, сколько минут насос будет наполнять бак и сколько воды сбережёт капельный полив. Потом немного физики: зачем бочку ставят повыше и отчего по утрам стёкла теплицы мокрые изнутри. На отборе такие задачи выглядят как короткая история про сити-ферму или дачу с парой чисел, а ответ – одно число в литрах, минутах или процентах.
4.1. Сколько воды нужно грядке
Если каждому кусту нужно одно и то же, воду на всю грядку считают умножением.
Сколько пьёт растение, зависит от культуры, возраста, погоды и почвы. Рассада томата и взрослый куст с плодами в жаркий июльский день пьют совсем по-разному. Поэтому в задачах норму полива дают прямо в условии, и считать надо по ней. Встречается она в двух видах.
- На одно растение: «каждому кусту 1,5 л в сутки». Тогда воду на грядку находим так: норма на куст умножить на число кустов.
- На площадь: «4 л на 1 м² за полив». Тогда норму умножаем на площадь грядки в квадратных метрах. Площадь прямоугольной грядки – длина, умноженная на ширину: грядка 1,2 м × 5 м занимает м².
В обоих случаях работает прямая пропорциональность: во сколько раз больше кустов (метров, дней), во столько раз больше воды. Одному кусту нужно 1,5 л в сутки – четырём нужно л, а за неделю им же нужно л. Порядок умножения не важен, важно не потерять ни одного множителя.
Пропорцию можно решать и «через одну штуку». Для 12 горшков нужно 3 л воды в сутки, а сколько нужно для 20? Сначала на один горшок: л. Потом на двадцать: л. Этот приём спасает, когда числа неудобные и сразу не видно, «во сколько раз».
Теперь про круглые числа. Воду запасают так, чтобы хватило, поэтому запасы округляют вверх. Если полив съест 3,15 бочки, наполнять бочку придётся 4 раза: после трёх наполнений грядке не хватит. А вопрос «на сколько целых суток хватит бака» решается наоборот, вниз: 2,78 суток – это 2 полных дня, на третий воды уже не хватит.
Запомни. Вода на грядку = норма × число кустов (или × площадь) × число дней. Запас – округляем вверх, «сколько полных дней хватит» – вниз.
4.2. Литры, баки и слой воды
Литр на квадратный метр – это миллиметр воды. Поэтому дождь и полив меряют в миллиметрах.
Литр – объём кубика со стороной 10 см, то есть 1 дм. Пакет молока – почти он. Всё, что нужно для полива, выражается через литр:
- 1 л = 1000 мл, а 1 мл = 1 см³ (кубик со стороной 1 см, как игральная кость);
- 1 л = 1 дм³ = 1000 см³;
- 1 м³ = 1000 л – кубометр, куб со стороной 1 м;
- литр воды весит 1 кг, миллилитр – 1 г.
Когда нужно найти, сколько литров в баке, бак почти всегда оказывается бруском или цилиндром (бочкой).
Объём бруска – длина, умноженная на ширину и на высоту: . Бак 60 см × 40 см × 50 см вмещает см³. В литре 1000 см³, поэтому это л. Можно сразу считать в дециметрах: дм³ = 120 л – короче, и нули не теряются.
Объём цилиндра – площадь круглого дна, умноженная на высоту: . Здесь – число «пи» (кнопка на калькуляторе), – радиус, половина диаметра, – высота. Бочка диаметром 50 см и высотой 80 см: радиус 25 см = 2,5 дм, высота 8 дм, дм³, то есть около 157 л. В условиях дают диаметр, а в формулу нужен радиус. Кто забыл поделить на 2, получит бочку вчетверо больше настоящей.
Картинка выше даёт полезное правило: 1 л на 1 м² – это слой в 1 мм. Проверим счётом: квадратный метр – это 10 дм × 10 дм = 100 дм². Слой 1 мм – это 0,01 дм. Объём слоя дм³ = 1 л. Отсюда: если метеостанция намерила за ночь 5 мм дождя, каждый квадратный метр грядки получил 5 л воды. И наоборот: полив «4 л на 1 м²» – это слой в 4 мм.
Запомни. 1 л = 1 дм³ = 1000 см³ = 1000 мл; 1 м³ = 1000 л; 1 л воды – 1 кг. Считай объём в дециметрах – сразу получишь литры. 1 мм осадков или полива = 1 л на каждый квадратный метр.
Совет. Перед подсчётом объёма переведи все размеры в одну единицу. Бак «1,2 м × 50 см × 400 мм» в дециметрах выглядит как л – и никаких ошибок в нулях.
4.3. Насос: литры в минуту
Производительность насоса – сколько литров он перекачивает за одну минуту (или за час).
Насос – моторчик с крыльчаткой, который гонит воду по трубке. В умной теплице он поливает грядки и наполняет баки. Его паспортное число – производительность: сколько литров насос перекачивает за единицу времени. На насосе или в его описании пишут, например, «300 л/ч» или «5 л/мин».
Считают с насосом, как с дорогой: литры – это путь, производительность – скорость, минуты – время.
- Сколько воды накачает: объём = производительность × время. 5 л/мин за 12 мин – л.
- Сколько времени качать: время = объём : производительность. 120 л при 5 л/мин – мин.
- Какой нужен насос: производительность = объём : время. Бак на 90 л нужно наполнять за 15 мин – насос должен давать л/мин.
Единицы должны подходить друг к другу. Если производительность в литрах в час, а время спрашивают в минутах, сначала переведи: 300 л/ч = л/мин (в часе 60 минут, и за минуту насос успеет в 60 раз меньше). Маленькие насосы для комнатных теплиц иногда описывают в миллилитрах в секунду: 50 мл/с – это мл/мин = 3 л/мин.
В программе умной теплицы насос часто включают на время. Надо налить 3 л насосом на 2 л/мин – держим его включённым мин, то есть 90 с. В программе Arduino время пишут в миллисекундах, значит, насос должен работать 90 000 мс. Как Arduino включает насос и держит его нужное время, будет в главе 6.
Бывает, что вода одновременно и прибывает, и убывает: насос наполняет бак, а капельницы из этого же бака поливают грядку. Тогда бак наполняется со скоростью «насос минус капельницы». Насос даёт 8 л/мин, капельницы берут 2 л/мин – уровень в баке растёт на л каждую минуту. Так же наполняется ванна, если забыть заткнуть пробку: вода прибывает, но медленнее, чем течёт из крана.
Запомни. Объём = производительность × время; время = объём : производительность. Перед делением приведи л/ч и минуты (или мл и литры) к одним единицам. Вода и приходит, и уходит – считай разницу.
4.4. Капельный полив: считаем экономию
Вода, которая растеклась мимо корней или испарилась с земли, растению не досталась. Капельный полив теряет её меньше.
Когда поливаешь из шланга или лейки, вода разливается по всей грядке. Часть уходит в дорожки, часть впитывается туда, где корней нет, часть испаряется с мокрой земли. Капельный полив устроен иначе: вдоль грядки лежит трубка или лента с маленькими отверстиями – капельницами, и у каждого растения вода сочится по капле прямо под корень. Земля между кустами остаётся сухой, испаряться с неё нечему, и сорнякам там тоже пить нечего.
Долю воды, которая дошла до корней, в задачах дают в процентах. Скажем, «при поливе шлангом до корней доходит 60 % вылитой воды». Это значит, что растению достаётся от вылитого. Отсюда две формулы:
- сколько дойдёт: дошло = вылили · доля. Вылили 20 л, доля 60 % – дошло л;
- сколько вылить: вылили = нужно : доля. Корням нужно 12 л, доля 60 % – вылить л.
Экономия в процентах считается от того, что было до перемен:
Тратили 250 л в неделю, стали тратить 200 л. Сберегли 50 л, а это %. Если поделить 50 на 200 (на новый расход), получится 25 % – неверно: сравнивают с прежним расходом.
И обратный ход. «Расход уменьшили на 20 %, стало 200 л» – сколько было? Уменьшить на 20 % – значит оставить 80 %. Значит, 200 л – это 80 % от прежнего, и было л. Прибавлять к 200 двадцать процентов нельзя: – не то число.
Запомни. Вылить = нужно корням : доля. Процент экономии – от старого расхода. «Стало меньше на 20 %» = «стало 80 % от прежнего».
Совет. Проценты в задаче про две доли не вычитай друг из друга. Из «60 % и 90 %» не следует «экономия 30 %» – посчитай литры для каждого способа и сравни литры.
4.5. Давление воды: глубже – сильнее давит
Чем глубже дырка, тем больше воды над ней, и тем сильнее вода выталкивает струю.
Нырни в бассейне на дно – заложит уши. Это давит вода: чем глубже, тем сильнее. Чтобы посчитать, насколько сильнее, нужны два слова из физики.
Сила – то, чем одно тело толкает или тянет другое. Её меряют в ньютонах (Н). Земля тянет к себе каждый килограмм с силой около 9,8 Н. Поэтому пакет молока (1 кг) давит на ладонь с силой около 10 Н, а ведро воды на 10 л – около 98 Н. Число 9,8 Н/кг обозначают буквой .
Давление – сила, которая приходится на каждый квадратный метр. Словами: давление равно силе, делённой на площадь. Буквами:
где – давление в паскалях (Па), – сила в ньютонах, – площадь в квадратных метрах. Один паскаль – это сила 1 Н на квадратный метр, очень мало. Поэтому часто пишут килопаскали: 1 кПа = 1000 Па. Одна и та же сила на маленькой площади давит сильнее: поэтому гвоздь с острым концом входит в доску, а лыжи не проваливаются в сугроб.
Теперь посчитаем давление воды на дне. Возьмём столб воды над площадкой в 1 м² высотой 1 м.
Объём столба – 1 м³, это 1000 л и 1000 кг. Вес такой воды – Н, и вся эта сила давит на 1 м² дна. Давление – 9800 Па, почти 10 кПа. Столб высотой 2 м весит вдвое больше и давит вдвое сильнее, 19 600 Па. Получается правило: каждый метр глубины воды добавляет 9,8 кПа. Формулой:
где («ро») – плотность воды, 1000 кг/м³ (масса одного кубометра), Н/кг, – глубина или высота столба воды в метрах. Для воды , поэтому Па.
Вот где в задачах спотыкаются:
- Давление зависит только от глубины. В узкой трубе и в широком бассейне на одной глубине давление одинаковое. Литры тут ни при чём: большой бак давит на дно сильнее целиком (дно больше), но каждый его квадратный метр получает столько же.
- Высоту считают от поверхности воды, а не от дна бака и не от земли. Для капельницы на грядке – это расстояние по высоте от уровня воды в бочке до самой капельницы.
- Уровень опускается – давление падает. Бочка пустеет, столб воды над капельницами становится ниже, и вода течёт всё слабее.
Поэтому на дачах бочку для самотёчного полива ставят на подставку, а в городе строили водонапорные башни: бак высоко наверху давит на воду в трубах, и она доходит до кранов. Для сравнения: на глубине 10 м вода давит с силой Па, около 100 кПа. Примерно так же давит на нас весь воздух над головой.
Запомни. , давление в паскалях. Вода: каждый метр глубины – плюс 9,8 кПа, Па, где в метрах от поверхности воды. Ширина бака и число литров на давление не влияют.
Совет. Высоту в сантиметрах сначала переведи в метры: 60 см = 0,6 м. А ответ в паскалях перед сравнением с «кПа» из условия подели на 1000.
4.6. Испарение и конденсация: почему потеют стёкла
Стекло с одной стороны тёплое от воздуха теплицы, а с другой его остужает мороз. Возле такого стекла пар превращается обратно в воду.
Испарение – превращение воды в невидимый водяной пар. Лужа после дождя высыхает, мокрая футболка на верёвке сохнет – это испарение. Идёт оно тем быстрее,
- чем теплее (в жару лужа высыхает за час, в прохладу – за день);
- чем суше воздух вокруг (в сыром воздухе бельё сохнет еле-еле);
- чем сильнее ветер (он уносит пар от поверхности);
- чем больше открытая поверхность воды (разлитая по полу вода высохнет быстрее, чем в стакане).
Испаряясь, вода забирает тепло. Выйди из реки на ветер – сразу станет холодно, хотя на улице жара. Так же и лист: в главе 1 мы видели, что растение испаряет через устьица больше 90 % выпитой воды, и этим охлаждает себя в жару.
Конденсация – обратный путь: пар снова становится каплями. Происходит это на холодном. Достань бутылку из холодильника – через минуту она мокрая снаружи. Зимой в школьном автобусе окна мокрые изнутри: снаружи мороз, а внутри тёплый воздух и дыхание пассажиров.
Помнишь «стакан для пара» из главы 1 (раздел 1.7)? Тёплый воздух – большой стакан, холодный – маленький. Воздух теплицы касается холодного стекла, остывает, и стакан у него сжимается. Пар, который не влез, выпадает каплями на стекло. В граммах это считали в задаче 1.7 и в разделе 2.3.
В теплице вода ходит по кругу. Утром полили грядку. Корни выпили воду, листья испарили её в воздух, заодно испарилось немного с земли. Ночью стёкла остыли – пар сел на них каплями. Капли стекают по стенкам вниз, на землю, а с крыши иногда капают прямо на листья. Мокрые листья на всю ночь – раздолье для грибковых болезней. Поэтому теплицу проветривают, пока воздух на улице суше, и не поливают поздно вечером.
Для полива испарение – потеря. Вода испаряется из открытой бочки, с мокрой земли вокруг кустов, из дорожек. Чтобы терять меньше, поливают утром или вечером, а не в полуденную жару, накрывают бочку крышкой и укрывают землю мульчей – слоем соломы, скошенной травы или плёнки. Мульча закрывает землю от солнца и ветра, и влага держится дольше.
Запомни. Испарение ускоряют тепло, сухой воздух, ветер и большая открытая поверхность; испаряясь, вода охлаждает. Конденсация идёт на холодном: пар из тёплого воздуха оседает каплями на холодном стекле. 1 г воды – это 1 мл.
4.7. Разбираем задачи
Задача 4.1 Томаты на неделю
В теплице три ряда томатов, в каждом ряду 8 кустов. В жаркую неделю каждому кусту нужно 1,5 л воды в сутки. Воду берут из бочки на 80 л.
а) Сколько литров воды нужно всем кустам за неделю?
б) Сколько раз за неделю придётся наполнить бочку, если она каждый раз наполняется доверху?
Дано: 3 ряда по 8 кустов; 1,5 л на куст в сутки; 7 суток; бочка 80 л.
Найти: воду за неделю; сколько раз наполнять бочку.
Шаг 1. Сколько кустов. куста.
Шаг 2. Вода за сутки. Каждому по 1,5 л: л в сутки.
Шаг 3. Вода за неделю. л.
Шаг 4. Сколько бочек. . Три полные бочки – это 240 л, не хватает ещё 12 л. Значит, бочку наполняют 4 раза: последний раз её выльют не до дна, но без этого наполнения 12 л не взять.
Прикинем на вёдрах: 36 л в день – три с половиной ведра, за неделю – около 25 вёдер. Трёх бочек по 8 вёдер на это и правда не хватает.
Типичная ошибка. Округлить 3,15 «по правилам» до 3. Но три бочки – 240 л, и в последний день части кустов воды не достанется. Запас округляют вверх. Бывает и другое: забывают про 7 дней и отвечают «36 л» – это только одни сутки.
Ответ: а) 252 л; б) 4 раза.
Своя задача по программе сферы, модуль 2
Реши сам
4.1. Грядка с огурцами – 1,2 м × 5 м. За один полив ей нужно 4 л воды на каждый квадратный метр. Сколько литров нужно на один полив? Каким слоем (в миллиметрах) легла бы эта вода, если разлить её равномерно по всей грядке?
ответ4.2. На сити-ферме 4 стеллажа, на каждом 3 полки, на каждой полке 16 горшков с зеленью. Каждому горшку нужно 250 мл воды в сутки. Сколько литров воды ферма тратит в сутки? На сколько полных суток хватит бака на 150 л?
ответЗадача 4.2 Сколько минут наполнять бак
Для капельного полива на крыше поставили пластиковый бак-брусок. Его внутренние размеры: длина 80 см, ширина 50 см, высота 45 см. Бак наполняют насосом, на котором написано «300 л/ч». Сколько минут нужно, чтобы наполнить пустой бак доверху?
Дано: см; см; см; производительность 300 л/ч.
Найти: время наполнения в минутах.
Шаг 1. Объём бака. Переведём размеры в дециметры, тогда объём сразу выйдет в литрах: 80 см = 8 дм, 50 см = 5 дм, 45 см = 4,5 дм. дм³ = 180 л.
Шаг 2. Производительность в минутах. Ответ нужен в минутах, а насос подписан в литрах в час. В часе 60 минут: л/мин.
Шаг 3. Время. Время = объём : производительность: мин.
Проверим другим путём. Поделим литры на литры в час, получим часы: ч. А мин – то же самое. Меньше часа на бак, в который помещается почти два десятка вёдер, – для небольшого насоса правдоподобно.
Типичная ошибка. Поделить 180 на 300 и записать в ответ «0,6». Это часы, а спрашивали минуты. Другая – считать объём в сантиметрах и забыть перевести: – это кубические сантиметры, а не литры, и время выйдет в тысячу раз больше.
Ответ: 36 мин.
По мотивам задачи образовательного курса НТО Junior 2023/24, сфера «Технологии и среда обитания», «Насос для зелёного оазиса»
Реши сам
4.3. На насосе написано «150 л/ч». Сколько литров он накачает за 18 минут?
ответ4.4. Бочка-цилиндр имеет внутренний диаметр 60 см и высоту 90 см. Её наполняют насосом на 12 л/мин. За сколько минут наполнится пустая бочка? Число бери с калькулятора, ответ округли до десятых.
ответЗадача 4.3 Шланг или капельницы
Фермер поливает грядки сити-фермы из шланга. Растениям на ферме нужно, чтобы до корней доходило 18 л воды в сутки. При поливе из шланга до корней доходит 60 % вылитой воды, при капельном поливе – 90 %.
а) Сколько литров в сутки нужно выливать при каждом способе полива?
б) На сколько процентов меньше воды тратит капельный полив? Округли до целых.
в) Сколько литров сбережёт капельный полив за лето – с 1 июня по 31 августа?
Дано: до корней нужно 18 л в сутки; доля шланга 60 %; доля капельниц 90 %.
Найти: расход каждого способа; экономию в процентах; экономию за лето в литрах.
Шаг 1. Что значит «доходит 60 %». Из каждого вылитого литра корням достаётся 0,6 л. Нам известно, сколько должно дойти, а неизвестно, сколько вылить. Значит, делим: вылить = нужно : доля.
Шаг 2. Шланг. л в сутки. Проверка: л доходит до корней.
Шаг 3. Капельницы. л в сутки. И обратно: л.
Шаг 4. Экономия в литрах. л в сутки.
Шаг 5. Экономия в процентах. Сравниваем с тем, что было до перехода на капельницы, – со шлангом: %, до целых – 33 %.
Шаг 6. За лето. В июне 30 дней, в июле и августе по 31: дня. л.
Почти тонна воды с одной маленькой фермы – примерно пять больших бочек. Ради такого капельный полив и ставят.
Типичная ошибка. Вычесть проценты: %. Но 60 % и 90 % – это доли от разных количеств вылитой воды, и их разница не говорит, на сколько уменьшился расход. Сравнивать надо литры. Вторая ошибка – умножить вместо деления: л. Выходит, что вылить нужно меньше, чем должно дойти до корней, а так не бывает.
Ответ: а) шланг – 30 л, капельницы – 20 л; б) на 33 %; в) 920 л.
По мотивам задачи образовательного курса НТО Junior 2023/24, сфера «Технологии и среда обитания», «Как полить сити-ферму и сэкономить?»
Реши сам
4.5. Раньше дачный участок тратил на полив 250 л воды в неделю, после установки капельного полива – 175 л. На сколько процентов уменьшился расход?
ответ4.6. После перехода на капельный полив расход воды на сити-ферме уменьшился на 35 % и стал 390 л в неделю. Сколько литров в неделю тратили раньше? Сколько литров в неделю теперь сберегают?
ответЗадача 4.4 Бочка на подставке
На даче грядку поливают самотёком: бочка стоит на подставке, от неё к грядке идёт трубка с капельной лентой (рисунок ниже). Уровень воды в бочке на 2,1 м выше капельниц. Считай Н/кг, плотность воды 1000 кг/м³.
а) Какое давление создаёт вода у капельниц? Ответ дай в килопаскалях, округли до десятых.
б) По описанию капельницы работают как надо, если давление не меньше 14,7 кПа. На какой наименьшей высоте над капельницами должен оставаться уровень воды в бочке?
Дано: м; кг/м³; Н/кг; нужно не меньше 14,7 кПа.
Найти: в кПа; наименьшую .
Шаг 1. Давление столба воды. Па.
Шаг 2. В килопаскали. В 1 кПа 1000 Па: кПа, до десятых – 20,6 кПа.
Шаг 3. Наименьшая высота. Давление и высота пропорциональны: каждый метр даёт 9800 Па. Переведём 14,7 кПа в паскали: Па. Сколько метров воды дают такое давление? м.
Умножим обратно: Па. Пока уровень воды выше капельниц хотя бы на 1,5 м, капельницы работают как надо. Уровень опустится на 0,6 м () – и полив начнёт слабеть.
Типичная ошибка. Взять высоту подставки или высоту от земли до дна бочки. Давит весь столб воды над капельницей – от поверхности воды в бочке до самой капельницы. Ещё одна – подставить высоту в сантиметрах: даёт 2 058 000 Па, в сто раз больше верного. В формулу высота идёт в метрах.
Ответ: а) 20,6 кПа; б) 1,5 м.
Своя задача по программе сферы, модуль 2
Реши сам
4.7. В баке с водой глубина 60 см. Какое давление создаёт вода на дне бака? Ответ дай в паскалях. Н/кг.
ответ4.8. В теплице два бака. В баке А – 200 л воды, высота воды в нём 0,8 м. Бак Б широкий, в нём 1000 л, а высота воды 0,5 м. На дне какого бака давление воды больше и во сколько раз?
ответЗадача 4.5 Мокрые стёкла
За жаркий день растения и земля в теплице испарили 14 л воды. Ночью ударил заморозок, и к утру на внутренней стороне стёкол осело по 35 г воды на каждый квадратный метр стекла. Площадь всех стёкол теплицы – 60 м².
а) Сколько литров воды оказалось утром на стёклах?
б) Какую часть испарённой за день воды это составляет? Ответ – в процентах.
Дано: испарилось 14 л; на стёклах 35 г/м²; площадь стёкол 60 м².
Найти: воду на стёклах в литрах; её долю от испарённой в процентах.
Шаг 1. Откуда капли. Пар, который днём ушёл в воздух теплицы, ночью касается холодного стекла. Воздух у стекла остывает и уже не держит весь пар, лишний оседает каплями. Поэтому стёкла мокрые изнутри, со стороны тёплого воздуха.
Шаг 2. Вода на всех стёклах в граммах. г.
Шаг 3. В литры. Грамм воды – это миллилитр, значит, 2100 г = 2100 мл. В литре 1000 мл: л.
Шаг 4. Доля. Сравниваем с тем, что испарилось: %.
Значит, большая часть пара осталась в воздухе или ушла через щели, а на стёкла села примерно седьмая часть. Два с лишним литра – это больше восьми стаканов воды, которые к утру стекут по стенкам.
Типичная ошибка. Ответить «2100 л» – забыть, что 35 – это граммы. Литр воды весит килограмм, а тут всего 2,1 кг. И ещё: поделить наоборот, , и получить 6,7. Доля – всегда часть, делённая на целое, и в процентах она здесь меньше 100.
Ответ: а) 2,1 л; б) 15 %.
Своя задача по программе сферы, модуль 2
Реши сам
4.9. Выбери верные утверждения. В ответ запиши их номера по возрастанию, без пробелов.
- Стёкла теплицы потеют изнутри, потому что вода с улицы просачивается сквозь стекло.
- Капли появляются на стекле, когда воздух у холодного стекла остывает и не может удержать весь пар.
- При одинаковой погоде в теплице, полной растений, стёкла к утру мокрее, чем в пустой.
- Если вечером проветрить теплицу, пока воздух на улице суше, к утру капель на стёклах будет меньше.
- Лужа высохнет быстрее в прохладный безветренный день, чем в жаркий ветреный.
- Когда вода испаряется с листа, лист охлаждается.
4.10. В жаркую погоду из открытой бочки диаметром 60 см каждый день испаряется слой воды толщиной 6 мм. Сколько литров воды испарится за 10 таких дней? Округли до целых.
ответЗадача 4.6* *. Автополив с баком
В умной теплице 48 капельниц, каждая даёт 2,5 л воды в час. Все они берут воду из бака. Бак подкачивает насос на 8 л/мин. Автоматика следит за уровнем: когда в баке остаётся 50 л, насос включается, а когда воды становится 200 л – выключается. Капельницы работают всё время без перерыва.
а) Сколько минут насос работает за одно включение?
б) Полив шёл 10 часов и начался с полным баком (200 л). Сколько раз за это время включался насос?
Дано: 48 капельниц по 2,5 л/ч; насос 8 л/мин; включение при 50 л, выключение при 200 л; 10 ч; в начале 200 л.
Найти: время одной работы насоса; число включений за 10 ч.
Шаг 1. Расход капельниц в минуту. Все вместе: л/ч. Насос подписан в литрах в минуту, поэтому переводим: л/мин.
Шаг 2. Как быстро наполняется бак. Пока насос работает, капельницы продолжают брать воду. Каждую минуту насос добавляет 8 л, капельницы забирают 2 л, в баке прибавляется л.
Шаг 3. Одна работа насоса. Он поднимает уровень от 50 л до 200 л, то есть на л. Время: мин.
Шаг 4. Как быстро бак пустеет. Насос выключен, работают одни капельницы: минус 2 л в минуту. От 200 л до 50 л – те же 150 л: мин.
Шаг 5. Рисуем картину. Полив начался с полного бака, значит, сначала 75 мин бак пустеет. Потом насос включается, 25 мин наполняет, выключается, снова 75 мин спада – и так по кругу. Один круг – мин.
Шаг 6. Считаем включения. 10 ч = 600 мин. Насос включается на 75-й минуте, потом каждые 100 мин: на 75, 175, 275, 375, 475 и 575-й минуте. Следующее включение было бы на 675-й минуте – это уже после конца полива. Всего 6 включений. Последнее закончится как раз на 600-й минуте.
На графике это видно сразу: шесть «зубцов» вверх. А насос работает только четверть времени – 25 мин из каждых 100.
Типичная ошибка. Забыть про капельницы, пока бак наполняется, и посчитать мин. Капельницы не выключаются, поэтому бак растёт на 6 л в минуту, а не на 8. Вторая ошибка – поделить 600 на 100 и сразу ответить «6», не глядя на начало. Здесь совпало, но при поливе 9 ч 40 мин деление даёт 5,8, а включений всё равно 6: последнее – на 575-й минуте. Надёжнее выписать минуты включений по порядку.
Ответ: а) 25 мин; б) 6 раз.
Своя задача по программе сферы, модуль 7
Реши сам
4.11. Бак на 120 л полон. Капельницы берут из него 3 л/мин, а насос одновременно подкачивает 1 л/мин. Через сколько минут бак опустеет?
ответ4.12*.* В теплице 36 капельниц по 4 л/ч, они работают без перерыва. Насос на 10 л/мин включается, когда в баке 30 л, и выключается, когда 180 л. Сколько минут насос работает за одно включение? Округли до десятых. Какую часть времени (в процентах, до целых) насос работает, если считать полный круг «наполнение + спад»?
ответЭлектричество, энергия и датчики

Умная теплица – это электричество: оно бежит по проводам к датчикам, крутит насос, греет воздух ночью. В этой главе ты разберёшься, что такое ток, напряжение и сопротивление, посчитаешь резистор для светодиода и узнаешь, как термометр превращает градусы в число от 0 до 1023. А ещё – сколько энергии даёт солнечная панель и сколько её уходит на обогрев зимой. На отборе такие задачи выглядят как короткая история про схему или прибор, а в ответ вводится число с единицей или номер подходящего варианта.
5.1. Цепь: ток, напряжение, сопротивление
Насос поднимает воду наверх, вода стекает по трубе и снова попадает к насосу. Батарейка делает с зарядами то же, что насос с водой.
Электричество руками не потрогаешь (и не надо), поэтому его удобно сравнивать с водой. По проводам движутся крошечные заряженные частицы. Их упорядоченное движение называют электрическим током. Ток идёт только по замкнутой цепи – когда от плюса источника до минуса есть сплошной путь из проводов и деталей. Разорвали провод в одном месте – ток пропал везде, как вода в перекрытой трубе.
Три величины описывают любую цепь.
- Сила тока – сколько заряда пробегает через провод за секунду, как литры воды в секунду в трубе. Измеряют в амперах (А). Для светодиода 1 А – очень много, поэтому в электронике в ходу миллиамперы: 1 А = 1000 мА. Светодиоду хватает 10–20 мА, телефон заряжается током около 1–2 А.
- Напряжение – насколько сильно источник «толкает» заряды, как перепад высот между баками. Измеряют в вольтах (В). Пальчиковая батарейка – 1,5 В, плата Arduino даёт датчикам 5 В, в розетке около 220 В – это опасно для жизни, с розеткой никаких опытов.
- Сопротивление – насколько деталь мешает току, как узкое место в трубе. Измеряют в омах (Ом); 1 кОм (килоом) = 1000 Ом. Детали, у которых главная работа – сопротивляться, называют резисторами.
Источник (батарейка, аккумулятор, плата Arduino, солнечная панель) создаёт напряжение. У него два вывода: плюс и минус. На Arduino минус подписан GND (от английского ground – «земля»), его напряжение считают за 0 В. Провода на схемах рисуют линиями, резистор по российским правилам – прямоугольником.
Если соединить плюс и минус просто проводом, без деталей, сопротивление почти нулевое, и ток становится огромным. Это короткое замыкание: провода греются, батарейка садится за минуты, а плата может сгореть. Светодиод, включённый в 5 В напрямую, тоже почти не мешает току. Tinkercad в таком случае ругается: ток во много раз больше допустимых 20 мА. Настоящий светодиод просто перестанет светить – навсегда.
И ещё одна деталь про светодиод: ток идёт через него только в одну сторону. Длинная ножка (анод) подключается к плюсу, короткая (катод) – к минусу. Перевернёшь – не загорится, хотя схема та же.
Запомни. Ток – поток зарядов, амперы. Напряжение – «толкание», вольты. Сопротивление – помеха току, омы. Ток идёт только по замкнутой цепи. 1 А = 1000 мА, 1 кОм = 1000 Ом.
5.2. Закон Ома: считаем резистор
Заряд скатывается от +5 В до 0 В. Три ступеньки забирает резистор, две – светодиод. Вместе всегда пять.
Возьмём водопровод с картинки из раздела 5.1. Поднимешь верхний бак выше – вода побежит быстрее. Сделаешь трубу уже – медленнее. С током то же самое: ток тем больше, чем больше напряжение, и тем меньше, чем больше сопротивление. Это закон Ома (Георг Ом – немецкий физик, открыл его в XIX веке). Буквами:
где – ток в амперах, – напряжение в вольтах, – сопротивление в омах. Из этой формулы получаются ещё две: и . Пример: резистор 1 кОм подключили к 5 В. Сначала переводим: 1 кОм = 1000 Ом. Ток А = 5 мА.
Единицы в формуле Ома должны быть основными: вольты, амперы, омы. Если подставить миллиамперы или килоомы как есть, ответ уедет в тысячу раз.
Резистор для светодиода. Вывод Arduino даёт 5 В, а светодиоду нужно около 2 В и ток не больше 20 мА. (Это и рабочий предел вывода Arduino: в паспорте платы написано около 40 мА, но дольше живёт тот, кто держится в 20.) Лишние вольты должны «упасть» на резисторе – он стоит в цепи перед светодиодом (рисунок ниже). Когда детали соединены одна за другой, ток через них один и тот же, а напряжения складываются: В. Считаем в три шага:
- напряжение на резисторе: В;
- ток: 20 мА = 0,02 А;
- сопротивление: Ом.
Резисторы продают не всех номиналов: в наборах для Arduino почти всегда есть 220 Ом, 1 кОм и 10 кОм. Если нужного нет, берут ближайший больший. С 220 Ом ток станет А ≈ 13,6 мА – светодиод чуть тусклее, зато цел. Меньший резистор брать нельзя: ток вырастет выше 20 мА.
Воде, которой надо протиснуться через три сужения подряд, труднее, чем через одно. А если узкие трубы стоят рядом, вода течёт сразу по всем, и проходит её больше.
Последовательно и параллельно. Резисторы можно соединить двумя способами (рисунок ниже).
- Последовательно – один за другим, как вагоны поезда. Ток на всех один, сопротивления складываются: . Три резистора по 1 кОм дают 3 кОм.
- Параллельно – рядом, как полосы на шоссе. Напряжение на всех одинаковое, а ток делится между ними. Общее сопротивление меньше самого маленького: у тока появилось несколько дорог.
Для одинаковых резисторов считать совсем просто: одинаковых резисторов параллельно дают в раз меньше одного. Три по 1 кОм – Ом, два по 1 кОм – 500 Ом, четыре по 220 Ом – 55 Ом. В Tinkercad это легко проверить мультиметром – прибором, который меряет ток, напряжение и сопротивление.
Для любопытных. Когда резисторы разные, общее сопротивление параллельного соединения ищут через дроби: . Для 300 Ом и 600 Ом: , то есть Ом. В школе эту формулу проходят в 8 классе. Для задач этой главы хватит правила про одинаковые резисторы.
Запомни. – в вольтах, амперах и омах. Резистор для светодиода: , номинал берём ближайший больший. Последовательно – сопротивления складываются, параллельно – общее меньше самого маленького ( одинаковых – в раз меньше одного).
Совет. Посчитал ток – сравни с жизнью. Светодиоду нужны единицы и десятки миллиампер. Получилось 3 А или 0,00003 мА – где-то потерялся перевод кОм в Ом или мА в А.
5.3. Датчик переводит мир в вольты
Arduino не видит свет и не чувствует тепло. Она умеет только мерить напряжение. Датчик переводит свет или тепло на её язык – в вольты.
Датчик (сенсор) – деталь, которая превращает то, что нам нужно узнать (освещённость, температуру, влажность почвы), в электрический сигнал. В теплице из курса сферы главных датчиков три.
- Фоторезистор – резистор, у которого сопротивление зависит от света. Чем светлее, тем оно меньше: в темноте сотни килоом и больше, на ярком свету – единицы килоом и меньше.
- Аналоговый термометр – маленькая микросхема с тремя ножками. Она сама выдаёт напряжение, которое растёт с температурой. В симуляторе Tinkercad это TMP36, в наборах с Arduino часто встречается LM35.
- Датчик влажности почвы – вилка из двух пластин, её втыкают в землю. Во влажной земле сигнал один, в сухой – другой.
Делитель напряжения. Сопротивление Arduino мерить не умеет, поэтому фоторезистор соединяют последовательно с обычным резистором (часто 10 кОм) и подключают к 5 В. Точку между ними ведут на аналоговый вход A0 (рисунок ниже). Так собрана схема в курсе: резистор 10 кОм – между +5 В и A0, фоторезистор – между A0 и GND. Ток через обе детали одинаковый, и 5 В делятся между ними пропорционально сопротивлениям: у кого больше сопротивление, тому больше вольт. Посчитать напряжение на входе можно в два шага:
где – сопротивление фоторезистора (нижняя деталь, между A0 и GND), – верхний резистор (между +5 В и A0). Вход A0 меряет напряжение на нижней детали. Пример: ярко, у фоторезистора 2,5 кОм. А, В. В темноте сопротивление вырастет, и на нём окажется бо́льшая часть из 5 В. В этой схеме больше света – меньше напряжение, меньше число; темнота – большое число. В симуляторе Tinkercad у курса получилось 49 на ярком свету и 969 в темноте. Поменяешь детали местами – станет наоборот.
Прибор внутри платы работает как счётчик ступенек: докуда дотянулось напряжение, такой номер он и выдаст.
Число analogRead. Внутри Arduino есть АЦП – аналого-цифровой преобразователь (переводчик из вольт в числа). Он делит промежуток от 0 до 5 В на 1024 ступеньки и сообщает номер ступеньки, на которой оказалось напряжение. Нумерация начинается с нуля, поэтому команда analogRead(A0) возвращает целое число от 0 (0 В) до 1023 (5 В). Одна ступенька – примерно В, около 5 милливольт (милливольт – тысячная доля вольта).
Переводы туда и обратно – обычная пропорция:
где – показание analogRead. Во второй формуле дробную часть отбрасывают: АЦП ничего не округляет – он сообщает номер ступеньки, до которой напряжение дотянулось. 2,5 В – это , а analogRead покажет 511. В некоторых примерах и учебниках делят не на 1023, а на 1024 – разница крошечная. На отборе делай так, как сказано в условии.
Для любопытных. Откуда взялось число 1024? Номер ступеньки АЦП записывает десятью двоичными цифрами – нулями и единицами, их называют битами. Десятью такими цифрами можно записать разных числа, от 0 до 1023.
Из вольт – в градусы. У TMP36 и у LM35 напряжение растёт на 10 мВ (0,01 В) на каждый градус. Разница в нуле: LM35 при 0 °C выдаёт 0 В, а TMP36 – уже 0,5 В. Так TMP36 может показывать мороз: при −10 °C у него 0,4 В.
где – температура в °C, – напряжение в вольтах. Пример: TMP36 выдаёт 0,75 В, °C. Одна ступенька АЦП – это 5 мВ, то есть половина градуса. Точнее Arduino такой термометр не прочитает.
Так выглядит программа для Arduino, которая читает TMP36 и печатает температуру. Всё, что после //, – пояснения для человека, плата их не читает.
void setup() {
Serial.begin(9600); // включаем связь с компьютером
}
void loop() {
int n = analogRead(A0); // число от 0 до 1023
float u = n * 5.0 / 1023; // переводим в вольты
float t = (u - 0.5) * 100; // вольты TMP36 – в градусы
Serial.println(t); // печатаем в монитор порта
delay(1000); // ждём секунду
}int – целое число, float – число с дробной частью. Обрати внимание на 5.0 с точкой (в программах дробную часть отделяют точкой). Если написать n * 5 / 1023, компьютер посчитает всё в целых числах и отбросит дробь: при получится 0 вольт вместо 0,748.
Влажность в процентах – это то, какую часть пути от «сухо» до «мокро» уже прошло показание датчика.
Датчик влажности почвы и калибровка. Для почвы готовой формулы нет: показания зависят от датчика и от земли. Поэтому датчик калибруют – записывают показания в двух известных точках. Воткнули в совсем сухую землю – , полили досыта – . Дальше влажность в процентах – это доля пути от «сухо» к «мокро»:
Пример: сухо – 180, мокро – 820, сейчас – 500. %. У многих датчиков во влажной земле число, наоборот, падает – формула работает и тогда: и числитель, и знаменатель станут отрицательными, а доля выйдет положительной. В Arduino то же делает команда map(N, 180, 820, 0, 100), только она считает в целых числах и отбрасывает дробную часть.
Запомни. Датчик превращает свет, тепло, влажность в напряжение, Arduino – напряжение в число 0…1023. ; обратно с отброшенной дробью. TMP36: . Почву калибруют по двум точкам: «сухо» и «мокро».
Совет. Держи в голове опорные точки: 0 В – 0, 2,5 В – 511, 5 В – 1023; у TMP36 0,5 В – это 0 °C, 0,75 В – 25 °C. Сверь с ними ответ, и грубая ошибка сразу вылезет.
5.4. Мощность и энергия: солнечная панель
Энергия не появляется из ниоткуда и не исчезает. Она только переходит из одного вида в другой.
Энергия – способность сделать работу: поднять воду, раскрутить вентилятор, нагреть воздух. Она переходит из вида в вид. Солнечная панель превращает свет в электрическую энергию, насос – электрическую в движение воды, лампа – в свет, обогреватель – в тепло. И почти на каждом шаге часть энергии уходит в тепло без пользы: панель на солнце горячая, мотор насоса после работы тёплый.
Мощность – сколько энергии прибор тратит (или выдаёт) за одну секунду. Измеряют в ваттах (Вт); 1 кВт = 1000 Вт. Для электрического прибора мощность равна напряжению, умноженному на ток:
Насос на 12 В, который берёт 0,5 А, работает с мощностью Вт. Светодиодная лампочка дома – около 10 Вт, электрочайник – около 2000 Вт.
Энергия за время – мощность, умноженная на время: . Если мощность в ваттах, а время в часах, энергия выйдет в ватт-часах (Вт·ч). Домашний счётчик считает киловатт-часы: 1 кВт·ч = 1000 Вт·ч. Чайник мощностью 2 кВт за полчаса тратит кВт·ч. За эти киловатт-часы семья и платит.
Аккумулятор запасает энергию. На нём пишут ёмкость в миллиампер-часах (мА·ч): сколько времени он может отдавать какой-то ток. Время работы = ёмкость : ток. Аккумулятор 2000 мА·ч при токе 250 мА продержится ч. Единицы должны совпадать: мА·ч делим на мА. Если ёмкость в А·ч, сначала переведи: 2,4 А·ч = 2400 мА·ч.
Солнечная панель. В ясный полдень на каждый квадратный метр, повёрнутый к солнцу, приходит около 1000 Вт солнечного света. Панель превращает в электричество только часть – у обычных кремниевых панелей примерно 15–20 %. Эту долю называют КПД – коэффициент полезного действия:
Панель площадью 1 м² с КПД 18 % в ясный полдень даст Вт. Утром, вечером, в облака и зимой – намного меньше. Поэтому в задачах часто говорят: «за день панель даёт столько же, сколько за 4 часа полной мощности», и энергия за сутки – это полная мощность, умноженная на эти часы. Солнечный трекер – механизм, который поворачивает панель вслед за солнцем, – нужен, чтобы полной мощности было побольше: к панели, повёрнутой боком, света приходит меньше.
Запомни. (ватты = вольты · амперы). (Вт · ч = Вт·ч). Время работы аккумулятора = ёмкость : ток. КПД – доля полезной энергии, у солнечной панели около 15–20 %.
5.5. Тепло: обогрев и теплоизоляция
Тепло всегда течёт от тёплого к холодному, как вода с горки. Горку – разницу температур – утепление не меняет. Оно сужает дорогу, по которой тепло бежит наружу.
Теплица в Новосибирской области весной и осенью борется с холодом. Тепло сквозь стенки уходит на улицу само, пока температуры внутри и снаружи не сравняются. Путей у него три.
- Теплопроводность – тепло проходит сквозь вещество. Металлическая ложка в горячем чае через минуту обжигает пальцы. Металл пропускает тепло хорошо, дерево, пенопласт и неподвижный воздух – плохо.
- Конвекция – тепло переносит движущийся воздух или вода. Тёплый воздух легче холодного и поднимается вверх, поэтому форточки в теплице делают под крышей: через них уходит самый горячий воздух.
- Излучение – тепло передаётся лучами, даже через пустоту. Так Солнце греет Землю. Солнечные лучи проходят сквозь стекло и плёнку, нагревают землю и растения, и теплица прогревается.
Теплоизоляция – всё, что мешает теплу уходить. Лучший дешёвый изолятор – неподвижный воздух. Поэтому теплицы обтягивают двумя слоями плёнки с воздушной прослойкой, а окна в домах делают с двумя-тремя стёклами. По той же причине пушистый снег укрывает озимые: между снежинками много воздуха.
Сколько тепла уходит. Чем больше разница температур внутри и снаружи, тем быстрее уходит тепло. В задачах это считают по простой модели: теплица теряет каждую секунду столько-то ватт на каждый градус разницы. Это число (назовём его ) зависит от размеров теплицы и от утепления и даётся в условии:
Пример: маленькая теплица теряет 100 Вт на градус. Внутри нужно +15 °C, снаружи −5 °C. Разница – не 10, а °C. Потери: Вт.
Обогрев. Электрический обогреватель превращает в тепло всю энергию, которую берёт из сети. Чтобы температура в теплице не падала, он должен давать столько тепла, сколько уходит наружу: мощность обогревателя не меньше мощности потерь. Энергия за ночь – та же формула . Утеплили теплицу, стал меньше – во столько же раз меньше и счёт за электричество.
Запомни. Тепло идёт от тёплого к холодному: сквозь стенки, с воздухом, лучами. Потери = · разница температур. Чтобы держать температуру, обогреватель должен покрывать потери. Мороз вычитай со знаком: между +10 °C и −10 °C двадцать градусов, а не ноль.
5.6. Разбираем задачи
Задача 5.1 Жёлтый огонёк насоса
На пульте теплицы жёлтый светодиод показывает, что насос работает. Светодиод подключён к выводу Arduino (5 В) через резистор. По паспорту светодиоду нужно 2,1 В и ток 20 мА. а) Какое сопротивление должно быть у резистора? б) В наборе есть резисторы 100 Ом, 220 Ом и 1 кОм. Какой из них взять?
Дано: В; В; мА; набор: 100 Ом, 220 Ом, 1 кОм.
Найти: – ?; номинал из набора.
Шаг 1. Напряжение на резисторе. Светодиод и резистор стоят один за другим, 5 В делятся между ними: В.
Шаг 2. Ток – в амперы. 20 мА = 20 : 1000 = 0,02 А.
Шаг 3. Закон Ома. Ом.
Шаг 4. Выбираем из набора. 145 Ом нет. Берём ближайший больший – 220 Ом. Проверим, что будет с каждым:
- 100 Ом: А = 29 мА – больше 20, светодиод перегреется;
- 220 Ом: А ≈ 13,2 мА – горит чуть тусклее, но надёжно;
- 1 кОм: А = 2,9 мА – светится еле-еле, на пульте днём не разглядишь.
Типичная ошибка. Подставить в формулу все 5 В: Ом. Так считают, будто светодиода в цепи нет. А если оставить ток в миллиамперах, выйдет Ом – резистор, который почти ничего не ограничивает. Ещё одна ловушка – округлить 145 до 100 «по-честному, к ближайшему». Ближайший здесь не годится, нужен больший.
Ответ: а) 145 Ом; б) 220 Ом.
Своя задача по программе сферы, модуль 1
Реши сам
5.1. К батарейному отсеку на 6 В подключили резистор. Мультиметр показал ток 12 мА. Какое сопротивление у резистора? Ответ в омах.
ответ5.2. Красный светодиод (2 В) включили в 5 В через резистор 220 Ом. Какой ток идёт через светодиод? А какой пойдёт, если по ошибке поставить резистор 22 Ом? Ответы в миллиамперах, округли до десятых. Выдержит ли светодиод, если ему можно не больше 20 мА?
ответЗадача 5.2 Резисторы из одной коробки
Для опыта нужен резистор 1,5 кОм, а в коробке только резисторы по 1 кОм. Их соединили так, как на рисунке: резистор R1, а за ним – пара R2 и R3, соединённых параллельно. Всё подключили к 5 В. а) Какое сопротивление у всей схемы? Ответ в килоомах. б) Какой ток идёт через R1? Ответ в миллиамперах, округли до десятых.
Дано: кОм = 1000 Ом; В.
Найти: – ?; – ?
Шаг 1. Начинаем с параллельной пары. Два одинаковых резистора параллельно дают вдвое меньше одного: Ом. У тока две дороги, поэтому пара пропускает его легче, чем один резистор.
Шаг 2. Пара стоит последовательно с R1. Сопротивления складываются: Ом = 1,5 кОм. Нужный номинал собран.
Шаг 3. Ток. Весь ток проходит через R1, значит, это ток всей схемы: А ≈ 3,3 мА.
Дальше он делится: через R2 и через R3 идёт по половине, около 1,7 мА. А напряжение на R1 – В, на паре – остальные 1,7 В. В сумме снова 5 В.
Типичная ошибка. Сложить все три резистора: 3 кОм. Сложение годится только для деталей, стоящих одна за другой, а R2 и R3 стоят рядом. Вторая ловушка – посчитать ток через R2 по полному напряжению: мА. На паре только часть напряжения, 1,7 В, остальное забрал R1.
Ответ: а) 1,5 кОм; б) 3,3 мА.
Своя задача по программе сферы, модуль 1
Реши сам
5.3. Есть четыре резистора по 220 Ом. Какое сопротивление получится, если соединить их все последовательно? А если все параллельно? Ответы в омах.
ответ5.4. Резисторы 300 Ом и 200 Ом соединили последовательно и подключили к 5 В. Какой ток идёт по цепи (в мА)? Какое напряжение на каждом резисторе?
ответЗадача 5.3 Что показывает термометр
В теплице стоит термометр TMP36, подключённый к входу A0 платы Arduino. Программа прочитала analogRead(A0) и получила 164. а) Какая температура в теплице? Округли до десятых. б) Обогреватель должен включаться при 18 °C. Какое число покажет analogRead, когда в теплице 18 °C? Для перевода используй и .
Дано: ; °C; TMP36: .
Найти: – ?; – ?
Шаг 1. Число – в вольты. В.
Шаг 2. Вольты – в градусы. °C. Жарковато – пора открывать форточку.
Шаг 3. Обратный путь: градусы – в вольты. Из : сначала делим на 100, потом прибавляем 0,5. В.
Шаг 4. Вольты – в число. . АЦП отбрасывает дробную часть: 139.
Прикидка по опорным точкам. 25 °C – это 0,75 В и число 153. 30 °C теплее – число должно быть больше 153, и 164 подходит. 18 °C холоднее 25 – и 139 меньше 153. Каждый градус – около двух ступенек АЦП: от 18 до 25 °C семь градусов, ступенек.
Типичная ошибка. Забыть вычесть 0,5: °C – в теплице такого не бывает, это формула LM35, а не TMP36. На обратном пути путают порядок: В. Проверь себя подстановкой: даёт минус 31,5 °C, а должно быть 18.
Ответ: а) 30,2 °C; б) 139.
Своя задача по программе сферы, модуль 6
Реши сам
5.5. Мартовская ночь, теплица ещё не отапливается. Программа с термометром TMP36 прочитала analogRead(A0) = 82. Какая температура в теплице? Округли до десятых.
5.6. Датчик влажности почвы откалибровали: в сухой земле он показал 870, в только что политой – 390. Сейчас он показывает 600. Какая влажность почвы в процентах? Дробную часть отбрось, как делает команда map.
Задача 5.4* *. Когда включать досветку
Фоторезистор и резистор 10 кОм собраны в делитель, как на рисунке в разделе 5.3: резистор 10 кОм – между +5 В и входом A0, фоторезистор – между A0 и GND (так собрана схема в курсе). По паспорту у фоторезистора такое сопротивление:
| Освещённость | 100 лк | 1000 лк | 5000 лк |
|---|---|---|---|
| Сопротивление фоторезистора | 40 кОм | 8 кОм | 2,5 кОм |
Лампы досветки должны гореть, когда света меньше 1000 лк. а) Какое число покажет analogRead(A0) при 1000 лк? Дробную часть отбрось. б) Какое условие включения ламп верное: 1) analogRead(A0) < порог; 2) analogRead(A0) > порог? В ответ – номер условия.
Дано: В; кОм; при 1000 лк кОм; таблица сопротивлений.
Найти: при 1000 лк; номер условия.
Шаг 1. Ток через делитель при 1000 лк. Фоторезистор и резистор стоят последовательно, сопротивления складываются: кОм = 18 000 Ом. А.
Шаг 2. Напряжение на входе A0. Вход подключён к верхнему концу нижней детали, значит, на нём напряжение фоторезистора: В. Можно и пропорцией: фоторезистору достаётся от 5 В – те же 2,222 В.
Шаг 3. Напряжение – в число. . Отбрасываем дробь: 454. Это и есть порог.
Шаг 4. В какую сторону сравнивать. Посчитаем число при 100 лк, когда темнее: кОм, В, , то есть 818. При 5000 лк: В, , то есть 204. Темнее – больше число. Лампы нужны, когда темно, то есть когда число больше 454. Верно условие 2.
Проверка на здравый смысл: полутень в 1000 лк дала почти середину шкалы (454 из 1023) – датчик работает в удобной части, и порог не прилип к краю.
Типичная ошибка. Сосчитать напряжение на верхнем резисторе, а не на фоторезисторе: В и число 568. Вход A0 меряет напряжение между собой и GND – это напряжение нижней детали, фоторезистора. Вторая ошибка – перепутать направление: в этой схеме число растёт к темноте, а в схеме с деталями наоборот (задача 5.8*) – падает. Направление проверяй расчётом во второй точке, как в шаге 4.
Ответ: а) 454; б) 2.
Своя задача по программе сферы, модуль 6
Реши сам
5.7. Делитель тот же, что в задаче 5.4. В пасмурный день у фоторезистора 25 кОм. Какое число покажет analogRead(A0)? Дробную часть отбрось.
5.8*.* Делитель из задачи 5.4 собрали наоборот: фоторезистор – между +5 В и A0, резистор 10 кОм – между A0 и GND. Какое число покажет analogRead(A0) при 1000 лк? Какое условие включения ламп досветки (света меньше 1000 лк) теперь верное: 1) analogRead(A0) < порог или 2) analogRead(A0) > порог?
Задача 5.5 Хватит ли солнца метеостанции
Метеостанцию на краю поля питает солнечная панель размером 20 × 30 см с КПД 16 %. В ясный полдень на 1 м² приходит 1000 Вт солнечного света. В сентябре за день панель вырабатывает столько же, сколько за 4 часа работы на полной мощности. Метеостанция (плата, датчики, дисплей) круглые сутки берёт от аккумулятора 0,25 А при 5 В. а) Какую мощность даёт панель в ясный полдень? Ответ в ваттах. б) Хватит ли выработанной за день энергии на сутки работы? Сколько ватт-часов останется в запасе или не хватит? Потерями в аккумуляторе пренебреги.
Дано: панель м; КПД 16 %; 1000 Вт/м²; 4 ч полной мощности; В; А; 24 ч.
Найти: – ?; запас энергии за сутки – ?
Шаг 1. Площадь – в квадратные метры. 20 см = 0,2 м, 30 см = 0,3 м. м².
Шаг 2. Сколько света падает на панель. Вт.
Шаг 3. Сколько из этого станет электричеством. 16 % – это 0,16: Вт. Остальные 50,4 Вт нагревают саму панель.
Шаг 4. Энергия за день. Вт·ч.
Шаг 5. Сколько нужно метеостанции. Мощность Вт. За сутки Вт·ч.
Шаг 6. Сравниваем. Вт·ч – хватает, и немного остаётся. Запас около четверти от нужного: в облачный сентябрьский день его может и не хватить.
Типичная ошибка. Подставить площадь в квадратных сантиметрах: , и получить панель мощностью 96 000 Вт – больше, чем у целого дома. Вторая ошибка – забыть, что метеостанция работает 24 часа, а панель – только днём, и сравнить 38,4 Вт·ч с 1,25 Вт. Ватт-часы с ваттами не сравнивают.
Ответ: а) 9,6 Вт; б) хватит, запас 8,4 Вт·ч.
Своя задача по программе сферы, модуль 8
Реши сам
5.9. Солнечная панель выдаёт 18 В и 0,5 А. Какая у неё мощность? Сколько энергии она выработает за 6 часов такой работы? Ответы в Вт и Вт·ч.
ответ5.10. Ночью метеостанция берёт от аккумулятора 180 мА. На аккумуляторе написано 2,4 А·ч. Сколько часов он продержится? Округли до десятых. Хватит ли его на зимнюю ночь длиной 16 часов?
ответЗадача 5.6 Блок питания для насоса
Для полива сити-фермы на крыше купили насос. На корпусе написано: «12 В, 0,8 А». В магазине есть четыре блока питания:
| Блок | 1 | 2 | 3 | 4 |
|---|---|---|---|---|
| Напряжение | 5 В | 12 В | 12 В | 24 В |
| Наибольший ток | 2 А | 0,5 А | 1,5 А | 1 А |
а) Какой блок подходит? В ответ – его номер. б) Насос включается 4 раза в сутки по 15 минут. Сколько энергии он потратит за 30 дней? Ответ в кВт·ч.
Дано: насос 12 В, 0,8 А; 4 включения по 15 мин в сутки; 30 дней.
Найти: номер блока; – ?
Шаг 1. Напряжение должно совпадать. Насосу нужно 12 В. Блок 1 даст 5 В – насос не закрутится. Блок 4 даст 24 В – вдвое больше, мотор перегреется и сгорит. Остаются блоки 2 и 3.
Шаг 2. Ток – не меньше нужного. На блоке пишут, какой наибольший ток он может отдать. Насос возьмёт 0,8 А. Блок 2 даёт не больше 0,5 А – он перегреется или отключится. Блок 3 выдерживает 1,5 А, это больше 0,8 А. Лишний запас по току не страшен: насос возьмёт столько, сколько ему нужно, не больше.
Шаг 3. Мощность насоса. Вт.
Шаг 4. Время работы. За сутки мин = 1 ч. За 30 дней – 30 ч.
Шаг 5. Энергия. Вт·ч. В киловатт-часах: кВт·ч.
Много это или мало? Чайник на 2 кВт тратит столько же примерно за 9 минут. Автоматический полив на крыше стоит копейки.
Типичная ошибка. Выбрать блок 4, «потому что он мощнее», или блок 2, «потому что у него 12 В». Подходит только блок, у которого совпадает напряжение и хватает тока. В расчёте энергии легко забыть перевести минуты в часы: – это не ватт-часы, а «ватт-минуты».
Ответ: а) 3; б) 0,288 кВт·ч.
По мотивам задачи образовательного курса НТО Junior 2023/24, сфера «Технологии и среда обитания», «Насос для зелёного оазиса»
Реши сам
5.11. Вентилятор теплицы на 12 В берёт ток 0,25 А и в июле работает по 6 часов в сутки. Сколько киловатт-часов он потратит за июль?
ответ5.12. От одного блока питания решили питать сразу насос (12 В, 0,8 А) и вентилятор (12 В, 0,25 А), включённые параллельно. Блоки: 1) 12 В, 1 А; 2) 5 В, 3 А; 3) 12 В, 1,5 А; 4) 12 В, 2 А; 5) 9 В, 2 А. Какие подходят? Ответ – номера по возрастанию без пробелов.
ответЗадача 5.7* *. Зимняя ночь в теплице
Маленькая теплица из одного слоя плёнки теряет 120 Вт на каждый градус разницы температур внутри и снаружи. Ночью на улице −14 °C, а внутри нужно держать +16 °C. Ночь длится 14 часов. Греют теплицу электрическими обогревателями по 1,5 кВт. а) Сколько обогревателей нужно, чтобы удержать +16 °C? б) Теплицу обтянули вторым слоем плёнки, и потери тепла уменьшились на 40 %. Сколько киловатт-часов за ночь это сэкономит? Округли до десятых.
Дано: Вт/°C; °C; °C; 14 ч; обогреватель 1,5 кВт; второй слой: потери меньше на 40 %.
Найти: число обогревателей; экономия за ночь – ?
Шаг 1. Разница температур. °C.
Шаг 2. Потери с одним слоем. Вт = 3,6 кВт. Столько тепла каждую секунду уходит на улицу, и столько же должны давать обогреватели.
Шаг 3. Сколько обогревателей. . Два дадут только 3 кВт – мало, теплица остынет. Округляем вверх: 3 обогревателя (термостат будет их иногда выключать).
Шаг 4. Энергия за ночь с одним слоем. кВт·ч.
Шаг 5. Потери с двумя слоями. Минус 40 % – значит, остаётся 60 %: Вт/°C, Вт = 2,16 кВт. Хватит и двух обогревателей.
Шаг 6. Экономия. кВт·ч. Разница кВт·ч. Быстрее: сэкономили 40 % от 50,4 кВт·ч, а это – то же самое.
Для сравнения: 20 кВт·ч – это почти столько, сколько квартира тратит за три-четыре дня. За одну ночь. Второй слой плёнки окупается очень быстро.
Типичная ошибка. Посчитать разницу как °C и получить потери 240 Вт – «хватит и настольной лампы». Мороз вычитаем со знаком: минус на минус даёт плюс. Вторая ошибка – округлить 2,4 обогревателя до 2 «по правилам округления». Тут нужно, чтобы тепла хватило, поэтому только вверх. Третья – умножить потери на 0,4 вместо 0,6 и найти, сколько тепла уходит после утепления, а не сколько сэкономили.
Ответ: а) 3 обогревателя; б) 20,2 кВт·ч.
Своя задача по программе сферы, модуль 2
Реши сам
5.13. Теплица теряет 80 Вт на каждый градус разницы температур. Внутри нужно +20 °C, на улице −5 °C. Какой мощности нужен обогрев? Сколько киловатт-часов уйдёт за ночь длиной 10 часов?
ответ5.14*.* В теплице стоит один обогреватель на 2 кВт, других нет. Теплица теряет 100 Вт на градус разницы температур. На улице −25 °C – морозная январская ночь под Новосибирском. Какую самую высокую температуру обогреватель удержит внутри? А если утеплить теплицу так, что потери уменьшатся на 30 %? Округли до десятых.
ответПрограммирование умной теплицы

Умная теплица сама поливает грядку и открывает форточку, но думает за неё человек: он пишет программу, а плата Arduino её выполняет. В этой главе мы научимся читать такие программы и писать свои – от записки «как поливать цветы» до машины состояний, которая командует насосом. Задача с кодом выглядит так: дан короткий скетч и несколько показаний датчика, а спрашивают, что сделает устройство, где в программе ошибка или в каком порядке стоят перепутанные строки. В ответ вводят число, строку из цифр или из букв.
6.1. Алгоритм и исполнитель
Сосед сделает всё в точности так, как написано в записке. Забудешь написать «закрой кран» – вода так и будет литься.
Летом ты уезжаешь на две недели в лагерь и просишь соседа поливать твой кактус и помидоры на подоконнике. Если сказать «ну, поливай, когда надо», сосед зальёт кактус или засушит помидоры. Надёжнее оставить записку, где всё расписано по шагам: что проверить, что сделать, когда повторить. Такая записка и есть алгоритм – список точных шагов, который приводит к нужному результату.
Тот, кто выполняет алгоритм, называется исполнителем. Исполнитель знает только свой набор команд – систему команд. Сосед понимает «потрогай землю» и «вылей кружку». Плата Arduino понимает «измерь напряжение на входе A0» и «подай 5 вольт на вывод 7». Разница в том, что сосед может догадаться, чего ты хотел, а плата – никогда. Она выполняет каждое слово буквально и не задаёт вопросов. Поэтому программы для неё пишут без «ну, как-нибудь».
Любой алгоритм собирают из трёх видов «кирпичиков».
- Следование – шаги идут один за другим: измерить, потом сравнить, потом включить.
- Ветвление – развилка «если… то… иначе…»: если земля сухая – полить, иначе ничего не делать.
- Цикл – повторение: «повтори 5 раз» или «повторяй, пока бак не наполнится».
Алгоритм удобно рисовать блок-схемой. Прямоугольник на ней – действие, ромб – вопрос с ответами «да» и «нет», стрелки показывают, куда идти дальше. Так выглядит алгоритм автополива, который мы потом превратим в настоящую программу:
В задачах на алгоритмы часто придумывают простого исполнителя. Пусть у нас будет Робот-поливальщик. Он ездит вдоль ряда горшков и знает три команды:
- «вперёд» – проехать к следующему горшку;
- «полить» – налить в горшок, у которого стоит, одну порцию воды (сколько миллилитров – скажут в условии);
- «если земля сухая – …» – проверить землю в горшке, у которого стоит, и выполнить команду, только если земля сухая.
А ещё он умеет повторять: «повтори 3 раза: полить, вперёд». Команды внутри повторения выполняются по порядку, потом всё сначала, и так три раза. Прежде чем отвечать, что сделает робот, пройди программу пальцем, команду за командой, и записывай, у какого горшка он стоит. Угадывать тут бесполезно.
Запомни. Алгоритм – точные шаги, исполнитель – тот, кто их выполняет без догадок. Из трёх кирпичиков (следование, ветвление, цикл) собирается любая программа. Что сделает исполнитель, узнают только одним способом: проходят алгоритм шаг за шагом.
6.2. Переменные, условия, циклы
Имя у коробки одно, а содержимое можно менять сколько угодно раз.
Дальше – язык C++, на котором пишут программы для Arduino. Если ты никогда не программировал, читай код медленно, по строчке: рядом с каждой стоит пояснение. После двух косых черт // идёт комментарий – это пометка для людей, плата его пропускает.
Переменные
Переменная – ячейка памяти с именем. В неё кладут число и потом берут его оттуда. Перед первым использованием переменную объявляют: пишут её тип и имя.
int count = 0; // сколько раз поливали – целое число
float t = 23.5; // температура – дробное число, пишется через точку
bool pumpOn = false; // включён ли насос: да (true) или нет (false)
count = count + 1; // было 0, стало 1
t = 27; // старое значение 23.5 стёрто, теперь там 27Тип говорит, что лежит в коробке: int – целое число, float – дробное, bool – «да» или «нет». Каждая команда заканчивается точкой с запятой.
Знак = в программе означает «положи в коробку». Это команда, а вовсе не равенство из математики. Запись count = count + 1 на уроке математики была бы бессмыслицей, а здесь она понятна: возьми, что лежит в count, прибавь 1 и положи обратно. Так программы считают: сколько раз поливали, сколько минут работал насос.
Одна ловушка про деление. Если делятся два целых числа, дробная часть отбрасывается:
int a = 7 / 2; // 3 – дробную часть выбросили
float b = 7 / 2; // тоже 3! делили целые числа, а потом положили в дробную коробку
float c = 7.0 / 2; // 3.5 – одно из чисел дробное, и деление честноеКоварнее всех строка с b: коробка дробная, но в неё кладут уже готовую тройку, и половинке взяться неоткуда. Если в формуле нужна дробь, пиши хотя бы одно число с точкой: 5.0, а не 5.
Условия
Условие – это ветвление из блок-схемы, записанное на C++:
if (t >= 28) {
digitalWrite(FAN, HIGH); // жарко – включить вентилятор
} else {
digitalWrite(FAN, LOW); // иначе – выключить
}if значит «если», else – «иначе». В круглых скобках – вопрос, на который бывает только два ответа: «верно» или «неверно». Если верно, выполняются команды в первых фигурных скобках, если нет – во вторых. Ветки else может и не быть: тогда при неверном условии программа просто идёт дальше.
Сравнивают такими знаками: < меньше, > больше, <= меньше или равно, >= больше или равно, == равно, != не равно. Обрати внимание на ==: сравнение пишется двумя знаками «равно». Один знак = – это «положи в коробку», и если перепутать, программа сломается молча (что тогда случится – в «Реши сам» 6.7).
Когда вариантов больше двух, пишут цепочку if … else if … else. Проверки идут сверху вниз, и срабатывает только первая верная ветка – остальные даже не проверяются. Поэтому порядок строк в цепочке важен: во второй ветке уже известно, что первое условие оказалось неверным.
Два условия склеивают связками: && – «и» (нужно, чтобы были верны оба), || – «или» (хватит одного). Например, t >= 28 && door == LOW – жарко и дверь закрыта.
Циклы
При 9 литрах ответ «да», и ведро выливают целиком: в бочке 12 литров вместо десяти.
Цикл повторяет команды. Цикл for нужен, когда известно, сколько раз повторить:
for (int i = 1; i <= 3; i++) { // i = 1, 2, 3 – три круга
digitalWrite(LED, HIGH);
delay(200);
digitalWrite(LED, LOW);
delay(200);
}В скобках три части через точку с запятой: с чего начать (i = 1), до каких пор крутиться (i <= 3) и что делать после каждого круга (i++ – прибавить к i единицу). Светодиод мигнёт три раза, на это уйдёт мс.
Цикл while («пока») крутится, пока условие верно. Сколько будет кругов, заранее может быть неизвестно:
int litres = 0;
while (litres < 10) { // пока в бочке меньше 10 литров
litres = litres + 3; // принести ещё одно ведро на 3 литра
}Чтобы узнать, чем это кончится, заведём таблицу трассировки: столбец на каждую переменную, строка на каждый шаг.
| Круг | litres до круга |
litres < 10? |
litres после круга |
|---|---|---|---|
| 1 | 0 | да | 3 |
| 2 | 3 | да | 6 |
| 3 | 6 | да | 9 |
| 4 | 9 | да | 12 |
| выход | 12 | нет | 12 |
Вёдер понадобилось четыре, а в бочке 12 литров – больше десяти. Будь бочка на 10 литров, два литра оказались бы на земле. В задачах про насосы и баки эта «лишняя порция» встречается постоянно, так что считай круги по таблице.
Запомни. = кладёт значение в переменную, == сравнивает. Целое, делённое на целое, теряет дробную часть. В цепочке if … else if срабатывает только первая верная ветка. Что делает цикл, проверяй таблицей трассировки, а не в уме.
Совет. Таблицу трассировки рисуй на черновике даже для коротких программ. На отборе на задачу даётся несколько попыток ввода, и каждая неверная снимает часть балла. Две минуты на табличку обходятся дешевле.
6.3. Скетч: датчик, порог, действие
Так работает сторож в теплице: обошёл, посмотрел на градусник, решил, открыть ли дверь, – и пошёл на следующий обход.
Программа для Arduino называется скетч. В ней всегда две обязательные части.
setup()– «настройка». Выполняется один раз, сразу после включения питания. Здесь говорят плате, какой вывод будет выходом, и включают связь с компьютером.loop()– «петля». Выполняется снова и снова, без конца. Здесь живёт вся работа: измерить, сравнить, включить или выключить.
Вот основные команды. Их немного, и все они встретятся в задачах главы.
| Команда | Что делает |
|---|---|
pinMode(7, OUTPUT); |
сделать вывод 7 выходом |
analogRead(A0) |
измерить напряжение на входе A0, получить число 0…1023 |
digitalWrite(7, HIGH); |
подать на вывод 7 напряжение 5 В; LOW – снять |
analogWrite(9, 100); |
включить вывод 9 «вполсилы»: 0 – выключен, 255 – полная сила |
delay(5000); |
ждать 5000 мс, то есть 5 секунд |
millis() |
сколько миллисекунд прошло с включения платы |
Serial.println(x); |
показать значение x в мониторе порта |
Откуда берётся число от 0 до 1023 и как перевести его в градусы, рассказано в главе 5. Здесь нам хватит одного: датчик выдаёт число, и с ним можно сравнивать.
Соберём настоящую автоматику – полив по датчику влажности почвы. Датчик подключён ко входу A0, насос – к выводу 7. Насосу нужен ток побольше, чем может дать вывод платы, поэтому между ними стоит реле – выключатель, который щёлкает от слабого сигнала Arduino и включает мощную цепь насоса. Для программы это неважно: HIGH – насос качает, LOW – стоит.
У датчика в нашей теплице чем суше земля, тем меньше число. Бывают датчики, устроенные наоборот, поэтому в каждой задаче смотри, что сказано в условии. Землю считаем сухой, если число меньше 400.
const int SOIL = A0; // датчик влажности почвы – на входе A0
const int PUMP = 7; // насос через реле – на выводе 7
void setup() {
pinMode(PUMP, OUTPUT);
Serial.begin(9600);
}
void loop() {
int soil = analogRead(SOIL); // число от 0 до 1023
Serial.println(soil);
if (soil < 400) { // сухо?
digitalWrite(PUMP, HIGH); // включить насос
delay(5000); // поливать 5 секунд
digitalWrite(PUMP, LOW); // выключить насос
}
delay(60000); // следующая проверка через минуту
}Разберём по строкам. const int SOIL = A0; – константа: коробка, содержимое которой менять нельзя. Имя удобнее номера: читать analogRead(SOIL) проще, чем analogRead(A0), а если перепаяешь датчик на другой вход, исправишь одну строку. В setup() делаем вывод насоса выходом и включаем монитор порта. В loop() измеряем почву, выводим число на экран, и если оно меньше 400 – включаем насос, ждём 5 с и выключаем. Потом минуту ждём, и круг начинается снова.
Посмотри на блок-схему из раздела 6.1 – это она, только на C++. Подставь по очереди показания 452, 418, 400, 391: насос включится один раз, на четвёртой проверке, и проработает 5 с. На 400 он промолчит: знак в условии строгий, а 400 не меньше 400.
Полив на время. В главе 4 мы считали, сколько держать насос включённым: 3 л насосом на 2 л/мин – это 1,5 мин, или 90 с. В программе время пишут в миллисекундах, поэтому в delay пойдёт . Цепочка всегда одна: литры делим на производительность, получаем минуты или секунды, переводим в миллисекунды.
Пока идёт delay, плата спит. Она не смотрит на датчики, не видит кнопок и не может выключить насос раньше. В нашем скетче это почти не мешает: насос работает 5 с, а потом плата честно ждёт минуту. Но учти: круг loop() длится минуту плюс время полива, и в круге с поливом выходит 65 с. В задаче 6.3 это пригодится. А как обойтись без долгого сна, покажем в разделе 6.5.
Запомни. setup() – один раз, loop() – по кругу. Схема любой автоматики: измерить (analogRead), сравнить с порогом (if), включить или выключить (digitalWrite). Время в delay – в миллисекундах: секунды умножь на 1000.
Совет. Любую программу из этой главы можно собрать в онлайн-симуляторе: в Tinkercad (вход по ссылке на класс из курса) или в Wokwi (wokwi.com). Датчик влажности или термометр там крутят ползунком прямо во время работы, а в мониторе порта видно каждое число. Запущенная программа учит больше, чем три прочитанные.
6.4. Два порога в программе
Как в классе с окном: открывают, когда стало душно, а закрывают, когда уже прохладно, – а не каждый раз, когда кто-то чихнул.
В разделе 2.6 мы уже выяснили, зачем нужны два порога (гистерезис): с одним порогом форточка или вентилятор около границы «хлопают» каждую минуту. Теперь посмотрим, как это записать в программе.
Первая попытка – условие с else:
if (t >= 28) {
digitalWrite(FAN, HIGH);
} else {
digitalWrite(FAN, LOW);
}Это один порог. Температура 28,1 – вентилятор работает, 27,9 – стоит, 28,1 – снова работает. Датчик всегда немного дрожит, и реле будет щёлкать без остановки.
С двумя порогами программе нужна память. При 26 градусах вентилятор может работать (если недавно было жарко и ещё не остыло), а может стоять (если жарко пока не было). Одним показанием датчика этого не решить, нужно помнить, что было раньше. Для памяти заводим переменную bool:
const int FAN = 9; // вентилятор через реле – на выводе 9
bool fanOn = false; // память: включён ли вентилятор сейчас
void setup() {
pinMode(FAN, OUTPUT);
}
void loop() {
float t = readT(); // температура, °C
if (t >= 28) {
fanOn = true; // жарко – включаем
}
if (t <= 24) {
fanOn = false; // остыло – выключаем
}
// от 24 до 28 ни одно условие не сработало – fanOn остаётся прежним
if (fanOn) {
digitalWrite(FAN, HIGH);
} else {
digitalWrite(FAN, LOW);
}
delay(1000);
}Здесь readT() – функция, которая читает термометр и возвращает градусы (как её написать, рассказано в главе 5 и в справочнике). Посмотри на два отдельных if без else. Если температура между порогами, не срабатывает ни один, и fanOn хранит то, что в нём было. В этом и весь фокус двух порогов.
Прогоним программу по показаниям 25; 27; 28,2; 27,5; 26; 24,5; 24; 25; 27,9. Вентилятор включился на 28,2, работал при 27,5, 26 и 24,5, выключился на 24 и больше не включался – даже при 27,9, потому что до 28 не дотянуло.
На чём спотыкаются? Пишут второй if через else: if (t >= 28) fanOn = true; else fanOn = false;. Выглядит почти так же, но это снова один порог – память затирается на каждом круге. А вот else if (t <= 24) вместо второго if – можно: оба условия сразу верными быть не могут, и между порогами опять не сработает ни одно.
Запомни. Два порога = переменная-память + два условия: «выше верхнего – включить», «ниже нижнего – выключить». Если ни одно не сработало, память не трогаем. Голый else превращает два порога обратно в один.
6.5. Машина состояний теплицы
Форточка в каждый момент либо закрыта, либо открыта. Переключает её температура.
Посмотри на программу с двумя порогами из прошлого раздела иначе. У вентилятора два состояния – «стоит» и «работает». Из одного в другое он переходит, когда случается что-то определённое. Так можно описать почти любое устройство, и у инженеров для этого есть готовый способ – машина состояний (её ещё называют конечным автоматом). Она состоит из пяти деталей.
- Состояние – режим работы устройства: «ждём», «поливаем», «форточка открыта». В каждый момент устройство находится только в одном состоянии.
- Событие – то, что случилось и требует реакции: пришло новое показание, прошло 10 секунд, нажали кнопку.
- Условие – проверка, без которой переход не сработает: «почва суше порога», «температура не ниже 28».
- Действие – что устройство делает: включить насос, повернуть форточку.
- Переход – смена состояния, на схеме это стрелка.
Подпись на стрелке читают так: событие [условие] / действие. «Новое показание [t ≥ 28] / открыть форточку» значит: пришло показание, температура не ниже 28 – открываем форточку и переходим в состояние «открыта». Если условие неверно, стрелка не срабатывает, и устройство остаётся, где было.
Теперь полезная машина. Воду в сухую землю лучше лить порциями: налил – подождал, пока впитается, – проверил снова. Если лить без перерыва, вода успевает стечь по краям горшка мимо корней, а датчик, воткнутый в одном месте, узнает об этом поздно. Получается три состояния:
Программа по этой схеме хранит номер текущего состояния в переменной state и время входа в него – в переменной start. Функция loop() крутится очень быстро и на каждом круге спрашивает одно: «не пора ли переходить?»
const int SOIL = A0; // датчик влажности почвы
const int PUMP = 7; // насос через реле
int state = 0; // 0 – ждём, 1 – поливаем, 2 – вода впитывается
unsigned long start = 0; // когда вошли в текущее состояние, мс
void go(int newState) { // переход в новое состояние
state = newState;
start = millis();
if (state == 1) {
digitalWrite(PUMP, HIGH); // входим в «поливаем» – включить насос
} else {
digitalWrite(PUMP, LOW); // в остальных состояниях насос стоит
}
}
void setup() {
pinMode(PUMP, OUTPUT);
go(0); // начинаем с «ждём»
}
void loop() {
unsigned long t = millis() - start; // сколько мс длится текущее состояние
int soil = analogRead(SOIL);
if (state == 0 && soil < 400) {
go(1);
} else if (state == 1 && t >= 10000) {
go(2);
} else if (state == 2 && t >= 60000) {
go(0);
}
delay(10);
}Что здесь нового. void go(int newState) – функция, своя команда из нескольких строк: мы один раз объяснили плате, что значит «перейти в состояние», и дальше пишем просто go(1). Включение насоса внутри go – это действие на входе в состояние: оно выполняется один раз, когда в состояние попали. unsigned long – тип для очень больших целых чисел: на Arduino Uno в обычный int помещается число не больше 32 767. Для millis() это всего 33 секунды работы платы, дальше счёт сломается. В unsigned long влезает больше четырёх миллиардов – это почти 50 суток. А разность millis() - start – это «сколько я уже в этом состоянии». Каждая строка loop() читается прямо по схеме: «если ждём и почва суше 400 – переходим в состояние 1».
Главное отличие от скетча из раздела 6.3 – здесь нет долгого delay. Плата не спит 60 секунд, пока вода впитывается, а сто раз в секунду проверяет: не пора ли? Значит, в тот же loop() можно дописать ещё одну машину – например, форточку, – и обе будут работать одновременно. Со скетчем на delay(60000) так не получится: форточка ждала бы, пока досыпает полив. В совсем сухой земле машина работает так: 10 с полива, минута тишины, снова 10 с – и так, пока датчик не покажет 400 или больше. Пусть после порции земля ещё сухая – насос всё равно минуту подождёт, пока вода впитается.
ПРИМС и Кибериада IDE. В курсе сферы машины состояний рисуют на визуальном языке ПРИМС (программирование расширенных иерархических машин состояний) в редакторе Кибериада IDE. Программу там рисуют: прямоугольники-состояния и стрелки-переходы с подписями, как на наших схемах. По такому рисунку редактор умеет сам сделать код на C++. Логика та же, что в нашей программе: состояния, события, условия, действия. Поэтому, если ты понял схему на рисунке выше, в Кибериаде тебе останется освоить только, какой кнопкой что рисуется – а это покажут на курсе.
Проверь каждую схему на две беды. Тупик – состояние, из которого не выходит ни одна стрелка: попав туда, устройство «зависнет» навсегда. Исключение – конечное состояние: в курсе его рисуют как кружок в кружке, и оно нарочно завершает работу машины. Тупик, который не отмечен как конечное состояние, – ошибка. Недостижимое состояние – в него не ведёт ни одна стрелка, и оно никогда не включится. И ещё: машина делает один переход за раз. Если форточка закрыта, а температура сразу подскочила до 35, она не прыгнет через все ступеньки: сначала сработает первая подходящая стрелка, а следующая – на следующем замере.
Как проследить работу машины на бумаге: таблица «замер – состояние до – какое условие верно – состояние после – действие». Заполняй строку за строкой, как трассировку в разделе 6.2.
Запомни. Машина состояний = состояния + переходы «событие [условие] / действие». Номер состояния хранят в одной переменной, переходы проверяет цепочка if … else if. Вместо долгого delay – вопрос «сколько я уже в этом состоянии?»: millis() - start. За один замер – один переход. Из каждого состояния, кроме конечного, должна выходить хотя бы одна стрелка. Две стрелки с одним событием из одного состояния допустимы, только если условия у них не пересекаются.
6.6. Разбираем задачи
Задача 6.1 Робот-поливальщик
Вдоль стеллажа стоят в ряд 14 горшков с рассадой, они пронумерованы от 1 до 14. Робот-поливальщик стоит у горшка 1. Команда «вперёд» перевозит его к следующему горшку, команда «полить» наливает 100 мл в горшок, у которого он стоит. Робот выполняет программу:
повтори 4 раза:
полить
вперёд
вперёд
вперёд
а) Какие горшки будут политы? Ответ – номера по возрастанию. б) Сколько миллилитров воды уйдёт? в) У какого горшка робот окажется в конце?
Дано: 14 горшков, старт у горшка 1; в повторении: 1 раз «полить» (100 мл) и 3 раза «вперёд»; 4 повторения.
Найти: номера политых горшков; расход воды; где остановится робот.
Шаг 1. Что делает один круг. Робот поливает горшок, у которого стоит, и уезжает на три горшка вперёд. Значит, каждый следующий полив – через три номера от предыдущего.
Шаг 2. Проходим все четыре круга. Записываем, где стоит робот перед каждым «полить»:
| Круг | Робот стоит у горшка | Полил | После трёх «вперёд» |
|---|---|---|---|
| 1 | 1 | горшок 1 | у горшка 4 |
| 2 | 4 | горшок 4 | у горшка 7 |
| 3 | 7 | горшок 7 | у горшка 10 |
| 4 | 10 | горшок 10 | у горшка 13 |
Шаг 3. Вода. Полито 4 горшка по 100 мл: мл.
Шаг 4. Где робот. После четвёртого круга команд больше нет. Три «вперёд» робот уже сделал, он стоит у горшка 13 и поливать его не будет.
Проверим по-другому: всего команд «вперёд» , и робот начал у горшка 1, значит, закончит у горшка . До края стеллажа ещё один горшок в запасе – робот не свалится.
Типичная ошибка. Посчитать 12 шагов «вперёд» и ответить «у горшка 12», забыв, что робот стартовал с первого, а не с нулевого горшка. Вторая ошибка – решить, что последний горшок, у которого остановился робот, тоже полит. Полив в круге стоит до шагов вперёд, а пятого круга нет.
Ответ: а) 1, 4, 7, 10; б) 400 мл; в) у горшка 13.
Своя задача по программе сферы, модуль 1
Реши сам
6.1. Робот-поливальщик из задачи 6.1 стоит у горшка 1, «полить» наливает 150 мл. Программа: «повтори 5 раз: полить, полить, вперёд, вперёд». Сколько литров воды уйдёт и у какого горшка робот окажется в конце?
ответ6.2. В ряду 10 горшков, сухая земля в горшках 1, 3, 4, 6 и 9. Робот стоит у горшка 1, «полить» наливает 200 мл. Программа А: «повтори 8 раз: если земля сухая – полить; вперёд». Программа Б: «повтори 8 раз: вперёд; если земля сухая – полить». Какие горшки польёт каждая программа и сколько воды уйдёт?
ответЗадача 6.2 Светофор для рассады
На стеллаже с рассадой висит индикатор из трёх светодиодов: синий – холодно, зелёный – норма, красный – жарко. Функция readT() уже написана и возвращает температуру в градусах. Программа:
const int BLUE_LED = 2; // синий: холодно
const int GREEN_LED = 3; // зелёный: норма
const int RED_LED = 4; // красный: жарко
void setup() {
pinMode(BLUE_LED, OUTPUT);
pinMode(GREEN_LED, OUTPUT);
pinMode(RED_LED, OUTPUT);
}
void loop() {
float t = readT(); // температура в градусах
digitalWrite(BLUE_LED, LOW); // сначала гасим все три
digitalWrite(GREEN_LED, LOW);
digitalWrite(RED_LED, LOW);
if (t < 18) {
digitalWrite(BLUE_LED, HIGH);
} else if (t <= 26) {
digitalWrite(GREEN_LED, HIGH);
} else {
digitalWrite(RED_LED, HIGH);
}
delay(1000);
}Термометр по очереди показал 17,5; 18; 26; 26,4 и 31 °C. Какой светодиод горел после каждого замера? Ответ – строка из пяти цифр: 1 – синий, 2 – зелёный, 3 – красный.
Дано: синий при ; иначе зелёный при ; иначе красный. Замеры: 17,5; 18; 26; 26,4; 31.
Найти: цвет после каждого замера.
Шаг 1. Переводим цепочку на русский. Проверки идут сверху вниз. Меньше 18 – синий. Если не меньше 18, но не больше 26 – зелёный. Во вторую ветку попадают только числа от 18 и выше, поэтому зелёный горит при температуре от 18 до 26 включительно. Всё остальное – больше 26 – красный.
Шаг 2. Каждый замер по очереди.
- 17,5: – верно, синий, 1.
- 18: – неверно (18 не меньше самого себя). Дальше – верно, зелёный, 2.
- 26: – неверно; – верно (знак «меньше или равно»), зелёный, 2.
- 26,4: – неверно, остаётся ветка
else, красный, 3. - 31: красный, 3.
Шаг 3. Почему горит только один. В начале каждого круга программа гасит все три светодиода, а потом зажигает один нужный. Без этих трёх строк при переходе с синего на зелёный горели бы оба.
Два замера из пяти стоят точно на границах, и оба попали в «норму»: так задумано знаками < и <=.
Типичная ошибка. Ответить «3» для 26 °C, прочитав <= как <. Или для 18 °C ответить «1», решив, что 18 уже холодно. Граничные числа проверяй отдельно, выписывая сравнение целиком: «18 < 18 – неверно».
Ответ: 12233.
По мотивам задачи образовательного курса НТО Junior 2023/24, сфера «Технологии и среда обитания», «Индикаторы в виде светодиодов»
Реши сам
6.3. Лампа досветки управляется так (light – показание фоторезистора, включённого как в курсе: чем темнее, тем больше число):
if (light > 800) {
analogWrite(LAMP, 255); // полная яркость
} else if (light > 500) {
analogWrite(LAMP, 100); // вполсилы
} else {
analogWrite(LAMP, 0); // выключена
}Какое число получит analogWrite при показаниях 900, 800, 501, 500 и 270? Ответ – пять чисел через запятую.
6.4. Программист переписал условие из задачи 6.2 и поменял ветки местами:
if (t < 26) {
digitalWrite(GREEN_LED, HIGH);
} else if (t < 18) {
digitalWrite(BLUE_LED, HIGH);
} else {
digitalWrite(RED_LED, HIGH);
}Какие светодиоды будут гореть при 15, 22 и 30 °C (строка из трёх цифр: 1 – синий, 2 – зелёный, 3 – красный)? Какой светодиод в этой программе не загорится никогда?
ответЗадача 6.3 Сколько выпьет грядка
На сити-ферме на крыше работает скетч полива из раздела 6.3: раз в минуту он проверяет почву и, если число меньше 400, включает насос на 5 с. Насос качает 30 мл/с. Первая проверка – сразу после включения платы. Датчик на первых десяти проверках показал:
452, 418, 400, 391, 447, 425, 404, 388, 436, 409.
а) Сколько раз включится насос? б) Сколько миллилитров воды он нальёт? в) Через сколько секунд после включения платы начнётся десятая проверка?
Дано: полив при soil < 400, 5 с; насос 30 мл/с; после проверки delay(60000); 10 показаний.
Найти: число включений; объём воды; момент 10-й проверки.
Шаг 1. Какие показания включат насос. Условие soil < 400 – строго меньше. Идём по списку: 452, 418 – нет; 400 – нет, 400 не меньше 400; 391 – да; 447, 425, 404 – нет; 388 – да; 436, 409 – нет. Насос включится 2 раза: на 4-й и на 8-й проверке.
Шаг 2. Вода. Одно включение: мл. Два включения: мл.
Шаг 3. Сколько длится один круг loop(). Круг без полива – это ожидание delay(60000), 60 с. Круг с поливом – 5 с полива и ещё 60 с ожидания, всего 65 с. Остальные строки (измерение, сравнение) плата выполняет за доли миллисекунды, их не считаем.
Шаг 4. Когда начнётся 10-я проверка. До неё пройдут 9 полных кругов – с 1-го по 9-й. Среди них два круга с поливом (4-й и 8-й) и семь без полива:
Это 9 мин 10 с. Можно выписать и все моменты проверок подряд: 0, 60, 120, 180, 245, 305, 365, 425, 490, 550 с. После каждого полива шаг между ними вырастает с 60 до 65 с.
Полив скромный – полтора стакана за десять минут, – но и горшки на сити-ферме небольшие. А лишние 10 с набежали только из-за двух поливов.
Типичная ошибка. Посчитать, что десятая проверка идёт через с. Во-первых, между первой и десятой проверкой 9 промежутков, а не 10. Во-вторых, delay(5000) внутри условия тоже тратит время, и круг с поливом длиннее. И третья ловушка – показание 400: насос не включится, условие строгое.
Ответ: а) 2 раза; б) 300 мл; в) через 550 с.
По мотивам задачи образовательного курса НТО Junior 2023/24, сфера «Технологии и среда обитания», «Программирование для умного сити-фермера»
Реши сам
6.5. Скетч полива проверяет почву, при soil < 350 включает насос на 8 с (delay(8000)), а в конце каждого круга ждёт 30 с (delay(30000)). Насос качает 25 мл/с. Показания на первых восьми проверках: 372, 351, 350, 344, 398, 362, 349, 390. Сколько миллилитров воды нальёт насос? Через сколько секунд после включения платы начнётся восьмая проверка?
6.6. В горшок нужно налить 0,9 л воды насосом, который качает 45 мл/с. Какое число написать в delay(…) между включением и выключением насоса?
Задача 6.4 Обогреватель, который греет летом
Весной ночи в Новосибирской области холодные, и в теплице ставят обогреватель. Он должен включаться, когда температура ниже 16 °C, и выключаться, когда 16 °C и выше. Обогреватель подключён через реле к выводу 5, термометр TMP36 – ко входу A0. Школьник написал скетч, но в нём две ошибки. Найди строки с ошибками. Ответ – два номера строк через запятую, по возрастанию.
const int TEMP = A0; // 1
const int HEATER = 5; // 2
void setup() { // 3
pinMode(HEATER, INPUT); // 4
} // 5
void loop() { // 6
int n = analogRead(TEMP); // 7
float t = (n * 5.0 / 1023 - 0.5) * 100; // 8
if (t > 16) { // 9
digitalWrite(HEATER, HIGH); // 10
} else { // 11
digitalWrite(HEATER, LOW); // 12
} // 13
delay(1000); // 14
} // 15Дано: скетч из 15 строк; нужно: – обогреватель включён, иначе выключен.
Найти: номера строк с ошибками.
Шаг 1. Идём по строкам и спрашиваем: что делает эта строка и нужно ли это. Строки 1–2 – константы с номерами выводов, всё в порядке.
Шаг 2. Строка 4. pinMode(HEATER, INPUT) делает вывод 5 входом – как для кнопки или датчика. Но на выводе 5 висит реле обогревателя, им нужно командовать, значит, вывод должен быть выходом: OUTPUT. С INPUT команда digitalWrite(5, HIGH) не даст реле нужного тока, и оно не сработает. Первая ошибка – строка 4.
Шаг 3. Строки 7–8. Показание переводим в вольты и в градусы по формуле для TMP36 из главы 5. Число 5.0 записано с точкой, поэтому деление честное, дробное. Здесь ошибки нет. Проверим на примере: при 10 °C датчик даёт 0,6 В, и analogRead возвращает 122. По строке 8: °C – верно.
Шаг 4. Строка 9. Написано t > 16: «если теплее 16 – включить обогреватель». Это наоборот! Греть нужно, когда холодно: t < 16. Вторая ошибка – строка 9. Заодно проверим границу: при 16 °C на термометре условие t < 16 неверно, сработает else и выключит обогреватель, как и требует задание.
Шаг 5. Остальное. Строки 10–14 – включить, иначе выключить, пауза на секунду. Скобки все закрыты.
Оставь строку 9 как есть – и холодной ночью при 10 °C обогреватель стоит, а в июльскую жару при 30 °C – печёт рассаду вовсю.
Типичная ошибка. Искать ошибку в самой сложной строке – в формуле из строки 8 – и не заметить INPUT в «скучном» setup(). Ошибки прячутся где угодно. Надёжнее пройти все строки по порядку и для каждой сказать вслух, что она делает. А знак сравнения проверяй, подставив одно число с каждой стороны от порога: 10 °C и 20 °C.
Ответ: 4, 9.
Своя задача по программе сферы, модуль 1
Реши сам
6.7. Пока дверь теплицы открыта, вентилятор нужно выключать – незачем гнать воздух на улицу. Концевик двери на выводе 2 даёт HIGH, когда дверь открыта. В какой строке ошибка? Что будет делать вентилятор, когда дверь закрыта?
const int DOOR = 2; // 1
const int FAN = 9; // 2
void setup() { // 3
pinMode(FAN, OUTPUT); // 4
} // 5
void loop() { // 6
int door = digitalRead(DOOR); // 7
if (door = HIGH) { // 8
digitalWrite(FAN, LOW); // 9
} else { // 10
digitalWrite(FAN, HIGH); // 11
} // 12
delay(100); // 13
} // 146.8. Скетч полива (в setup() вывод PUMP сделан выходом):
void loop() {
int soil = analogRead(A0);
if (soil < 400) {
digitalWrite(PUMP, HIGH);
}
delay(1000);
}Датчик на первых четырёх проверках показал 450, 380, 420, 500. После каких проверок насос будет работать? Что нужно дописать в программу, чтобы он выключался, когда почва влажная?
ответЗадача 6.5 Перепутанные строки полива
Нужен скетч: сразу после включения платы проверить почву; если число меньше 350 (сухо) – включить насос на 45 с и выключить. Затем в любом случае подождать 10 минут и проверить снова. Насос подключён к выводу PUMP, в setup() он уже сделан выходом. Семь строк функции loop() перемешались:
void loop() {
// А digitalWrite(PUMP, LOW);
// Б int soil = analogRead(A0);
// В delay(45000);
// Г if (soil < 350) {
// Д digitalWrite(PUMP, HIGH);
// Е }
// Ж delay(600000);
}а) Расставь строки по порядку. Ответ – семь букв без пробелов. б) Насос качает 2 л/мин. Сколько литров он нальёт за одно включение?
Дано: 7 строк; полив 45 с при soil < 350; пауза 10 мин после каждой проверки; насос 2 л/мин.
Найти: порядок строк; объём за одно включение.
Шаг 1. Что должно быть первым. Прежде чем сравнивать soil с порогом, эту переменную нужно создать и положить в неё показание. Значит, первая – строка Б. Да и по условию проверка идёт сразу после включения, без ожидания.
Шаг 2. Развилка. Дальше вопрос «сухо ли?» – строка Г. У неё открывается фигурная скобка, а закрывает её строка Е. Всё, что между ними, выполнится только при сухой почве.
Шаг 3. Что внутри развилки. Полив – это три действия в таком порядке: включить (Д), подождать 45 с (В), выключить (А). Если поставить А сразу после Д, насос выключится через миллионные доли секунды, а потом плата будет 45 с ждать с выключенным насосом.
Шаг 4. Пауза 10 минут. По условию ждём в любом случае – и когда полили, и когда нет. Значит, строка Ж стоит после закрывающей скобки Е, снаружи развилки. Проверим: delay(600000) – это с, а мин, число в скобках верное.
Порядок: Б, Г, Д, В, А, Е, Ж. Прочитаем его как рассказ, пусть датчик покажет 300, 400, 320. В момент 0 почва сухая, насос работает 45 с. Потом 10 минут паузы, и вторая проверка приходится на 645 с: 400, полива нет. Третья – в 1245 с: 320, насос снова включается.
Шаг 5. Литры. 45 с – это мин. Насос за это время нальёт л. Одна большая бутылка из-под лимонада на грядку – обычный полив, не потоп.
Типичная ошибка. Поставить Ж внутрь развилки, перед Е. Тогда при влажной почве программа не ждёт вообще и проверяет датчик тысячи раз в секунду, а условие «подождать в любом случае» нарушено. Другая ошибка – перепутать В и А: насос «поливает» 0 секунд. Прежде чем вводить ответ, прочитай получившуюся программу сверху вниз, как рассказ.
Ответ: а) БГДВАЕЖ; б) 1,5 л.
Своя задача по программе сферы, модуль 7
Реши сам
6.9. Если воды в баке мало (датчик уровня на A2 показывает меньше 100), красная лампа ALARM должна вспыхивать: гореть 300 мс, потом 700 мс не гореть. Если бак не пуст, программа сразу идёт на следующий круг. Расставь строки loop(), ответ – семь букв.
// А digitalWrite(ALARM, LOW);
// Б int level = analogRead(A2);
// В delay(700);
// Г if (level < 100) {
// Д digitalWrite(ALARM, HIGH);
// Е delay(300);
// Ж }6.10. Увлажнитель должен включаться каждые 30 минут и работать 20 секунд:
void loop() {
digitalWrite(HUM, HIGH);
delay(20000);
digitalWrite(HUM, LOW);
delay(X);
}Какое число нужно поставить вместо X, чтобы от одного включения до следующего проходило 30 минут?
Задача 6.6 Какая программа держит два порога
Вентилятор теплицы должен включаться при 28 °C и выше, а выключаться только при 24 °C и ниже. Три школьника написали основную часть программы по-разному (в начале fanOn = false, а после этих строк вентилятор включают или выключают по fanOn):
// Программа 1
if (t >= 28) fanOn = true;
if (t <= 24) fanOn = false;
// Программа 2
if (t >= 28) fanOn = true;
else fanOn = false;
// Программа 3
if (t >= 28) fanOn = true;
else if (t <= 24) fanOn = false;Если после if (…) стоит одна команда, фигурные скобки можно не писать – так здесь и сделано.
а) Какие программы работают с двумя порогами, как задумано? Ответ – номера по возрастанию. б) Температуру меряют раз в минуту, 16 минут подряд: 26; 27,5; 28; 27,8; 28,3; 27,9; 28,1; 27; 25,5; 24; 25; 26,8; 28; 29; 27,5; 26. Сколько раз включится вентилятор у программы 1 и у программы 2?
Дано: пороги: включить при , выключить при ; три варианта кода; 16 замеров; вначале выключен.
Найти: правильные программы; число включений у программ 1 и 2.
Шаг 1. Что делает каждая программа между порогами. Возьмём 26 °C – число между 24 и 28 – и посмотрим, тронет ли программа fanOn.
- Программа 1: – неверно, – неверно. Ни одна строка не сработала,
fanOnостался прежним. Два порога – как задумано. - Программа 2: – неверно, значит, срабатывает
else, иfanOn = false. Вентилятор выключается уже при 26, хотя до 24 не остыло. Это один порог, 28 °C. - Программа 3: – неверно, дальше – тоже неверно,
else ifне сработал,fanOnне тронут. Два порога, работает так же, как программа 1.
Шаг 2. Трассировка программы 1. Вентилятор включается, когда впервые дойдёт до 28, и держится, пока не упадёт до 24.
- Минуты 1–2 (26; 27,5): до 28 не дошло, стоит.
- Минута 3 (28): – включение первое. Дальше 27,8; 28,3; 27,9; 28,1; 27; 25,5 – выше 24, работает.
- Минута 10 (24): – выключился.
- Минуты 11–12 (25; 26,8): стоит.
- Минута 13 (28): включение второе. До конца (29; 27,5; 26) не остыл до 24 – работает.
Итого 2 включения.
Шаг 3. Трассировка программы 2. Здесь всё решает одно показание: 28 и выше – работает, ниже – стоит. Работает на минутах 3 (28), 5 (28,3), 7 (28,1), 13 (28) и 14 (29). Между 3-й и 5-й, между 5-й и 7-й минутой был замер ниже 28, и вентилятор успевал выключиться. Включения начинаются на минутах 3, 5, 7 и 13 – это 4 включения, и столько же выключений: реле щёлкнуло 8 раз.
На графике видно, чем плохи программы с одним порогом: на минутах 3–7 температура «дрожит» у отметки 28, и вентилятор у программы 2 то включается, то выключается. У программы 1 он спокойно работает все эти минуты. Посчитай оранжевые клетки: у программы 1 их 11, у программы 2 – всего 5. Программа 3 закрасила бы те же 11 клеток, что и первая.
Типичная ошибка. Решить, что программа 3 неправильная, раз в ней есть else. Опасен голый else, который срабатывает на всё подряд. else if (t <= 24) срабатывает только при 24 и ниже, и между порогами память не затирается. Вторая ошибка – в трассировке засчитать минуту 13 как продолжение первого включения. Вентилятор к тому времени уже выключился на 10-й минуте, так что это новое включение.
Ответ: а) 13 (программы 1 и 3); б) программа 1 – 2 раза, программа 2 – 4 раза.
Своя задача по программе сферы, модуль 7
Реши сам
6.11. Увлажнитель воздуха управляется так (h – влажность в процентах, вначале humOn = false):
if (h <= 60) humOn = true;
if (h >= 75) humOn = false;Замеры влажности: 68, 63, 60, 64, 70, 74, 75, 71, 66, 61, 59, 65, 76. Сколько раз увлажнитель включится? Будет ли он работать после последнего замера?
ответ6.12*.* Обогреватель: if (t <= 16) heatOn = true; if (t >= 20) heatOn = false;, вначале выключен. Замеры каждые 10 минут: 18, 17, 16, 17, 18, 19, 20, 19, 17, 16, 15, 18 °C; каждое показание держится 10 минут, до следующего замера. а) Сколько минут всего проработал обогреватель? б) Сколько минут он проработал бы, если бы второй if заменили на else heatOn = false;?
Задача 6.7* *. Форточка в три ступеньки
Форточку теплицы поворачивает сервомотор. У неё три состояния: 0 – закрыта (угол 0°), 1 – щель (30°), 2 – открыта (90°). Переходы показаны на схеме. Температуру меряют раз в 5 минут, и за один замер машина делает не больше одного перехода. В 11:00 форточка закрыта.
Та же машина в программе. Сервомотором управляют готовые команды: Servo window; заводит мотор с именем window, window.attach(6) говорит, что он подключён к выводу 6, а window.write(30) поворачивает его на 30°.
Servo window; // сервомотор форточки
int state = 0; // 0 – закрыта, 1 – щель, 2 – открыта
void go(int s) { // переход: запомнить состояние и повернуть форточку
state = s;
if (s == 0) window.write(0);
if (s == 1) window.write(30);
if (s == 2) window.write(90);
}
void setup() {
window.attach(6);
go(0);
}
void loop() {
float t = readT(); // температура, °C
if (state == 0 && t >= 26) {
go(1);
} else if (state == 1 && t >= 30) {
go(2);
} else if (state == 1 && t <= 23) {
go(0);
} else if (state == 2 && t <= 27) {
go(1);
}
delay(300000); // следующий замер через 5 минут
}Замеры с 11:00 до 11:55: 24, 31, 32, 29, 27, 31, 26, 24, 22, 27, 30, 25 °C.
а) Запиши номер состояния после каждого замера – строку из 12 цифр. б) Сколько раз сервомотор поворачивал форточку (не считая начальной установки в setup())? в) Сколько минут форточка была открыта полностью, если каждое состояние держится до следующего замера, а после последнего замера – ещё 5 минут?
Дано: 0 → 1 при ; 1 → 2 при ; 1 → 0 при ; 2 → 1 при ; один переход за замер; 12 замеров через 5 мин; вначале состояние 0.
Найти: строку состояний; число поворотов; минуты в состоянии 2.
Шаг 1. Из каждого состояния – свои стрелки. В каждом замере смотрим только на стрелки, выходящие из текущего состояния. Из 0 – одна стрелка (вверх, при ). Из 1 – две (вверх при , вниз при ). Из 2 – одна (вниз при ). Если ни одна не сработала – остаёмся. Из состояния 1 выходят две стрелки на одно и то же событие – новое показание, и это не ошибка: условия у них не пересекаются (≥ 30 и ≤ 23), так что машина всегда знает, куда идти. Две стрелки с одним событием и одинаковым условием из одного состояния ставить нельзя.
Шаг 2. Трассировка. Заполняем таблицу строка за строкой.
| Время | , °C | Было | Сработала стрелка | Стало |
|---|---|---|---|---|
| 11:00 | 24 | 0 | нет: 24 < 26 | 0 |
| 11:05 | 31 | 0 | 0 → 1 | 1 |
| 11:10 | 32 | 1 | 1 → 2 | 2 |
| 11:15 | 29 | 2 | нет: 29 > 27 | 2 |
| 11:20 | 27 | 2 | 2 → 1: 27 ≤ 27 | 1 |
| 11:25 | 31 | 1 | 1 → 2 | 2 |
| 11:30 | 26 | 2 | 2 → 1 | 1 |
| 11:35 | 24 | 1 | нет: 24 > 23 и 24 < 30 | 1 |
| 11:40 | 22 | 1 | 1 → 0 | 0 |
| 11:45 | 27 | 0 | 0 → 1 | 1 |
| 11:50 | 30 | 1 | 1 → 2 | 2 |
| 11:55 | 25 | 2 | 2 → 1 | 1 |
Самое хитрое место – 11:05. Там 31 °C, и хочется сразу распахнуть форточку. Но из состояния 0 есть только стрелка в 1, а за один замер делается один переход. Форточка встанет на щель и откроется полностью лишь в 11:10. В программе это видно по цепочке else if: после go(1) остальные ветки в этом круге уже не проверяются.
Шаг 3. Считаем повороты. Поворот – каждый раз, когда состояние поменялось. Выпишем строку: 0, 1, 2, 2, 1, 2, 1, 1, 0, 1, 2, 1. Считаем соседние пары, где цифры разные: 0→1, 1→2, 2→1, 1→2, 2→1, 1→0, 0→1, 1→2, 2→1. Их 9.
Шаг 4. Минуты в состоянии 2. Состояние 2 наступило после замеров 11:10 и 11:15 (с 11:10 до 11:20 – 10 мин), после 11:25 (до 11:30 – 5 мин) и после 11:50 (до 11:55 – 5 мин). Всего мин.
За час форточка шевельнулась 9 раз. В жаркий день с облаками так и бывает: солнце выглянуло – открылась, спряталось – прикрылась.
Типичная ошибка. В 11:05 перескочить из 0 сразу в 2, «потому что 31 больше 30». Тогда вся строка дальше съедет. Вторая ловушка – 11:35, 24 °C: кажется, что «холодно, закрыть». Но стрелка из 1 в 0 требует 23 и ниже, а 24 – между порогами, форточка остаётся на щели. Третья – 11:20: при 27 °C стрелка из 2 срабатывает, потому что там знак .
Ответ: а) 012212110121; б) 9 раз; в) 20 мин.
Своя задача по программе сферы, модуль 1
Реши сам
6.13*.* Лампа досветки – машина с тремя состояниями: 0 – выключена, 1 – вполсилы, 2 – полная яркость. Фоторезистор включён как в курсе: чем темнее, тем больше число. Переходы: 0 → 1 при показании больше 500; 1 → 2 – больше 750; 2 → 1 – меньше 650; 1 → 0 – меньше 400. За один замер – не больше одного перехода, вначале лампа выключена. Показания: 280, 420, 520, 700, 760, 740, 660, 640, 580, 410, 390, 550. Запиши строку состояний после каждого замера. Сколько раз лампа меняла режим?
ответ6.14. Машина «полив с тревогой» имеет четыре состояния и такие переходы:
- «ждём» → «поливаем»: новое показание [почва < 400] / включить насос;
- «поливаем» → «впитывается»: прошло 10 с [почва ≥ 200] / выключить насос;
- «поливаем» → «тревога»: прошло 10 с [почва < 200] / выключить насос, мигать красным;
- «впитывается» → «ждём»: прошло 60 с.
(Если после 10 с полива датчик всё ещё показывает почти сухо, значит, пуст бак или датчик выпал из земли.) Какое состояние – тупик (конечным оно не отмечено)? Придумай переход, который из него выведет.
ответСигналы и обработка данных

Датчик в теплице не знает слова «жарко». Он каждые несколько секунд присылает число, и среди этих чисел попадаются дрожащие, случайные, а иногда совсем дикие – 85 °C майским утром. В этой главе учимся отделять то, что в теплице меняется по-настоящему, от помех: сглаживать ряд, ловить выбросы, считать события и период, прикидывать, как часто мерить и как число превращается в нули и единицы. На отборе такая задача приходит рядом чисел или графиком с отсчётами, а в ответ вводится одно число.
7.1. Сигнал и шум
Температура в теплице меняется плавно. Датчик добавляет к ней случайную дрожь. В записи мы видим сумму, и наша работа – вытащить из неё плавную линию.
Сигнал – величина, которая меняется со временем и этим что-то сообщает. Температура в теплице, освещённость над грядкой, напряжение на выходе фоторезистора, голос в телефоне – всё это сигналы. Когда в школьной столовой друг рассказывает тебе новость, его голос – сигнал, а гул сотни других голосов вокруг – помеха. Такие помехи называют шумом: мелкие случайные изменения, которые к делу не относятся. Шумят провода (в них наводятся помехи от моторов и соседней проводки), шумит сам датчик, шумит воздух, когда по теплице гуляет сквозняк.
У шума узнаваемый почерк: он мелкий, быстрый и беспорядочный. Воздух в теплице за минуту нагревается на десятые доли градуса, а соседние отсчёты термометра могут прыгать туда-сюда на полградуса. Числа то растут, то падают без всякой системы – скорее всего, это шум. Растут долго и дружно – это сигнал: например, из-за туч вышло солнце.
Аналоговый сигнал меняется плавно и может принять любое значение: напряжение на фоторезисторе бывает и 2,31 В, и 2,312 В. Цифровой сигнал принимает только строго определённые значения: «ноль» и «единица», и меняется скачками. Помеха портит такие сигналы по-разному: аналоговый «портится понемногу» (шипит, искажается), а цифровой передаётся целиком или пропадает совсем. Arduino превращает напряжение в целое число от 0 до 1023 (как – разобрано в главе 5), то есть оцифровывает сигнал: после этого у нас ряд чисел. Дальше в этой главе мы работаем уже с числами.
Период – сколько длится один повтор. Частота – сколько повторов влезает в секунду. Узнал одно – узнаешь и другое.
Волна. Многие сигналы повторяются. Днём в теплице тепло, ночью прохладно, назавтра всё сначала. Такой сигнал называют периодическим, а самый плавный из них, похожий на волну на воде, – гармоническим. В курсе волну описывают тремя числами: амплитудой, частотой и фазой. Период – это частота, записанная «наоборот». Начнём с периода, амплитуды и частоты, а про фазу – во врезке ниже.
- Период – время одного полного повтора, например от вершины до следующей вершины. У суточного хода температуры период 24 ч.
- Амплитуда – на сколько волна поднимается над своей серединой (и на столько же опускается под неё). Это половина размаха: . Днём до 26 °C, ночью до 14 °C – размах 12 °C, амплитуда 6 °C, середина °C. Размах ты уже считал в главе 3.
- Частота – сколько повторов укладывается в единицу времени. Частота и период «переворачивают» друг друга: и .
Частоту в повторах за секунду измеряют в герцах (Гц): 1 Гц – один повтор в секунду. Вентилятор, который делает 5 оборотов в секунду, крутится с частотой 5 Гц, и один оборот занимает с. Напряжение в розетке делает 50 полных колебаний в секунду – это 50 Гц, период с, или 20 мс. Для суточного хода температуры герцы неудобны (выходит 0,0000116 Гц), поэтому говорят проще: один раз в сутки.
Фаза и формула волны. В курсе гармоническую волну записывают формулой . Здесь – амплитуда, – скорость вращения (частоту в курсе обозначают буквой , мы пишем ), а – фаза: с какого места волна начинает. Если , в момент волна идёт через середину вверх; другая фаза просто сдвигает всю картинку по времени. Две волны одной частоты с разницей фаз в половину оборота (180°) идут в противофазе: одна вверх, другая вниз, и сложенные вместе они гасят друг друга. На этом держится шумоподавление в наушниках. В задачах главы фаза не нужна, но в курсе встретишь.
Запомни. Сигнал – то, что меняется по делу, шум – мелкая беспорядочная дрожь поверх него. У волны период – время одного повтора, частота (в герцах – повторов в секунду), амплитуда – половина размаха.
Совет. Период часто дают в миллисекундах. Прежде чем делить единицу на период, переведи его в секунды: 20 мс = 0,02 с, и тогда Гц. Разделишь 1 на 20 – получишь 0,05 «чего-то», и ответ уедет в тысячу раз.
7.2. Дискретизация: датчик меряет не всё время
Линия – как менялась температура. Точки – что успел увидеть датчик. Что было между точками, программа не знает.
Arduino не смотрит на датчик непрерывно. Программа читает его командой analogRead, потом ждёт или занимается другими делами, потом читает снова. Одно такое измерение называют отсчётом, а превращение плавного сигнала в ряд отсчётов – дискретизацией (латинское discretus значит «разделённый, прерывистый»). Промежуток между соседними отсчётами называют шагом, а число отсчётов за секунду – частотой дискретизации.
Если в loop() стоит delay(500), отсчёт делается раз в 0,5 с: 2 отсчёта в секунду, 120 в минуту. Сама программа тоже тратит время, но короткий код выполняется за доли миллисекунды, и в задачах этим пренебрегают, если не сказано иначе. Метеостанция, которая пишет раз в 10 мин, делает 6 отсчётов в час и отсчёта в сутки.
Замер – столб, промежуток между замерами – пролёт. Когда замеры стоят на обоих концах, столбов на один больше.
Столбы и пролёты. Кто строил забор на даче, знает: на 6 пролётов уходит 7 столбов. С отсчётами то же самое. Час с 8:00 до 9:00 с шагом 10 мин – это 6 промежутков, а замеров 7, считая оба конца. Когда в счёт идут и первый, и последний замер,
где – число отсчётов. А если датчик пишет круглые сутки подряд – 0:00, 0:10, …, 23:50, а следующий 0:00 уже относится к новым суткам, – отсчётов 144, без прибавки единицы. Так что сначала посмотри, где начало и где конец.
Каждый отсчёт – кусочек времени. Когда отсчёты идут с одинаковым шагом, считают, что каждый отвечает за один шаг времени. Тогда «сколько времени было жарко» находят так:
Пример: замеры раз в 15 мин, и в 6 из них температура была 28 °C и выше. Жарко было около мин, то есть полтора часа. «Около» – потому что между замерами датчик ничего не видел.
Слишком редко – значит, вслепую. Мерь температуру в теплице раз в сутки в 13:00 – и ряд выйдет ровный и тёплый, а ночной заморозок программа не заметит ни разу. Чтобы колебание вообще попало в запись, на один его период нужно больше двух отсчётов, а чтобы разглядеть форму – десяток и больше. Для суточного хода замер раз в час (24 отсчёта на период) уже хорош, раз в 12 часов – на самой грани, раз в сутки – бесполезен. Ты видел это и сам: на видео колёса машины иногда будто крутятся назад или стоят на месте. Камера снимает кадры-отсчёты слишком редко для такого быстрого вращения.
Для любопытных. Правило «больше двух отсчётов на период» в России называют теоремой Котельникова: инженер-связист Владимир Котельников доказал её в 1933 году. На ней держится вся цифровая запись звука и видео.
Запомни. Отсчётов на один больше, чем промежутков, если считаешь с обоих концов. Время по отсчётам = число отсчётов · шаг. Два отсчёта на период и меньше – колебание может пропасть из записи.
7.3. Детектирование: по уровню и по частоте
Считаем не точки выше черты, а моменты, когда линия её перешагнула снизу вверх. Расстояние между такими моментами – период.
Детектировать сигнал – обнаружить в нём событие: «стало светло», «прошла капля», «метка на лопасти пролетела мимо датчика». Способов два, оба простые. Прибор бывает и совсем без детектирования: термометр просто показывает число и ничего не ждёт.
Детектирование по уровню. Выбираем число-порог. Сигнал поднялся до порога или выше – событие произошло. Про пороги для форточки и насоса уже шла речь в главе 2, а здесь научимся считать события. Пусть порог 500, а отсчёты такие:
Выше порога 6 отсчётов, а событий три: на 3-м, 7-м и 10-м отсчёте сигнал перешагнул порог снизу вверх. (Так мы договорились считать в этой главе. В других заданиях событием может быть переход в любую сторону – и когда стало сильнее, и когда слабее; строгость порога («при значении, равном порогу, событие уже есть или ещё нет») тоже всегда оговаривает условие.) Пока он держится выше порога (отсчёты 3–4 или 10–12), это то же самое событие, просто долгое. Чтобы найти события, ищи пары соседей, где левый ниже порога, а правый – на пороге или выше. Такие места называют фронтами.
Детектирование по частоте (по периоду). Бывает, что нужно знать, как часто события повторяются. Анемометр на метеостанции – вертушка с чашками – на каждом обороте один раз даёт импульс. Датчик капель на капельнице – импульс на каждую каплю. Засекаем моменты событий и находим период – время между соседними событиями.
Пример. Импульсы пришли в моменты 3,0 с; 5,5 с; 8,0 с; 10,5 с. Между первым и последним прошло с, а промежутков между четырьмя импульсами – три (опять столбы и пролёты). Период с, частота Гц, то есть импульса в минуту.
Почему через первый и последний, а не по двум соседним? Из-за шума соседние промежутки чуть гуляют: 2,4 с, 2,6 с, 2,5 с. Длинный отрезок, делённый на число промежутков, сам усредняет эту неточность.
Запомни. Событие – момент, когда сигнал перешагнул порог снизу вверх, а не каждый отсчёт выше порога. Период = (время последнего события − время первого) : (число событий − 1).
Совет. Если моменты событий даны номерами отсчётов, сначала найди период в отсчётах, а потом умножь на шаг: 8 отсчётов при шаге 0,01 с – это 0,08 с.
7.4. Сглаживание: скользящее среднее
Под каждым положением окошка – среднее трёх чисел внутри. Сдвинули окошко на одну клетку – посчитали снова.
Самый простой способ убрать шум – усреднить. Случайные ошибки то в плюс, то в минус, и в сумме нескольких соседних отсчётов они частично гасят друг друга. А медленное изменение, которое нам и нужно, от усреднения почти не страдает.
Скользящее среднее по отсчётам: берём первые чисел ряда и находим их среднее. Потом сдвигаем «окно» на одно число вправо – выбрасываем самое старое, добавляем следующее – и снова считаем среднее. И так до конца ряда. Число называют размером окна.
Возьмём восемь отсчётов температуры и окно 3:
| 1-й в окне | 2-й | 3-й | Сумма | Среднее, °C |
|---|---|---|---|---|
| 20 | 22 | 21 | 63 | 21 |
| 22 | 21 | 25 | 68 | 22,7 |
| 21 | 25 | 23 | 69 | 23 |
| 25 | 23 | 24 | 72 | 24 |
| 23 | 24 | 28 | 75 | 25 |
| 24 | 28 | 26 | 78 | 26 |
Сырой ряд прыгал вверх-вниз (20, 22, 21, 25, 23 …), а сглаженный растёт ступенька за ступенькой: 21; 22,7; 23; 24; 25; 26. Стало видно главное: в теплице теплеет примерно на градус за замер.
Обрати внимание, что чисел стало меньше. Из 8 отсчётов при окне 3 получилось 6 средних: первое окно занимает отсчёты 1–3, последнее – 6–8. Правило:
где – сколько было отсчётов, – размер окна.
Чем больше окно, тем глаже линия – но и тем больше она опаздывает. Среднее за последние 9 минут откликнется на открытую форточку позже, чем среднее за 3 минуты: в окне ещё сидят старые, тёплые значения. А острые вершины широкое окно срезает. Поэтому окно выбирают так, чтобы шум ушёл, а нужные изменения остались: для термометра теплицы хватает 3–5 отсчётов.
На Arduino часто делают ещё проще: вместо одного отсчёта читают датчик 10 раз подряд и берут среднее. Разберём код по строчкам.
void setup() {
Serial.begin(9600); // включаем связь с компьютером
}
void loop() {
long summa = 0; // сюда будем складывать отсчёты
for (int i = 0; i < 10; i++) { // повторить 10 раз
summa = summa + analogRead(A0); // прочитать датчик и прибавить к сумме
delay(10); // подождать 10 мс
}
int srednee = summa / 10; // среднее из десяти отсчётов
Serial.println(srednee); // отправить его в монитор порта
delay(1000); // следующий замер через секунду
}Строка for (int i = 0; i < 10; i++) – это цикл: всё, что внутри фигурных скобок после неё, выполнится 10 раз. На Arduino Uno тип int вмещает целые числа только до 32 767. Десять отсчётов (сумма не больше 10 230) в него влезают, а сто – уже нет, поэтому для суммы по привычке берут long: он вмещает числа больше двух миллиардов. При делении summa / 10 дробная часть отбрасывается: для показаний 0…1023 это не страшно.
Запомни. Скользящее среднее – среднее из последних отсчётов, окно сдвигается на один. Из отсчётов получается средних. Широкое окно – глаже, но с опозданием.
7.5. Выбросы: когда датчик соврал
Соседи говорят «22–25 °C», а одна точка кричит «60». Верить ей нельзя: так не бывает.
Выброс – отсчёт, который резко отличается от соседей, причём так, как в жизни быть не может. Отошёл контакт – датчик влажности почвы показал 0 %. Солнечный луч упал прямо на корпус термометра – 60 °C посреди прохладного утра. В проводах проскочила помеха от мотора – одно число оказалось случайным. Шум – это дрожь на полградуса, а выброс – прыжок, после которого значение тут же возвращается обратно.
Как распознать выброс? Задай себе вопрос: могла ли величина так быстро измениться? Воздух в теплице за минуту не нагреется на 30 градусов, почва за секунду не высохнет с 45 % до 0 %. В задачах правило для выброса дают прямо: «отсчёт отличается от обоих соседей больше чем на 10 °C». Ещё помогают границы датчика: если термометр по паспорту меряет от −40 до +125 °C, показание 300 °C – заведомая ошибка.
Среднее боится выбросов. Шесть отсчётов: 22, 23, 23, 60, 24, 25 °C. Среднее °C. Ни один честный отсчёт не был выше 25 °C, а среднее вышло 29,5 °C – одно враньё испортило всё. Скользящее среднее тоже не спасает: окно «23, 60, 24» даёт °C, и выброс размазывается сразу на три соседних результата вместо одного.
Медиана – тот, кто стоит посередине, когда всех построили по росту. Самому высокому туда никак не попасть.
Медиана выбросов не боится. Медиана – число, которое оказывается посередине, если выстроить числа по возрастанию. Для трёх чисел: расставь их по порядку и возьми среднее по месту. Для окна «23, 60, 24» порядок такой: 23, 24, 60 – медиана 24. Выброс ушёл на край и в ответ не попал. Если с каждым отсчётом делать так – брать медиану из него и двух соседей, – получится медианный фильтр. У первого и последнего отсчёта одного из соседей нет, их оставляют как есть.
У медианы для целого ряда то же правило: 22, 23, 23, 24, 25, 60 – при чётном количестве посередине два числа, 23 и 24, и медиана равна их среднему, 23,5 °C. Сравни со средним 29,5 °C: медиана описывает эти шесть замеров честнее.
Медиана из трёх немного подрезает и настоящие вершины: одиночный честный пик она тоже примет за выброс. Поэтому иногда медианой заменяют только те отсчёты, которые подозрительны по правилу.
Ложные срабатывания. Выброс опасен не только для отчёта. Если программа сравнивает каждый отсчёт с порогом, случайные 60 °C включат вентилятор, и через минуту он выключится, – это ложное срабатывание. Защищаются двумя способами. Можно сначала пропустить отсчёты через медианный фильтр, а потом сравнивать с порогом. А можно требовать подтверждения: включать, только если порог превышен в нескольких отсчётах подряд, например в трёх. Выброс длится один отсчёт и подтверждения не получит. Цена защиты – опоздание: настоящий перегрев программа тоже заметит на два отсчёта позже.
from statistics import median
ryad = [22, 23, 23, 60, 24, 25]
filtr = [ryad[0]] # первый отсчёт – как есть
for i in range(1, len(ryad) - 1):
filtr.append(median(ryad[i-1:i+2])) # медиана из отсчёта и двух соседей
filtr.append(ryad[-1]) # последний – как есть
print(filtr) # [22, 23, 23, 24, 25, 25]ryad[i-1:i+2] – это три числа ряда: предыдущее, текущее и следующее. Функция median сама расставит их по порядку и вернёт среднее по месту.
Запомни. Выброс – одиночный прыжок, невозможный в жизни. Среднее он портит, медиана из трёх его убирает. Против ложных срабатываний – медианный фильтр или «несколько отсчётов подряд».
7.6. Спектр и фильтр – на пальцах
Фильтр – как сито для колебаний. Медленная волна проходит насквозь, мелкая быстрая рябь застревает.
Посмотри ещё раз на запись температуры из раздела 7.1. В ней сразу несколько колебаний. Самое медленное – сутки: днём тепло, ночью холодно. Побыстрее – форточка: открылась, воздух остыл, закрылась, нагрелся, и так каждые 20–30 минут. Совсем быстрое – дрожь датчика, от отсчёта к отсчёту. Любой сигнал можно разложить на такие простые волны с разными частотами.
Спектр – картинка, на которой видно, какие частоты есть в сигнале и насколько каждая сильна. Её рисуют столбиками: по горизонтали частота, по вертикали амплитуда. Ты видел спектр на экране музыкального плеера или колонки: прыгающие полоски эквалайзера слева показывают басы (низкие частоты), справа – писк и шелест (высокие).
Фильтр убирает из сигнала часть частот. Фильтр низких частот (ФНЧ) пропускает медленные колебания и задерживает быстрые. Это то, что нужно для датчика: полезный сигнал в теплице меняется медленно, а шум – быстрый. Скользящее среднее из раздела 7.4 и есть простой ФНЧ. Быстрая дрожь в окне успевает несколько раз сходить вверх и вниз и гасит себя сама, а медленная волна за время окна почти не меняется и проходит насквозь. Бывает и фильтр высоких частот – наоборот, он убирает медленное и оставляет быстрое. Им, например, ловят вибрацию: метеостанцию трясёт ветер, а медленный наклон мачты не интересен.
Одна полезная хитрость. Если помеха повторяется с известным периодом, окно скользящего среднего делают длиной в этот период. Тогда в каждое окно попадает весь повтор помехи целиком: и её подъём, и её спад. Плюсы и минусы складываются в ноль, и помеха исчезает полностью. Так убирают мерцание ламп досветки из показаний датчика освещённости – это задача 7.7.
Запомни. Спектр показывает, из каких частот сложен сигнал. ФНЧ пропускает медленное и убирает быстрое; скользящее среднее – простой ФНЧ. Окно длиной в период помехи убирает её целиком.
7.7. Кодирование: сигнал несёт число
У каждой клетки свой вес: 128, 64, 32 … 1. Складываем веса горящих клеток – получаем число.
Метеостанция стоит в огороде, а данные нужны в доме. Можно передать их по проводу, по радио или даже миганием фонарика – но в любом случае передаётся сигнал, у которого два состояния: есть и нет, высокое напряжение и низкое, вспышка и темнота. Правило, по которому сообщение превращают в такие сигналы, называют кодом.
Азбука Морзе – старый код из коротких и длинных сигналов: точек и тире. Сигнал бедствия SOS – три точки, три тире, три точки. Сейчас почти везде используют двоичный код: только два знака, 0 и 1. Один такой знак называют битом, восемь битов – байтом.
Двоичное число. В обычной записи у каждой цифры свой вес: единицы, десятки, сотни – каждый следующий в 10 раз больше. В двоичной записи вес каждого следующего разряда в 2 раза больше: 1, 2, 4, 8, 16, 32, 64, 128 (справа налево). Чтобы перевести двоичное число в обычное, сложи веса тех разрядов, где стоит 1:
Маленькая двойка внизу напоминает, что число записано в двоичной системе.
Сколько вариантов умещается в битов. Один бит – 2 варианта (0 или 1), два бита – 4 (00, 01, 10, 11), и каждый следующий бит удваивает число вариантов:
| Битов | Вариантов |
|---|---|
| 1 | 2 |
| 2 | 4 |
| 3 | 8 |
| 4 | 16 |
| 8 | 256 |
| 10 | 1024 |
Отсюда знакомые числа: 10 битов – варианта, поэтому analogRead выдаёт от 0 до 1023. 8 битов – 256 вариантов, поэтому ШИМ-команда analogWrite принимает от 0 до 255.
Обратный вопрос: сколько битов нужно, чтобы передать разных значений? Ищем самую маленькую степень двойки, не меньшую . Состояний у теплицы пять («норма», «жарко», «холодно», «сухо», «темно») – двух битов (4 варианта) мало, трёх (8 вариантов) хватит. Влажность в целых процентах от 0 до 100 – это 101 значение: 6 битов дают 64, мало, 7 битов – 128, хватит.
Отрицательные числа. Если код – просто номер от 0 до 255, минусов в нём нет. Выход простой: перед передачей ко всем температурам прибавляют одно и то же число, например 50. Тогда −12 °C передаётся кодом 38, а приёмник вычитает 50 обратно. Такую добавку называют сдвигом.
Скорость передачи считают в битах в секунду. Метеостанция раз в сутки отправляет 24 числа по 8 битов, по одному на каждый час, – это 192 бита. На скорости 4 бита в секунду (так быстро можно мигать фонариком руками) передача займёт с, а обычный радиомодуль справится за доли секунды.
Бит чётности. Помеха может превратить 0 в 1. Чтобы это заметить, к каждому байту добавляют ещё один бит: 1, если единиц в байте нечётное число, и 0, если чётное. Тогда во всех девяти битах вместе единиц всегда чётное количество. Приёмник пересчитывает единицы: нечётно – значит, по дороге что-то испортилось, и байт просят прислать заново. Одну ошибку так видно всегда, а две сразу – уже нет.
Для любопытных. Чтобы сигнал ушёл далеко, его «сажают» на быструю волну – несущую: радиоволну, свет лампы, звук. Меняя у несущей силу или частоту в такт сообщению, получают модуляцию, а линию, по которой меняется сила несущей, – огибающей. Мигание фонариком – самая простая модуляция: несущая – свет, огибающая – «горит – не горит».
Запомни. Двоичное число переводят, складывая веса разрядов с единицами: 128, 64, 32, 16, 8, 4, 2, 1. битов дают вариантов. Нужно значений – бери такое наименьшее , что .
7.8. Разбираем задачи
Задача 7.1 Сколько записей за день
Датчик влажности почвы на даче делает замер каждые 15 мин. Первый замер – в 7:00, последний – в 19:00. а) Сколько отсчётов запишется за день? б) Каждый отсчёт занимает в памяти 4 байта (показание и время). Сколько байтов займёт день записей?
Дано: шаг 15 мин; с 7:00 до 19:00, оба замера считаются; 4 байта на отсчёт.
Найти: – ?; объём в байтах – ?
Шаг 1. Длительность. С 7:00 до 19:00 – 12 ч. В минутах: мин.
Шаг 2. Промежутки. промежутков по 15 мин.
Шаг 3. Отсчёты. Замеры стоят на обоих концах каждого промежутка, как столбы забора: отсчётов на один больше, чем промежутков. .
Проверь на маленьком кусочке: с 7:00 до 7:30 замеры в 7:00, 7:15 и 7:30 – три отсчёта на два промежутка.
Шаг 4. Память. байт.
Типичная ошибка. Ответить 48: поделить время на шаг и забыть первый замер в 7:00. Другая – считать часы до 19:00 на пальцах «7, 8, …, 19» и получить 13 часов вместо 12.
Ответ: а) 49 отсчётов; б) 196 байт.
Своя задача по программе сферы, модуль 3
Реши сам
7.1. Термометр в теплице записывает температуру каждые 20 мин, с 6:00 до 18:00 включительно. Сколько отсчётов получится?
ответ7.2. Память регистратора вмещает 2880 записей. Замеры идут без перерыва. На сколько суток хватит памяти, если мерить раз в 5 мин? А если раз в 30 с?
ответЗадача 7.2 Влажность после полива
После полива датчик раз в минуту записывал влажность воздуха в теплице, %:
Влажность то росла, то падала – в сыром ряду она уменьшалась 4 раза. Сгладь ряд скользящим средним по 3 отсчётам. а) Запиши сглаженный ряд. б) Сколько раз в нём значение уменьшалось? в) На сколько выросла влажность от первого сглаженного значения до последнего?
Дано: 9 отсчётов; окно .
Найти: сглаженный ряд; число уменьшений; рост.
Шаг 1. Сколько будет средних. . Если к концу у тебя получится не 7 чисел, где-то пропущено окно.
Шаг 2. Считаем окна. Каждое следующее окно сдвинуто на один отсчёт:
| 1-й в окне | 2-й | 3-й | Сумма | Среднее, % |
|---|---|---|---|---|
| 60 | 64 | 59 | 183 | 61 |
| 64 | 59 | 66 | 189 | 63 |
| 59 | 66 | 64 | 189 | 63 |
| 66 | 64 | 62 | 192 | 64 |
| 64 | 62 | 69 | 195 | 65 |
| 62 | 69 | 67 | 198 | 66 |
| 69 | 67 | 71 | 207 | 69 |
Сумму следующего окна можно не складывать заново: вычти ушедшее число и прибавь пришедшее. Из первого окна во второе ушло 60, пришло 66: .
Шаг 3. Уменьшения. Сглаженный ряд: 61, 63, 63, 64, 65, 66, 69. Каждое следующее число больше предыдущего или равно ему – уменьшений ноль. Скачки вниз в сыром ряду были шумом.
Шаг 4. Рост. Процент здесь – единица влажности, как градус у температуры, поэтому просто вычитаем: %. Сырые данные дали бы % – в них первое и последнее число случайно оказались на «дне» и на «гребне» дрожи.
Рост влажности после полива на несколько процентов за 9 минут – обычная картина: вода испаряется с листьев и почвы.
Типичная ошибка. Двигать окно не на один, а на три отсчёта: (60, 64, 59), (66, 64, 62), (69, 67, 71). Так получается просто среднее по кусочкам – три числа вместо семи. Для скользящего среднего соседние окна перекрываются на отсчёт.
Ответ: а) 61, 63, 63, 64, 65, 66, 69; б) ни разу; в) на 8 %.
Своя задача по программе сферы, модуль 3
Реши сам
7.3. Датчик освещённости записал раз в минуту, лк: 1400, 1700, 1100, 1600, 1900, 1500. Посчитай скользящее среднее по 3 отсчётам. Сколько чисел получится? Запиши их, округлив до целых.
ответ7.4. Датчик освещённости записал четыре отсчёта, лк: 410, 430, ?, 450 – третий отсчёт в таблице стёрся. Известно, что первое скользящее среднее по 3 отсчётам равно 420 лк. Найди стёртый отсчёт и второе скользящее среднее. Второе округли до десятых.
ответЗадача 7.3 Вентилятор, который включался зря
Вентилятор в теплице включается, когда температура 28 °C и выше, и выключается, как только она становится ниже 28 °C. За 14 минут термометр раз в минуту записал, °C:
Выбросом считаем отсчёт, который отличается от обоих соседей больше чем на 5 °C. а) Сколько раз включится вентилятор, если программа сравнивает с порогом сырые отсчёты? б) Сколько из этих включений ложные? в) Сколько раз и на какой минуте он включится, если сначала пропустить ряд через медианный фильтр из трёх (первый и последний отсчёт – без изменений)?
Дано: 14 отсчётов раз в минуту; порог 28 °C; выброс – отличие от обоих соседей больше 5 °C.
Найти: число включений; число ложных; включения после медианного фильтра.
Шаг 1. Включения по сырым данным. Включение – момент, когда отсчёт стал 28 или больше, а предыдущий был меньше 28. Идём по ряду:
- 4-я минута: 38 после 23 – включение; на 5-й минуте 24, вентилятор выключается;
- 9-я минута: 33 после 26 – включение; на 10-й минуте 26, выключается;
- 12-я минута: 28 после 27 – включение; дальше 29, 29 – вентилятор так и работает.
Всего 3 включения.
Шаг 2. Кто выброс. Проверяем подозрительные отсчёты по правилу.
- 38 на 4-й минуте: соседи 23 и 24. и – оба больше 5. Выброс.
- 33 на 9-й минуте: соседи 26 и 26. – больше 5 с обеих сторон. Выброс.
- 28 на 12-й минуте: соседи 27 и 29, разница 1. Честный отсчёт, дальше температура держится.
Значит, ложных включений 2, на 4-й и 9-й минутах.
Шаг 3. Медианный фильтр. Для каждого внутреннего отсчёта берём его и двух соседей, выстраиваем по порядку и берём среднее по месту. Там, где выбросов нет, медиана почти ничего не меняет. На выбросах:
- 4-я минута: 23, 38, 24 → по порядку 23, 24, 38 → медиана 24;
- 9-я минута: 26, 33, 26 → 26, 26, 33 → медиана 26.
Отфильтрованный ряд: 22, 23, 23, 24, 25, 25, 25, 26, 26, 27, 27, 28, 29, 29. Первый раз 28 °C появляется на 12-й минуте – одно включение.
Проверка кодом.
from statistics import median
t = [22, 23, 23, 38, 24, 25, 25, 26, 33, 26, 27, 28, 29, 29]
def vklyucheniya(ryad, porog):
minuty = []
for i in range(len(ryad)):
byl_nizhe = (i == 0) or (ryad[i-1] < porog) # до начала вентилятор выключен
if ryad[i] >= porog and byl_nizhe:
minuty.append(i + 1) # минуты считаем с 1
return minuty
f = [t[0]] + [median(t[i-1:i+2]) for i in range(1, len(t) - 1)] + [t[-1]]
print(vklyucheniya(t, 28)) # [4, 9, 12]
print(vklyucheniya(f, 28)) # [12]За 14 минут воздух прогрелся с 22 до 29 °C, на 7 градусов, – так бывает, когда из-за туч выходит солнце. А вот скачок на 15 градусов за минуту и обратно не объяснит никакое солнце.
Типичная ошибка. Считать включениями все отсчёты не ниже 28: их пять (38, 33, 28, 29, 29). Но вентилятор на 13-й и 14-й минутах не включается заново – он уже работает. Считаем только переходы «ниже порога → порог и выше».
Ответ: а) 3 включения; б) 2 ложных (4-я и 9-я минуты); в) одно включение, на 12-й минуте.
Своя задача по программе сферы, модуль 3
Реши сам
7.5. Насос полива включается, когда влажность почвы ниже 35 %. Раз в минуту датчик записал, %: 48, 47, 0, 46, 45, 44, 3, 43, 41, 40, 38, 36, 34, 33. Почти нулевые значения – это отходящий контакт. Сколько раз насос включался ложно? На какой минуте произошло настоящее включение?
ответ7.6. Чтобы не реагировать на выбросы, программу вентилятора переписали: он включается, только если температура 28 °C и выше три отсчёта подряд. Раз в минуту записано, °C: 26, 27, 31, 30, 27, 28, 28, 29, 30. На какой минуте включится вентилятор? На сколько минут позже, чем включился бы по старому правилу «один отсчёт 28 °C и выше»?
ответЗадача 7.4 Сколько оборотов делает вентилятор
На лопасть вентилятора наклеили белую метку, а напротив поставили датчик освещённости. Каждый раз, когда метка пролетает мимо, показание подскакивает. Arduino делает отсчёт каждые 0,01 с (рисунок ниже). Порог – 500. Показания:
- отсчёты 1–8: 110, 120, 105, 115, 780, 640, 130, 110;
- отсчёты 9–16: 120, 105, 115, 125, 810, 140, 120, 110;
- отсчёты 17–24: 115, 125, 105, 120, 760, 690, 125, 115;
- отсчёты 25–32: 110, 120, 130, 115, 800, 135, 120, 110.
Сколько оборотов в минуту делает вентилятор?
Дано: 32 отсчёта; шаг 0,01 с; порог 500.
Найти: обороты в минуту – ?
Шаг 1. Выше порога. Не ниже 500 отсчёты 5, 6, 13, 21, 22, 29 – шесть штук.
Шаг 2. События. Метка иногда светит в датчик два отсчёта подряд (5–6, 21–22): она пролетает не мгновенно. Считаем только фронты – переходы снизу вверх через порог. Это отсчёты 5, 13, 21, 29. Проходов метки четыре, а не шесть.
Шаг 3. Период в отсчётах. От первого фронта до последнего отсчёта, промежутков между четырьмя событиями три: отсчётов на один оборот. Проверка по соседям: , , – вентилятор крутится равномерно.
Шаг 4. Период в секундах. с.
Шаг 5. Частота. оборота в секунду (12,5 Гц).
Шаг 6. В минуту. В минуте 60 с: оборотов в минуту.
Комнатный вентилятор крутится со скоростью порядка тысячи оборотов в минуту, так что 750 – спокойный, вполне жизненный режим.
Типичная ошибка. Взять за события все шесть отсчётов выше порога и решить, что за 0,32 с было 6 оборотов. Вторая ловушка – столбы и пролёты: отсчётов на оборот вместо 8, и в ответе выйдет 1000 оборотов в минуту.
Ответ: 750 оборотов в минуту.
Своя задача по программе сферы, модуль 3
Реши сам
7.7. Датчик капель у капельницы отметил первую каплю на 2-й секунде, а одиннадцатую – на 32-й секунде. Капли падают равномерно. Найди период капания в секундах и число капель в минуту.
ответ7.8. Геркон анемометра выдаёт 1, когда магнит на вертушке проходит мимо, и 0 в остальное время. Отсчёт каждые 0,05 с. Записано 30 отсчётов:
0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0.
Сколько оборотов в минуту делает вертушка?
Задача 7.5 Зимняя посылка с метеостанции
Метеостанция в огороде передаёт в дом температуру одним байтом – 8 битами. Чтобы передавать и морозы, к температуре в целых градусах перед отправкой прибавляют 50, и отправляют сумму в двоичном коде. Январским утром приёмник получил байт 00100110. а) Какая температура на улице? б) Какую самую низкую и самую высокую температуру можно передать таким способом?
Дано: 8 битов; код = температура + 50; принято 00100110.
Найти: – ?; наименьшая и наибольшая температура.
Шаг 1. Веса разрядов. Подписываем над каждым битом его вес. Начинаем справа: у крайнего правого бита вес 1, дальше 2, 4, 8 и так до 128 у крайнего левого.
вес: 128 64 32 16 8 4 2 1
бит: 0 0 1 0 0 1 1 0
Шаг 2. Складываем веса единиц. Единицы стоят в разрядах 32, 4 и 2: .
Шаг 3. Убираем сдвиг. Код = температура + 50, значит, температура = код − 50: °C.
Шаг 4. Границы. В 8 битах вариантов: коды от 0 (00000000) до 255 (11111111). Самая низкая температура – у кода 0: °C. Самая высокая – у кода 255: °C.
Минус 12 для январского утра под Новосибирском – даже мягко. А −50 °C как нижняя граница – с запасом: морозы сильнее – даже в Сибири большая редкость. Верхние 205 °C не нужны вовсе, так что сдвиг можно было взять и побольше.
Типичная ошибка. Читать веса слева направо: принять самый левый бит за 1, а самый правый за 128. Тогда 00100110 превращается в – и на улице «+50 °C». Вес 1 всегда у крайнего правого бита. Вторая ошибка – забыть про сдвиг и ответить «38 °C».
Ответ: а) −12 °C; б) от −50 °C до +205 °C.
По мотивам задачи образовательного курса НТО Junior 2023/24, сфера «Технологии и среда обитания», «Telegram + Метеостанция = Передача данных»
Реши сам
7.9. Переведи в обычные числа двоичные и .
ответ7.10. Метеостанция передаёт влажность воздуха в целых процентах, от 0 до 100. а) Сколько битов нужно на одно число? б) Сколько битов понадобится, если передавать влажность с шагом 0,5 % (0; 0,5; 1; … 100)? в) За сколько секунд уйдут 24 числа из пункта а) на скорости 12 бит/с?
ответЗадача 7.6* *. Отчёт регистратора
Регистратор в теплице записывал температуру каждые 30 мин, с 8:00 до 15:30. Каждый отсчёт считаем за полчаса. Один отсчёт испорчен: на датчик упал прямой солнечный луч. Испорченным считаем отсчёт, который отличается от обоих соседей больше чем на 10 °C, и заменяем его медианой из него и двух соседей. Найди: а) среднюю температуру за это время, округли до десятых; б) сколько часов температура была 25 °C и выше.
| Время | °C | Время | °C |
|---|---|---|---|
| 8:00 | 18 | 12:00 | 28 |
| 8:30 | 19 | 12:30 | 27 |
| 9:00 | 85 | 13:00 | 26 |
| 9:30 | 22 | 13:30 | 26 |
| 10:00 | 24 | 14:00 | 25 |
| 10:30 | 25 | 14:30 | 24 |
| 11:00 | 26 | 15:00 | 23 |
| 11:30 | 27 | 15:30 | 21 |
Дано: 16 отсчётов через 30 мин; выброс – отличие от обоих соседей больше 10 °C; замена медианой из трёх.
Найти: среднее – ?; время при 25 °C и выше – ?
Шаг 1. Сколько отсчётов. С 8:00 до 15:30 – 7,5 ч, это 15 промежутков по 30 мин, значит, отсчётов . Каждый отвечает за полчаса, всего ч наблюдений.
Шаг 2. Ищем выброс. 85 °C в 9:00, соседи 19 и 22: и , оба больше 10. Остальные отсчёты отличаются от соседей на 1–3 градуса. Выброс один.
Шаг 3. Заменяем. Три числа: 19, 85, 22 → по порядку 19, 22, 85 → медиана 22. В 9:00 ставим 22 °C.
Шаг 4. Сумма. Сумма всех 16 сырых отсчётов – 446. Выброс меняем на 22: . Вычитать и прибавлять проще, чем складывать все 16 чисел заново. Но если складываешь заново, сложи по столбцам таблицы: левый , правый , вместе 383.
Шаг 5. Среднее. °C.
Шаг 6. Часы при 25 °C и выше. Такие отсчёты: 10:30, 11:00, 11:30, 12:00, 12:30, 13:00, 13:30, 14:00 – восемь штук. В 9:00 теперь 22 °C, туда не входит. Каждый отсчёт – полчаса: ч.
Проверка кодом.
from statistics import median
t = [18, 19, 85, 22, 24, 25, 26, 27, 28, 27, 26, 26, 25, 24, 23, 21]
for i in range(1, len(t) - 1):
if abs(t[i] - t[i-1]) > 10 and abs(t[i] - t[i+1]) > 10: # выброс
t[i] = median(t[i-1:i+2])
print(t[2], round(sum(t) / len(t), 1)) # 22 23.9
print(sum(1 for x in t if x >= 25) * 0.5) # 4.0Среднее вышло между самым холодным (18 °C) и самым тёплым (28 °C) отсчётом, ближе к тёплым: теплица полдня простояла на солнце.
Типичная ошибка. Посчитать среднее вместе с выбросом: °C – на четыре градуса выше правды, и заодно насчитать 9 «жарких» отсчётов и 4,5 ч. Вторая ловушка – посчитать время «от 10:30 до 14:00» и получить 3,5 ч: так теряются последние полчаса, за которые отвечает отсчёт 14:00. По условию каждый отсчёт – полчаса, значит, число отсчётов умножаем на 0,5.
Ответ: а) 23,9 °C; б) 4 ч.
По мотивам задачи образовательного курса НТО Junior 2023/24, сфера «Технологии и среда обитания», «Анализ температурных данных»
Реши сам
7.11. Лампы досветки горят, когда освещённость ниже 2500 лк. Датчик мерил каждые 15 мин с 16:00 до 19:45, каждый отсчёт считаем за 15 мин. Отсчёты, лк: 3500, 3200, 2600, 2100, 1800, 1500, 1900, 2400, 2800, 3100, 2900, 2200, 1700, 1200, 800, 400. Сколько часов горели лампы?
ответ7.12*.* Средняя температура по 12 отсчётам оказалась 23,5 °C. Потом выяснилось, что один из отсчётов – 83 °C – выброс, а его соседи – 24 °C и 26 °C. Выброс заменили медианой из него и двух соседей. Какой стала средняя температура? Ответ до сотых.
ответЗадача 7.7* *. Лампа мерцает
Датчик освещённости стоит под лампой досветки. Яркость лампы пульсирует 100 раз в секунду – так мигают многие лампы, работающие от сети. Глазом этого не видно, а датчик видит. Отсчёт делается каждые 2,5 мс. Заодно в теплице светает, поэтому освещённость понемногу растёт. Первые 12 отсчётов:
а) Сколько отсчётов укладывается в один период мерцания? б) Каким наименьшим окном скользящего среднего мерцание убирается полностью? в) Чему равно первое сглаженное значение при таком окне?
Дано: мерцание 100 Гц; шаг 2,5 мс; 12 отсчётов.
Найти: отсчётов на период; наименьшее окно; первое сглаженное значение.
Шаг 1. Период мерцания. с. В миллисекундах: мс.
Шаг 2. Отсчётов на период. отсчёта. Проверим по ряду: 600, 644, 608, 572 – подъём, спад, провал; потом 616, 660, 624, 588 – тот же узор, только всё выше на 16. Узор повторяется каждые 4 отсчёта.
Шаг 3. Почему окно должно быть длиной в период. Разложим отсчёты на два слагаемых: медленный рост (600, 604, 608, 612, … – плюс 4 за отсчёт) и мерцание, которое повторяется по кругу: 0, +40, 0, −40. Проверь: , . В окно из 4 соседних отсчётов попадает весь круг мерцания, каждая его часть по одному разу: . Мерцание в сумме пропадает, остаётся только медленный рост.
Шаг 4. Проверим окно поменьше. Окно 3 по первым отсчётам: ; дальше 608; 598,7; 616; 633,3. Сглаженный ряд всё ещё качается вверх-вниз – мерцание осталось, только слабее. Окно 2 тоже не помогает: 622, 626, 590, 594, … Значит, наименьшее окно – 4.
Шаг 5. Первое сглаженное значение. . Следующие: 610, 614, 618 – растут на 4 за отсчёт, как и медленная часть.
Проверка кодом.
x = [600, 644, 608, 572, 616, 660, 624, 588, 632, 676, 640, 604]
for k in (2, 3, 4):
sr = [sum(x[i:i+k]) / k for i in range(len(x) - k + 1)]
print(k, [round(v, 1) for v in sr[:5]])
# 2 [622.0, 626.0, 590.0, 594.0, 638.0]
# 3 [617.3, 608.0, 598.7, 616.0, 633.3]
# 4 [606.0, 610.0, 614.0, 618.0, 622.0]Окно 4 – это всего 10 мс. Для теплицы, где свет меняется за минуты, такое опоздание незаметно.
Типичная ошибка. Решить, что «чем больше окно, тем лучше», и взять, например, 5. Окно 5 тоже сгладит ряд, но неровно: в каждое окно одна часть мерцания попадёт дважды, и ряд продолжит слегка качаться. Мерцание пропадает полностью, когда окно равно периоду или целому числу периодов: 4, 8, 12 отсчётов. Ещё ошибаются в шаге 2 – делят 10 мс на 2,5 с и получают 0,004 отсчёта.
Ответ: а) 4 отсчёта; б) окно 4; в) 606.
Своя задача по программе сферы, модуль 3
Реши сам
7.13. Температура в теплице сложена из трёх колебаний: суточного (период 24 ч, амплитуда 7 °C), от форточки (период 20 мин, амплитуда 0,4 °C) и дрожи датчика (период 10 с, амплитуда 0,2 °C). а) Сколько повторов в час делает каждое колебание? б) Фильтр низких частот пропускает только колебания, которые повторяются реже одного раза в час. Какой размах будет у сигнала после фильтра?
ответ7.14*.* Помеха в показаниях датчика повторяется каждые 6 отсчётов по кругу: 0, +30, +30, 0, −30, −30. Первые 12 отсчётов: 500, 533, 536, 509, 482, 485, 518, 551, 554, 527, 500, 503. Каким наименьшим окном скользящего среднего помеха убирается полностью? Чему равно первое сглаженное значение при этом окне?
ответМетеостанция и автоматика

Теплица стоит на улице, и погода за стенкой решает за неё очень многое: ветер может сорвать открытую форточку, ночной заморозок – погубить рассаду, солнце – дать бесплатную энергию. В этой главе ставим рядом с теплицей метеостанцию, учимся переводить обороты анемометра в скорость ветра, поворачивать форточку сервомотором, крутить вентилятор DC-мотором и ловить солнце панелью. На отборе такие задачи приходят короткой историей с числами или кусочком программы, а ответ – одно число или несколько чисел по порядку.
8.1. Метеостанция: теплица смотрит на улицу
Внутри теплицы датчики видят только то, что уже случилось. Метеостанция снаружи видит, что сейчас придёт: ветер, холод, солнце.
Метеостанция – набор датчиков погоды на одном шесте или мачте. Школьная метеостанция из набора меряет температуру и влажность воздуха, скорость ветра и освещённость, а питается от солнечной панели. Всё это читает та же плата Arduino, что управляет теплицей, или отдельная плата, которая передаёт числа по проводу или по радио.
Зачем теплице знать погоду снаружи? Датчик внутри заметит холод, только когда холод уже зашёл внутрь. Метеостанция предупреждает заранее. Пример из новосибирской весны: в мае днём +20 °C, а к ночи на улице падает до −2 °C. Если вечером станция видит, что снаружи быстро холодает, автоматика закроет форточки и включит обогрев, пока рассада ещё в тепле. Второй пример – ветер. Открытую форточку сильный порыв может сломать, поэтому при сильном ветре её закрывают, даже если внутри жарко, а проветривают вентилятором.
Датчик DHT11 – маленькая голубая коробочка с решёткой, внутри два датчика сразу: температуры и влажности воздуха. Термометр TMP36 из главы 5 выдаёт напряжение, которое ещё надо пересчитывать в градусы. DHT11 присылает готовые числа – цифровым сигналом по одному проводу. Проводов у него три: питание, земля и сигнал. В симуляторе Tinkercad такого датчика нет, поэтому код с ним мы читаем, а не собираем. Считывать его помогает библиотека – готовый кусок программы, который кто-то уже написал. В Arduino IDE её ставят через «Управление библиотеками», она называется «DHT sensor library».
#include <DHT.h> // библиотека для датчиков DHT
DHT dht(2, DHT11); // датчик на выводе 2, модель DHT11
void setup() {
Serial.begin(9600);
dht.begin(); // запускаем датчик
}
void loop() {
float t = dht.readTemperature(); // температура, °C
float h = dht.readHumidity(); // влажность воздуха, %
Serial.print(t);
Serial.print(" C ");
Serial.println(h);
delay(2000); // DHT11 не отвечает чаще раза в 1–2 секунды
}Первая строка подключает библиотеку. Вторая говорит, что датчик висит на выводе 2 и что это модель DHT11. Дальше всё знакомо: dht.readTemperature() возвращает температуру, dht.readHumidity() – влажность, и мы печатаем их в монитор порта. Пауза в 2 секунды нужна самому датчику: спросишь его чаще – он будет отдавать старое число или ошибку.
У DHT11 есть старший брат DHT22 – он точнее и не боится мороза. В симуляторе Wokwi есть как раз DHT22, а работа с ним в программе та же, меняется только слово в скобках: DHT dht(2, DHT22);. Чем они отличаются (по паспортам производителя):
| DHT11 | DHT22 | |
|---|---|---|
| Температура | от 0 до 50 °C | от −40 до 80 °C |
| Точность температуры | ±2 °C | ±0,5 °C |
| Влажность | от 20 до 90 % | от 0 до 100 % |
| Точность влажности | ±5 % | ±2 % |
Точность ±2 °C значит, что настоящая температура может отличаться от показаний на 2 градуса в любую сторону. DHT11 показал 25 °C – а в теплице может быть и 23, и 27. Для теплицы терпимо, для медицинского градусника – нет. А диапазон важнее точности: DHT11 рассчитан на температуру от нуля и выше. На улице в новосибирском январе, когда −30 °C, он будет показывать ерунду. Для уличной станции у нас нужен DHT22 или другой датчик, который выдерживает мороз.
Запомни. Метеостанция нужна теплице, чтобы автоматика успела среагировать до того, как погода придёт внутрь. DHT11 меряет температуру (0…50 °C, ±2 °C) и влажность воздуха (20…90 %) и отдаёт готовые числа; спрашивать его – не чаще раза в 1–2 секунды.
Совет. Выбираешь датчик по таблице характеристик – первым делом проверь диапазон: влезает ли в него самая холодная и самая жаркая погода, которая может случиться. Точность смотри уже потом.
8.2. Анемометр: из оборотов в скорость ветра
Посчитай, сколько кругов чашка сделала за секунду, умножь на длину круга – получишь, сколько метров она пролетела за секунду. Это и есть её скорость.
Анемометр – вертушка с чашечками на оси. Ветер давит в вогнутую сторону чашки сильнее, чем в выпуклую, и вертушка крутится: чем сильнее ветер, тем быстрее. Скорость ветра меряют в метрах в секунду (м/с): сколько метров воздух пролетает за одну секунду. Прогноз погоды тоже говорит «ветер 5 м/с».
Скорость – путь, делённый на время. Велосипедист проехал 100 м за 20 с – его скорость м/с.
За один оборот центр чашки проходит круг. Длина этого круга (длина окружности) равна , где – радиус: расстояние от оси вертушки до центра чашки, а . Если вертушка делает оборотов за секунду, то за секунду чашка проходит кругов. Словами: скорость чашки равна длине круга, умноженной на число оборотов в секунду. Буквами:
где – скорость чашки в м/с, – радиус в метрах, – оборотов в секунду (об/с).
Пример. Радиус 10 см = 0,1 м, вертушка делает 2 оборота за секунду. Длина круга м, скорость чашки м/с, около 1,3 м/с.
Поправка. Чашки не успевают за ветром: они крутятся медленнее, чем летит воздух. Поэтому у настоящего анемометра есть поправочный коэффициент – число, во сколько раз ветер быстрее чашек. Его находят на заводе, продувая прибор в трубе с известным ветром. У самодельных вертушек он бывает около 2–3. Если дан в условии, скорость ветра
Если про поправку в задаче ни слова – считай .
Как плата считает обороты. На вертушке закрепляют маленький магнит, а рядом – неподвижный геркон: стеклянную трубочку с двумя пластинками, которые смыкаются, когда рядом магнит. Магнит пролетел мимо – контакт на миг замкнулся, плата увидела импульс. Считать импульсы мы учились в главе 7: ищем моменты, когда сигнал перешёл из одного состояния в другое. Иногда магнитов ставят два или четыре, чтобы на медленном ветру импульсов было больше. Тогда число оборотов = число импульсов : число магнитов.
Вот программа, которая 5 секунд считает импульсы и печатает скорость ветра. Геркон подключён к выводу 2: пока магнита нет, на выводе HIGH, когда магнит рядом – LOW.
const int GERKON = 2; // геркон анемометра – на выводе 2
const float R = 0.07; // радиус вертушки, м
const float K = 3.0; // поправка: ветер в 3 раза быстрее чашек
const int MAGNITOV = 2; // сколько импульсов на один оборот
void setup() {
pinMode(GERKON, INPUT_PULLUP); // без магнита на выводе будет HIGH
Serial.begin(9600);
}
void loop() {
int impulsy = 0;
int bylo = digitalRead(GERKON);
unsigned long start = millis();
while (millis() - start < 5000) { // считаем 5 секунд
int stalo = digitalRead(GERKON);
if (bylo == HIGH && stalo == LOW) impulsy++; // магнит подошёл – +1
bylo = stalo;
}
float n = impulsy / (float)MAGNITOV / 5.0; // оборотов в секунду
float v = 2 * 3.14 * R * n * K; // скорость ветра, м/с
Serial.println(v);
}Сердце программы – цикл while: он крутится, пока от старта прошло меньше 5000 мс. На каждом круге он читает геркон и сравнивает с прошлым чтением: было HIGH, стало LOW – значит, магнит только что подошёл, и счётчик impulsy растёт на 1. Если просто считать все LOW, один проход магнита дал бы сотни «импульсов»: пока он рядом, плата успеет прочитать геркон много раз. (float) перед MAGNITOV заставляет Arduino делить с дробной частью, иначе дало бы 7, а не 7,5.
Километры в час. Скорость машины и ветра в новостях часто дают в км/ч. В часе 3600 с, в километре 1000 м, поэтому 1 м/с км/ч. Из м/с в км/ч – умножаем на 3,6, обратно – делим на 3,6. Ветер 10 м/с – это 36 км/ч, как школьный автобус по городу.
Запомни. Скорость чашки: (радиус в метрах, – оборотов в секунду). Скорость ветра – это скорость чашки, умноженная на поправку , если она дана. Обороты = импульсы : число магнитов. 1 м/с = 3,6 км/ч.
Совет. Выпиши отдельными строчками: сколько импульсов, за сколько секунд, сколько магнитов. Потом получи обороты в секунду – и только после этого бери формулу. Саму формулу путают редко, а вот импульсы с оборотами – постоянно.
8.3. Сервомотор и DC-мотор: форточка и вентилятор
Сервомотору говорят «куда»: встань на 60°. DC-мотору говорят «как сильно»: крутись на три четверти мощности.
В теплице двигаются две вещи: форточка и вентилятор. И моторы у них разные.
Сервомотор (коротко «серва») – мотор с шестерёнками и собственным «мозгом» внутри. Ему сообщают угол от 0 до 180°, и он поворачивает рычаг на этот угол, а потом держит его, даже если форточку качает ветер. Похоже на стрелку на циферблате: скажешь «на 60» – встанет на 60. Серва из школьного набора – SG90 весом 9 г – поворачивается на 60° за 0,1 с (по паспорту, при 4,8 В). У сервы три провода: питание, земля и сигнальный – его подключают к выводу платы.
#include <Servo.h> // библиотека для сервомоторов
Servo okno; // сервомотор форточки
void setup() {
okno.attach(6); // сигнальный провод – на вывод 6
okno.write(0); // форточка закрыта
}
void loop() {
for (int a = 0; a <= 90; a += 3) { // открываем плавно: шаг 3°
okno.write(a);
delay(40);
}
delay(5000);
okno.write(0); // закрыть сразу
delay(5000);
}Сама серва поворачивается быстро. Но распахнуть форточку за 0,15 с – значит хлопнуть рамой. Поэтому её открывают плавно: цикл for ставит серву на 0°, 3°, 6° … и после каждого шага ждёт 40 мс. Читается он так: «начни с a = 0; повторяй, пока a <= 90; после каждого круга прибавляй к a три». Сколько раз выполнится тело цикла и сколько это займёт времени, посчитаем в задаче 8.3. Подсказка из главы 7: столбов на один больше, чем пролётов.
Угол от ручки. На занятиях серву часто крутят потенциометром – ручкой, как у громкости. Потенциометр на входе A0 даёт число от 0 до 1023 (analogRead), а серве нужен угол от 0 до 180. Пересчитывает команда map:
int a = map(analogRead(A0), 0, 1023, 0, 180); // число 0…1023 -> угол 0…180
okno.write(a);Внутри map та же пропорция, что и в главе 5: угол . Но map считает в целых числах и дробную часть отбрасывает, не округляя. Ручка дала 700: , серва встанет на 123°. Дала 511: – это уже 89°, а не 90°.
DC-мотор (мотор постоянного тока) устроен проще: подал напряжение – крутится, снял – остановился. Поменяй местами провода «плюс» и «минус» – закрутится в другую сторону. Чем больше напряжение, тем быстрее он крутится. На таком моторе держатся вентилятор и насос полива.
Напрямую к выводу Arduino мотор подключать нельзя. Вывод рассчитан на ток около 20 мА (в паспорте предел – около 40 мА, но на постоянной работе держат не больше 20) – хватит на светодиод, а моторчику вентилятора нужно в десятки раз больше: плата перегреется и может сгореть. Между платой и мотором ставят драйвер – «усилитель»: плата подаёт ему слабый сигнал «крутить», а он пропускает к мотору сильный ток от отдельного блока питания. Драйвер умеет и менять направление вращения.
Вывод щёлкает «вкл – выкл» сотни раз в секунду. Мотор не успевает заметить щелчки и крутится так, будто получил только ту долю мощности, какую долю времени вывод был включён.
Скорость задают ШИМ (широтно-импульсной модуляцией) – командой analogWrite(вывод, число) с числом от 0 до 255. Число – это доля времени «включено»: 255 из 255 – вывод включён всегда, 128 из 255 – примерно половину времени. Подробнее – в справочнике в конце книги. В задачах считают упрощённо: скорость вентилятора и количество воздуха, которое он прогоняет, пропорциональны числу ШИМ. В жизни это не совсем так: на маленьком числе мотор может вообще не стронуться с места.
Сколько воздуха. У вентилятора в паспорте пишут производительность – сколько кубометров воздуха он прогоняет за час (м³/ч). Если объём теплицы 60 м³, а вентилятор даёт 300 м³/ч, он сменит весь воздух за ч – это 12 минут. Тепличники говорят: «пять обменов в час».
Запомни. Серва: угол от 0 до 180°, write(угол), держит положение. DC-мотор: крутится от напряжения, скорость – через ШИМ (0…255), направление – сменой полярности, подключается только через драйвер. map отбрасывает дробную часть. Время смены воздуха = объём теплицы : производительность вентилятора.
Совет. Процент мощности из числа ШИМ: число : 255 · 100. Число ШИМ из процентов: процент : 100 · 255. Держи под рукой: 255 – 100 %, 191 – около 75 %, 128 – около 50 %, 64 – около 25 %.
8.4. Солнце, панель и трекер
Повёрнутая к солнцу панель ловит все лучи, которые на неё летят. Наклонённая – только часть: остальные проходят мимо.
Как солнечная панель превращает свет в электричество, мы считали в главе 5: в ясный полдень на квадратный метр, повёрнутый к солнцу, приходит около 1000 Вт света, и панель забирает из этого 15–20 %. Здесь важны слова «повёрнутый к солнцу». Попробуй вечером посветить фонариком на лист бумаги: прямо – яркое круглое пятно, наискосок – пятно растягивается в длинный овал и тускнеет. Света столько же, а размазан он по большей площади, и каждому кусочку листа достаётся меньше.
С панелью так же. Угол между лучами и перпендикуляром к панели – прямой, которая торчит из панели под углом 90°, как мачта из палубы, – решает, какая доля света ей достанется:
| Угол между лучами и перпендикуляром | Доля света |
|---|---|
| 0° | 100 % |
| 15° | 97 % |
| 30° | 87 % |
| 45° | 71 % |
| 60° | 50 % |
| 75° | 26 % |
| 90° | 0 % |
Пока угол небольшой, потери маленькие: на 15° теряется всего 3 %. Потом доля падает всё быстрее, на 60° остаётся половина, а если лучи скользят вдоль панели (90°), света ей не достаётся совсем.
Для любопытных. Числа в таблице – это косинус угла, умноженный на 100 %. Косинус проходят в 8–9 классе, а на инженерном калькуляторе в телефоне это кнопка cos: – та самая половина.
Высота солнца. Угол между горизонтом и направлением на солнце называют высотой солнца. В полдень солнце выше всего за день. Насколько высоко – зависит от того, как далеко город от экватора (эту величину называют широтой: у экватора 0°, у полюса 90°) и от времени года. Правило такое:
- в дни равноденствия (около 20 марта и 23 сентября) высота полуденного солнца ;
- 22 июня, в самый длинный день, солнце в полдень выше на 23°;
- 22 декабря, в самый короткий, – ниже на 23°.
Новосибирск стоит на широте около 55°. Значит, в полдень в равноденствие солнце стоит на над горизонтом, летом – на , зимой – всего на . Поэтому зимой в полдень тени такие длинные.
Какой угол выбрать. Чтобы лучи падали на панель перпендикулярно, панель наклоняют к горизонту на угол . Солнце на 35° – наклон 55°, солнце высоко летом, на 58°, – наклон всего 32°: чем выше солнце, тем более плоско лежит панель. Зимой, когда солнце на 12°, панель ставят почти стоймя, на 78°. Кстати, снег с такой панели сползает сам.
Трекер ведёт себя как молодой подсолнух: утром смотрит на восток, в полдень – на юг, вечером – на запад. Лучи весь день падают на панель прямо.
Трекер. Солнце за сутки обходит полный круг – 360°, значит, за час оно смещается по небу на . Неподвижная панель смотрит туда, где солнце в полдень, и утром и вечером лучи падают на неё наискосок. Солнечный трекер (от английского track – «следить») – механизм, который поворачивает панель вслед за солнцем, чаще всего сервомотором. Как он узнаёт, куда поворачивать? На панели ставят два фоторезистора, разделённых перегородкой: один смотрит чуть левее, другой – чуть правее. Левый видит больше света – повернуть на градус влево, правый – вправо, поровну – стоять. В коде ниже фоторезисторы включены так, что больше света – больше число. Если собрать их как в курсе (фоторезистор между A0 и GND), числа будут расти к темноте, и знаки в условиях придётся поменять.
// кусок из loop(); в начале программы объявлены Servo panel; и int povorot = 90;
int levo = analogRead(A0); // фоторезистор слева
int pravo = analogRead(A1); // фоторезистор справа
if (levo - pravo > 30 && povorot < 180) povorot = povorot + 1; // слева светлее
if (pravo - levo > 30 && povorot > 0) povorot = povorot - 1; // справа светлее
panel.write(povorot);Это кусок из loop(), а panel и povorot заведены в самом начале программы, как okno в примере с форточкой, – об этом комментарий в первой строке. В povorot хранится угол сервы трекера. Поворачиваем, только если разница больше 30. Сравнивай мы с нулём, панель дёргалась бы туда-сюда от любой мелкой дрожи показаний (помнишь шум из главы 7?).
Сколько даёт трекер. Возьмём упрощённую модель: солнце светит с 6:00 до 18:00 одинаково ярко, смещается на 15° в час, неподвижная панель смотрит на полуденное солнце. Разобьём день на куски по 2 часа и для каждого возьмём угол в середине куска: в 7:00 солнце ушло от полуденного направления на , в 9:00 – на 45°, в 11:00 – на 15°. После полудня всё повторяется в обратном порядке.
У трекера все 12 часов – 100 %. Неподвижная панель за день набирает столько же энергии, сколько за ч полной мощности. Трекер – 12 ч, в полтора с лишним раза больше. В жизни выигрыш скромнее: утром и вечером солнечный свет идёт к земле сквозь толстый слой воздуха и сам по себе слабее полуденного, так что терять неподвижной панели в эти часы почти нечего. К тому же серва трекера сама расходует энергию – это посчитаем в задаче 8.6.
Запомни. Панель берёт больше всего света, когда лучи падают на неё перпендикулярно; при отклонении на 60° – только половину. Высота солнца в полдень в равноденствие , летом на 23° выше, зимой на 23° ниже. Наклон панели . Солнце смещается на 15° в час.
8.5. Метеостанция управляет теплицей
Самое опасное проверяют первым. Если ветер штормовой, до вопроса «жарко ли внутри» дело даже не доходит.
Датчики есть, моторы есть, погоду мы видим. Осталось научить автоматику решать. Она получает числа от датчиков внутри (DHT11 под крышей) и от метеостанции снаружи (DHT22 и анемометр) и решает, на какой угол открыть форточку. Правила записывают по порядку, и программа проверяет их сверху вниз. Так работает цепочка if … else if из главы 6: срабатывает первая подходящая ветка, остальные уже не проверяются.
Порядок правил – не мелочь. Возьмём два правила: «жарко внутри – открыть форточку» и «сильный ветер – закрыть форточку». Жаркий ветреный день: если первым стоит правило про жару, форточка распахнётся, и ветер её сорвёт. Поэтому первыми всегда идут правила безопасности – они сильнее остальных. Такое правило называют приоритетным.
Бывают правила помягче – ограничения. «На улице холоднее +10 °C – открывать не больше чем на 30°»: форточку открыть можно, но только приоткрыть: ледяной воздух не должен падать прямо на рассаду. В программе это выглядит так: сначала считаем угол по жаре, потом урезаем его, если он больше разрешённого.
Угол по температуре удобно задавать шагами: например, до 24 °C форточка закрыта, а за каждый градус выше 24 прибавляется 15°, но не больше 90°. При 27 °C: градуса сверх нормы, . При 32 °C вышло бы , но форточка дальше 90° не открывается, значит, 90°. Ограничение сверху в Arduino делает constrain или обычное if.
Запомни. Правила проверяют сверху вниз, правила безопасности (ветер, мороз) – первыми. Ограничение не выбирает угол, а только урезает слишком большой. Рассчитанный угол всегда сверяй с пределами механизма: от 0° до 90° у форточки, от 0° до 180° у сервы.
8.6. Разбираем задачи
Задача 8.1 Вертушка на крыше школы
Школьный анемометр – вертушка с тремя чашками, от оси до центра каждой чашки 8 см. Ребята засекли по секундомеру: за 12 секунд вертушка сделала 36 оборотов. С какой скоростью движутся чашки? Поправку не учитывай. Ответ в м/с, округли до десятых.
Дано: см; 36 оборотов за с.
Найти: – ?
Шаг 1. Радиус – в метры. 8 см = 8 : 100 = 0,08 м.
Шаг 2. Обороты в секунду. об/с.
Шаг 3. Путь чашки за один оборот. Длина круга м – примерно полметра.
Шаг 4. Путь за секунду – он же скорость. За секунду три круга: м/с, округляем до 1,5 м/с.
Полтора метра в секунду – примерно шаг неспешного пешехода. Для лёгкого ветерка, при котором флаг еле шевелится, годится.
Типичная ошибка. Подставить радиус в сантиметрах: , и написать «150,7 м/с» – это скорость самолёта на взлёте. Вторая частая ошибка – взять 36 оборотов вместо 3 оборотов в секунду: формула просит обороты за секунду.
Ответ: 1,5 м/с.
Своя задача по программе сферы, модуль 8
Реши сам
8.1. У анемометра на даче радиус вертушки 12 см. За 20 секунд она сделала 30 оборотов. С какой скоростью движутся чашки? Ответ в м/с, округли до десятых.
ответ8.2. Вертушка радиусом 6 см делает 5 оборотов в секунду. Поправочный коэффициент анемометра 2,5: ветер в 2,5 раза быстрее чашек. Какова скорость ветра в км/ч? Округли до целых.
ответЗадача 8.2 Порог в импульсах
На вертушке анемометра два магнита, так что за каждый оборот геркон даёт 2 импульса. Радиус вертушки 7 см, поправочный коэффициент 3. Программа 5 секунд считает импульсы и по ним решает, закрывать ли форточки: их закрывают, когда ветер 10 м/с и сильнее. а) За 5 секунд пришло 60 импульсов. Какова скорость ветра? Ответ в м/с, округли до десятых. б) Программисту удобнее сравнивать не скорость, а сразу число импульсов. При каком наименьшем числе импульсов за 5 секунд программа должна закрыть форточки?
Дано: 2 импульса на оборот; см м; ; окно счёта 5 с; порог 10 м/с.
Найти: а) при 60 импульсах – ?; б) наименьшее число импульсов для м/с – ?
Шаг 1. Импульсы – в обороты. Два импульса – один оборот: оборотов за 5 с.
Шаг 2. Обороты в секунду. об/с.
Шаг 3. Скорость чашки. Длина круга м. м/с.
Шаг 4. Скорость ветра. м/с, округляем: 7,9 м/с. Меньше 10 – форточки можно не закрывать.
Шаг 5. Пункт б): сколько «стоит» один импульс. Скорость ветра растёт вместе с числом импульсов: вдвое больше импульсов – вдвое сильнее ветер. Значит, каждый импульс добавляет одну и ту же долю скорости. В пункте а) 60 импульсов дали 7,9128 м/с (берём число до округления), на один импульс приходится м/с.
Шаг 6. Сколько импульсов нужно на 10 м/с. импульса.
Шаг 7. Округляем в нужную сторону. Импульсы бывают только целые. 75 импульсов – это ветер чуть меньше 10 м/с, закрывать ещё рано. 76 – уже чуть больше 10 м/с. Значит, порог – 76. Проверим прямым счётом: 76 импульсов – это 38 оборотов за 5 с, 7,6 об/с, м/с – и правда чуть больше десяти.
Типичная ошибка. Отбросить дробную часть и ответить 75. При 75 импульсах ветер 9,89 м/с – меньше порога, и форточки останутся открытыми. Здесь вопрос «наименьшее целое, при котором уже не меньше 10», поэтому округляем только вверх. Вышло бы 75,2 – ответ всё равно был бы 76. Вторая ошибка – забыть про два магнита и получить порог 38 импульсов: тогда форточки захлопнутся уже при ветре около 5 м/с.
Ответ: а) 7,9 м/с; б) 76 импульсов.
Своя задача по программе сферы, модуль 8
Реши сам
8.3. На вертушке один магнит, радиус вертушки 9 см, поправочный коэффициент 2,8. За 10 секунд плата насчитала 45 импульсов. Какова скорость ветра? Ответ в м/с, округли до десятых.
ответ8.4. Анемометр с двумя магнитами, радиус вертушки 8 см, поправочный коэффициент 3. Программа считает импульсы 4 секунды и при ветре 15 м/с и сильнее отправляет в чат тепличника предупреждение «шторм». При каком наименьшем числе импульсов за 4 секунды уйдёт предупреждение?
ответЗадача 8.3 Плавная форточка
Форточку открывает серва SG90. Чтобы рама не хлопала, её открывают плавно:
for (int a = 0; a <= 90; a += 3) {
okno.write(a);
delay(40);
}а) Сколько раз выполнится команда okno.write(a)? б) Сколько времени займёт открытие? Временем, которое тратят сами команды, пренебреги. Ответ в секундах. в) Во сколько раз это дольше, чем если бы серва сразу получила write(90) и повернулась со своей паспортной скоростью 0,1 с на 60°?
Дано: от 0 до 90 включительно, шаг 3°; пауза 40 мс на шаге; серва – 0,1 с на 60°.
Найти: число шагов – ?; время – ?; во сколько раз дольше – ?
Шаг 1. Какие значения примет a. 0, 3, 6, … , 87, 90. Условие a <= 90 пропускает и само 90 – знак «меньше или равно».
Шаг 2. Считаем их. От 0 до 90 шагами по 3 – это промежутков. Значений на одно больше, как столбов в заборе: . Команда write выполнится 31 раз.
Шаг 3. Время. После каждой команды – пауза 40 мс, в том числе после последней: мс. Переводим: 1240 мс = 1240 : 1000 = 1,24 с.
Шаг 4. Сколько бы заняла быстрая серва. 60° – за 0,1 с, значит, 90° – за полтора раза дольше: с.
Шаг 5. Сравниваем. , округлим до 8,3. Плавное открытие примерно в 8 раз дольше. Чуть больше секунды на открытие – как раз то, что нужно: форточка не хлопает, но и не ползёт минуту.
Типичная ошибка. Разделить 90 на 3 и ответить «30 раз, 1,2 с». Забыт первый шаг, a = 0: серва сначала встаёт на 0°, и на это тоже уходит пауза. Такая «потеря единицы» – самая частая ошибка в задачах про циклы.
Ответ: а) 31 раз; б) 1,24 с; в) в 8,3 раза.
Своя задача по программе сферы, модуль 7
Проверить себя можно, запустив цикл в Python – он работает так же:
shagi = list(range(0, 91, 3)) # от 0 до 90 включительно, шаг 3
print(len(shagi)) # 31
print(len(shagi) * 40 / 1000) # 1.24 (секунды)Реши сам
8.5. Вечером форточку закрывают так: for (int a = 180; a >= 60; a -= 2) { okno.write(a); delay(25); }. Сколько раз выполнится okno.write(a) и сколько миллисекунд займёт закрытие?
8.6. Угол сервы задаёт ручка потенциометра: int a = map(analogRead(A0), 0, 1023, 0, 180);. а) На какой угол встанет серва, если analogRead вернул 700? б) При каком наименьшем значении analogRead серва встанет на 90°?
Задача 8.4 Вентилятор на 60 процентов
Теплица – прямоугольный «домик» 4 м в ширину, 6 м в длину, средняя высота 2,5 м. Вентилятор с DC-мотором на полной мощности (analogWrite(9, 255)) прогоняет 480 м³ воздуха в час. Автоматика включила его командой analogWrite(9, 153). Считай, что поток воздуха пропорционален числу ШИМ. а) Сколько процентов мощности получил вентилятор? б) За сколько минут он сменит весь воздух в теплице один раз? в) Сколько раз в час сменится воздух?
Дано: м; 480 м³/ч при 255; ШИМ 153.
Найти: процент – ?; время смены воздуха – ?; обменов в час – ?
Шаг 1. Процент мощности. , то есть 60 %.
Шаг 2. Производительность при 60 %. м³/ч.
Шаг 3. Объём теплицы. м³.
Шаг 4. Время смены воздуха. ч. Переводим в минуты: мин.
Шаг 5. Обменов в час. В часе 60 мин, один обмен – 12,5 мин: раза. То же самое выйдет, если разделить производительность на объём: .
Прикинь для сравнения полную мощность: мин. На 60 % вентилятор работает медленнее, и 12,5 минуты вместо 7,5 выглядят честно.
Типичная ошибка. Оставить ответ в часах («0,2 мин») или умножить 0,2083 на 100 вместо 60 и получить «20,8 мин». Час – это 60 минут, а не 100. Ещё одна ловушка – считать процент от 100, а не от 255: analogWrite(9, 153) – это не 153 %, а 60 %.
Ответ: а) 60 %; б) 12,5 мин; в) 4,8 раза.
Своя задача по программе сферы, модуль 7
Реши сам
8.7. На полной мощности (analogWrite 255) вентилятор делает 1500 оборотов в минуту. Сколько оборотов в минуту он будет делать при analogWrite(9, 102)? Скорость считай пропорциональной числу ШИМ.
8.8. Теплица 3 × 5 м, средняя высота 2 м. Агроном хочет, чтобы воздух в ней сменялся каждые 10 минут. Вентилятор на полной мощности даёт 450 м³/ч. Какое число надо написать в analogWrite, чтобы получить нужный поток? Поток считай пропорциональным числу ШИМ.
Задача 8.5 Панель на лето
Солнечную панель метеостанции в Новосибирске (широта 55°) переставляют по сезонам. На какой угол к горизонту её надо наклонить, чтобы 22 июня в полдень лучи падали на неё перпендикулярно? Какой наклон понадобится 22 декабря? На сколько градусов надо изменить наклон при переходе от летней настройки к зимней?
Дано: широта 55°; летом солнце в полдень на 23° выше, чем в равноденствие, зимой на 23° ниже.
Найти: наклон 22 июня – ?; наклон 22 декабря – ?; разница – ?
Шаг 1. Высота солнца в равноденствие. .
Шаг 2. Высота солнца 22 июня. .
Шаг 3. Наклон панели летом. Лучи должны идти перпендикулярно панели, значит, она отклонена от горизонта на . Почему так, видно на рисунке к разделу 8.4: луч, панель и земля образуют треугольник. Угол между лучом и панелью 90°, между лучом и землёй 58°, а три угла треугольника в сумме дают 180°. На наклон панели остаётся .
Шаг 4. Зимой. Солнце: . Наклон: .
Шаг 5. Разница. .
Зимой панель стоит почти вертикально – так и есть: зимнее солнце в Сибири низкое и светит сбоку, прямо в «стену».
Типичная ошибка. Поставить панель на угол, равный высоте солнца: летом на 58°. Тогда лучи падают вовсе не перпендикулярно: между ними и перпендикуляром к панели выйдет , и панель потеряет около десятой части света. Проверяй себя рисунком: солнце высоко – панель лежит почти плоско.
Ответ: летом 32°, зимой 78°, изменить на 46°.
Своя задача по программе сферы, модуль 8
Реши сам
8.9. Город стоит на широте 54°. На какой угол к горизонту наклонить панель, чтобы в полдень в день равноденствия лучи падали на неё перпендикулярно?
ответ8.10. Панель на теплице под Новосибирском (широта 55°) наклоняет серва: при write(0) панель лежит горизонтально, а угол сервы равен углу наклона панели. Летом в полдень (22 июня) стоит write(32). Какое число надо написать в write, чтобы панель смотрела прямо на полуденное солнце в день осеннего равноденствия?
Задача 8.6* *. Стоит ли ставить трекер
Метеостанции нужна солнечная панель, которая в полную мощность (лучи перпендикулярно) даёт 20 Вт. Можно поставить её неподвижно, чтобы она смотрела на полуденное солнце, а можно на трекер. Электроника и серва трекера расходуют в среднем 1,5 Вт всё светлое время. Возьми модель из раздела 8.4: солнце светит одинаково ярко с 6:00 до 18:00, смещается на 15° в час, день делим на куски по 2 часа и берём угол в середине куска. Долю света бери из таблицы в разделе 8.4. а) Сколько ватт-часов за день даст неподвижная панель? б) Сколько ватт-часов останется от трекера, если вычесть его собственный расход? в) На сколько процентов трекер выгоднее? Округли до целых.
Дано: Вт; день 12 ч, куски по 2 ч; 15° в час; расход трекера 1,5 Вт; таблица долей.
Найти: – ?; – ?; выигрыш в % – ?
Шаг 1. Углы в серединах кусков. Середины кусков – 7, 9, 11, 13, 15 и 17 часов. От полудня до 7:00 – 5 часов, солнце в стороне на . До 9:00 – 3 часа, . До 11:00 – 1 час, 15°. После полудня – те же 15°, 45°, 75°.
Шаг 2. Доля света по таблице. 75° – 26 %, 45° – 71 %, 15° – 97 %. По кускам: 26, 71, 97, 97, 71, 26 %.
Шаг 3. Мощность неподвижной панели в каждом куске. 26 % от 20 Вт – это Вт; дальше Вт и Вт. Каждая мощность держится 2 часа.
Шаг 4. Энергия неподвижной панели. Одну половину дня: Вт·ч. Вторая половина такая же: Вт·ч.
Шаг 5. Трекер. Панель всё время смотрит на солнце: Вт·ч. Собственный расход: Вт·ч. Остаётся Вт·ч.
Шаг 6. Выигрыш. Разница Вт·ч. В процентах от неподвижной панели: %.
В модели трекер выгоднее на 43 %. В жизни меньше: наша модель считает утреннее солнце таким же ярким, как полуденное, а оно слабее. Так что это оценка «не больше», а не точное обещание.
Типичная ошибка. Забыть про вторую половину дня и получить 77,6 Вт·ч. Другая ошибка – сравнивать проценты с разной основой: «трекер даёт 240, неподвижная 155,2, разница 84,8 – значит, на 84,8 %». Во-первых, забыт расход трекера, во-вторых, проценты считают от того, с чем сравниваем, – от 155,2 Вт·ч, а не от 100.
Ответ: а) 155,2 Вт·ч; б) 222 Вт·ч; в) на 43 %.
Своя задача по программе сферы, модуль 8
Реши сам
8.11. В той же модели маленькая панель на 5 Вт, а электроника трекера расходует 1 Вт всё светлое время (12 ч). Сколько ватт-часов за день даст неподвижная панель и сколько останется от трекера за вычетом его расхода? На сколько ватт-часов трекер выгоднее?
ответ8.12*.* В той же модели панель на 10 Вт. При каком расходе электроники трекера (в ваттах, всё светлое время – 12 ч) трекер перестаёт давать выигрыш по сравнению с неподвижной панелью? Округли до десятых.
ответЗадача 8.7* *. Метеостанция решает за форточку
В теплице температуру меряет DHT11, на улице – метеостанция с анемометром и термометром. Угол форточки программа выбирает по правилам, проверяя их сверху вниз:
- Ветер 12 м/с и сильнее – форточка закрыта (0°).
- Иначе угол считается по температуре в теплице: до 24 °C включительно – 0°, за каждый градус выше 24 – плюс 15°, но не больше 90°.
- Если на улице холоднее +10 °C, угол из правила 2 урезается до 30° (если он больше 30°).
а) Метеостанция стоит в Новосибирске круглый год, зимой морозы до −35 °C. Годится ли для уличного термометра датчик DHT11? Ответ «да» или «нет». б) Вот записи за один майский день. Найди угол форточки в каждый момент. Ответ – четыре числа через запятую.
| Время | В теплице, °C | На улице, °C | Ветер, м/с |
|---|---|---|---|
| 8:00 | 22 | 6 | 3 |
| 11:00 | 28 | 12 | 5 |
| 14:00 | 31 | 15 | 13 |
| 17:00 | 27 | 9 | 6 |
Дано: три правила по порядку; таблица на 4 момента; DHT11 меряет от 0 до 50 °C.
Найти: годится ли DHT11 на улицу; угол форточки в 8:00, 11:00, 14:00, 17:00.
Шаг 1. Пункт а). По таблице из раздела 8.1 DHT11 меряет температуру от 0 °C. Зимой на улице до −35 °C – датчик выйдет за свой диапазон. Не годится, нужен DHT22 (он работает от −40 °C) или другой морозостойкий датчик.
Шаг 2. 8:00. Ветер 3 м/с – меньше 12, первое правило не срабатывает. В теплице 22 °C – не выше 24, по второму правилу 0°. На улице 6 °C – холоднее 10, но урезать нечего: 0° и так меньше 30°. Угол 0°.
Шаг 3. 11:00. Ветер 5 м/с – дальше. В теплице 28 °C: градуса, – не больше 90°, оставляем. На улице 12 °C – не холоднее 10, урезать не нужно. Угол 60°.
Шаг 4. 14:00. Ветер 13 м/с – 12 и больше. Первое правило: форточка закрыта, остальные правила не смотрим. Угол 0°, хотя в теплице 31 °C. Проветривать придётся вентилятором.
Шаг 5. 17:00. Ветер 6 м/с – дальше. В теплице 27 °C: . На улице 9 °C – холоднее 10, угол урезается до 30°. Угол 30°.
Так выглядят те же правила в программе. Функция получает три числа и возвращает угол:
int ugol(float tVnutri, float tUlica, float veter) {
if (veter >= 12) return 0; // правило 1: шторм – закрыто
int a = 0;
if (tVnutri > 24) a = (tVnutri - 24) * 15; // правило 2
if (a > 90) a = 90;
if (tUlica < 10 && a > 30) a = 30; // правило 3: холодно снаружи
return a;
}return сразу возвращает ответ и выходит из функции, поэтому при сильном ветре до температуры дело не доходит.
Типичная ошибка. В 14:00 посчитать угол по температуре: , урезать до 90° и ответить «90». Правило про ветер стоит первым и отменяет всё остальное. В 17:00 наоборот – забывают третье правило и пишут 45°.
Ответ: а) нет; б) 0, 60, 0, 30.
По мотивам задачи образовательного курса НТО Junior 2023/24, сфера «Технологии и среда обитания», «Программирование для умного сити-фермера»
Реши сам
8.13. Правила те же, что в задаче 8.7. Найди угол форточки в четыре момента: а) в теплице 33 °C, на улице 18 °C, ветер 4 м/с; б) 26 °C, 8 °C, 11 м/с; в) 29 °C, 7 °C, 3 м/с; г) 25 °C, 20 °C, 12 м/с. Ответ – четыре числа через запятую.
ответ8.14*.* Правила те же, что в задаче 8.7, но скорость ветра программа получает от анемометра задачи 8.2: два магнита, радиус 7 см, поправка 3, счёт импульсов 5 секунд. В теплице 30 °C, на улице 14 °C. Какой угол выберет программа, если за 5 секунд пришло а) 80 импульсов; б) 95 импульсов?
ответОтветы и решения
Сначала реши задачу сам и только потом сверяйся. Не сошлось – найди в решении шаг, на котором твой путь разошёлся с нашим.
К главе 1. Растение как живая система
1.1. Ответ: 1356.
к условию1.2. Ответ: 1246.
Подсказка: про утверждение 5 вспомни график насыщения из раздела 1.2 – слово «обязательно» его выдаёт.
1.3. Ответ: 21345 (анемометр лишний).
к условию1.4. Ответ: БВА.
Подсказка: проверь каждую теплицу по всем трём столбцам таблицы норм – подходит только одна культура.
1.5. Ответ: 125.
Подсказка: ни углекислый газ, ни кислород, ни корни в этом опыте не проверяли – менялся только свет.
1.6. Ответ: воздух – банки 2 и 3; тепло – банки 2 и 4.
Подсказка: сравнивают две банки, которые отличаются одним-единственным условием; банка 1 отличается от банки 2 водой.
1.7. Ответ: тепло; 7,2 кг.
к условию1.8. Ответ: а) свет и азот; б) 3,0 кг.
Подсказка: 3,4 кг из 4 кг – это 85 %, поэтому подтянуть нужно всё, что ниже 85 %; после ламп короткой доской станет азот.
1.9. Ответ: 9 ч 39 мин.
к условию1.10. Ответ: в 21:46; 136 мин.
Подсказка: утренней досветки нет, поэтому 14 часов света отсчитывай от восхода.
1.11. Ответ: 20 ppm в час; 550 ppm.
к условию1.12. Ответ: 6 ppm в минуту.
Подсказка: при свете датчик видит разницу: фотосинтез забирает газ, а дыхание в это же время добавляет 2 ppm в минуту, так что фотосинтез .
1.13. Ответ: 70 %; при 14 °C.
Подсказка: здесь обратная задача – делим пар на предел: %.
1.14. Ответ: а) 22 °C; б) 150 г; в) да, выпадет.
Подсказка: пара в воздухе г/м³, а при +20 °C предел только 17,3 г/м³.
К главе 2. Микроклимат теплицы: считаем
2.1. Ответ: 0,185 %.
к условию2.2. Ответ: включатся; не хватает 700 лк.
Подсказка: сначала переведи порог в люксы: 4,5 клк = 4500 лк.
2.3. Ответ: 60 %; после остывания – 79 %.
к условию2.4. Ответ: на 11 процентных пунктов; на 20 %.
к условию2.5. Ответ: 9 ч 30 мин; 40 % суток.
к условию2.6. Ответ: 5 ч 23 мин.
Подсказка: здесь света больше, чем нужно: найди длину дня и вычти из неё 12 ч.
2.7. Ответ: 67 %.
Подсказка: спрашивают долю замеров в норме; 27 °C – ещё норма.
2.8. Ответ: 6 ч; 25 %.
к условию2.9. Ответ: 23.
Подсказка: в 23:10 лампы не горят, хотя темно: время вне промежутка с 6:00 до 22:00.
2.10. Ответ: 46.
Подсказка: 0,16 % = 1600 ppm; для «или» хватает одной верной части.
2.11. Ответ: 104 г.
к условию2.12. Ответ: 37 мин.
Подсказка: 0,25 л = 250 мл = 250 г пара в час; пара нужно добавить 151,5 г.
2.13. Ответ: включался 2 раза; работал 90 мин.
к условию2.14. Ответ: 35 мин; 58 % часа.
Подсказка: при 84 % вентилятор ещё не включается, а после 13:50 работает до конца часа.
К главе 3. Графики и таблицы агронома
3.1. Ответ: на 18 °C; в среднем на 2,25 °C в час.
к условию3.2. Ответ: с 6:00 до 8:00, по 3 °C в час.
Подсказка: найди изменение на каждом двухчасовом участке и раздели на 2 – самый крутой участок даёт самую большую скорость.
3.3. Ответ: средняя влажность 41 %, размах 12 %.
к условию3.4. Ответ: 17 °C.
Подсказка: задача обратная: сумма пяти замеров равна , вычти из неё четыре известных.
3.5. Ответ: 60; 12; 3.
Подсказка: ">=12" считает и само число 12.
3.6. Ответ: 12.
Подсказка: в B2:B25 24 клетки; B2;B25 – всего две клетки; полусумма максимума и минимума – не среднее.
3.7. Ответ: 50.
Подсказка: – мало, – уже хватает на 980, а 100 и 200 сделают график мельче.
3.8. Ответ: с 18:00 до 20:00, показание упало на 380.
Подсказка: участок с 12:00 до 14:00 почти такой же крутой (на 370) – сравни все шесть разностей.
3.9. Ответ: в 15:00.
к условию3.10. Ответ: в 18:36.
Подсказка: 1,6 ч – это 1 ч 36 мин, а не 1 ч 60 мин.
3.11. Ответ: в теплице Б; в А потеплело на 6 °C, в Б – на 15 °C.
Подсказка: сначала цена клетки: °C у А и °C у Б.
3.12. Ответ: у Ани 23 °C, у Бори 19,25 °C; завышено у Ани.
Подсказка: у Ани шесть из девяти записей сделаны с 9:00 до 14:00, в самые тёплые часы, – дневное тепло посчитано много раз.
К главе 4. Вода и полив
4.1. Ответ: 24 л; слой 4 мм.
Подсказка: 1 л на 1 м² – это слой в 1 мм.
4.2. Ответ: 48 л в сутки; на 3 полных суток.
Подсказка: 150 : 48 = 3,125 – спрашивают полные сутки, округляем вниз.
4.3. Ответ: 45 л.
к условию4.4. Ответ: 21,2 мин.
Подсказка: радиус 30 см = 3 дм, высота 9 дм; объём около 254 л.
4.5. Ответ: на 30 %.
к условию4.6. Ответ: 600 л; 210 л.
Подсказка: 390 л – это 65 % от прежнего расхода.
4.7. Ответ: 5880 Па.
к условию4.8. Ответ: в баке А, в 1,6 раза.
Подсказка: литры не нужны – давление на дно зависит только от высоты воды.
4.9. Ответ: 2346.
к условию4.10. Ответ: 17 л.
Подсказка: объём испарившегося слоя – площадь круга воды, умноженная на толщину слоя; удобно считать в дециметрах (радиус 3 дм, слой 0,06 дм).
4.11. Ответ: 60 мин.
к условию4.12. Ответ: 19,7 мин; 24 %.
Подсказка: капельницы берут 2,4 л/мин; наполнение – 150 л при 7,6 л/мин, спад – 150 л при 2,4 л/мин.
К главе 5. Электричество, энергия и датчики
5.1. Ответ: 500 Ом.
Подсказка: 12 мА = 0,012 А.
5.2. Ответ: 13,6 мА – выдержит; с резистором 22 Ом – 136,4 мА, светодиод сгорит.
к условию5.3. Ответ: 880 Ом последовательно; 55 Ом параллельно.
к условию5.4. Ответ: 10 мА; 3 В на резисторе 300 Ом и 2 В на резисторе 200 Ом.
Подсказка: сначала общее сопротивление 500 Ом, потом ток, потом для каждого резистора.
5.5. Ответ: −9,9 °C.
Подсказка: напряжение меньше 0,5 В – значит, на улице мороз и температура выйдет отрицательной.
5.6. Ответ: 56 %.
Подсказка: здесь во влажной земле число меньше, чем в сухой; подставь в формулу калибровки как есть: .
5.7. Ответ: 730.
Подсказка: напряжение на фоторезисторе: В.
5.8*. Ответ: 568; условие 1.
Подсказка: теперь A0 меряет напряжение на нижнем резисторе, а оно в темноте падает.
5.9. Ответ: 9 Вт; 54 Вт·ч.
к условию5.10. Ответ: 13,3 ч; не хватит.
Подсказка: 2,4 А·ч = 2400 мА·ч.
5.11. Ответ: 0,558 кВт·ч.
к условию5.12. Ответ: 34.
Подсказка: при параллельном включении токи складываются: нужно 12 В и не меньше 1,05 А.
5.13. Ответ: 2000 Вт (2 кВт); 20 кВт·ч.
к условию5.14*. Ответ: −5,0 °C; после утепления – 3,6 °C.
Подсказка: задача обратная: найди, на сколько градусов 2000 Вт могут «перекрыть» разницу ( °C), и прибавь к −25 °C.
К главе 6. Программирование умной теплицы
6.1. Ответ: 1,5 л; робот окажется у горшка 11.
к условию6.2. Ответ: программа А – горшки 1, 3, 4, 6, 800 мл; программа Б – горшки 3, 4, 6, 9, тоже 800 мл.
Подсказка: в программе Б робот сначала уезжает, поэтому горшок 1 он не проверяет, зато доезжает до горшка 9.
6.3. Ответ: 255, 100, 100, 0, 0.
Подсказка: ровно 800 не больше 800, поэтому первая ветка не сработает.
6.4. Ответ: 223; синий не загорится никогда.
Подсказка: всё, что меньше 18, меньше и 26, – такую температуру перехватит первая ветка.
6.5. Ответ: 400 мл; через 226 с.
Подсказка: круг с поливом длится 38 с, без полива – 30 с; до восьмой проверки 7 кругов, из них два с поливом.
6.6. Ответ: 20000 (20 с).
к условию6.7. Ответ: строка 8, нужно door == HIGH; вентилятор не включится никогда, даже при закрытой двери.
Подсказка: door = HIGH кладёт в door значение HIGH, и условие каждый раз оказывается верным.
6.8. Ответ: после 2-й, 3-й и 4-й проверки (трёх из четырёх) – насос включился и больше не выключается; нужна ветка else { digitalWrite(PUMP, LOW); }.
6.9. Ответ: БГДЕАВЖ.
к условию6.10. Ответ: 1780000 (1780 с).
Подсказка: 20 с работы увлажнителя тоже входят в 30 минут.
6.11. Ответ: 2 раза; после последнего замера увлажнитель выключен.
к условию6.12. Ответ: а) 70 мин; б) 30 мин.
к условию6.13. Ответ: 001122211101; режим менялся 5 раз.
к условию6.14. Ответ: «тревога» – из неё не выходит ни одной стрелки. Выход, например: «нажата кнопка сброса / погасить красный» → «ждём».
к условиюК главе 7. Сигналы и обработка данных
7.1. Ответ: 37 отсчётов.
к условию7.2. Ответ: на 10 суток; на 1 сутки.
Подсказка: 2880 · 5 мин = 14 400 мин = 240 ч; 2880 · 30 с = 86 400 с – это одни сутки.
7.3. Ответ: 4 числа: 1400, 1467, 1533, 1667 лк.
к условию7.4. Ответ: стёртый отсчёт 420 лк; второе среднее 433,3 лк.
Подсказка: задача обратная: сумма первого окна равна 3 · 420 = 1260, из неё вычти два известных отсчёта.
7.5. Ответ: 2 ложных включения (3-я и 7-я минуты); настоящее – на 13-й минуте.
Подсказка: здесь насос включается, когда влажность становится ниже порога, так что ложные срабатывания дают выбросы вниз.
7.6. Ответ: на 8-й минуте; на 5 минут позже (по старому правилу – на 3-й минуте).
Подсказка: счётчик «подряд» сбрасывается, как только отсчёт оказался ниже 28 °C.
7.7. Ответ: 3 с; 20 капель в минуту.
к условию7.8. Ответ: 150 оборотов в минуту.
Подсказка: фронты – на 3, 11, 19 и 27-м отсчётах; период 8 отсчётов = 0,4 с.
7.9. Ответ: 21 и 13.
к условию7.10. Ответ: а) 7 битов; б) 8 битов; в) 14 с.
Подсказка: с шагом 0,5 % значений 201, а уже мало.
7.11. Ответ: 2,5 ч.
к условию7.12. Ответ: 18,75 °C.
Подсказка: найди сумму всех отсчётов: 12 · 23,5 = 282, потом замени в ней 83 на медиану 26.
7.13. Ответ: а) суточное – 1/24 раза в час (около 0,04), от форточки – 3 раза, дрожь датчика – 360 раз в час; б) 14 °C.
Подсказка: после фильтра остаётся одна суточная волна, а её размах – две амплитуды.
7.14. Ответ: окно 6; 507,5.
к условиюК главе 8. Метеостанция и автоматика
8.1. Ответ: 1,1 м/с.
к условию8.2. Ответ: 17 км/ч.
Подсказка: скорость чашки 1,884 м/с, ветра – в 2,5 раза больше, потом умножь на 3,6.
8.3. Ответ: 7,1 м/с.
к условию8.4. Ответ: 80 импульсов.
к условию8.5. Ответ: 61 раз; 1525 мс.
Подсказка: цикл идёт вниз: от 180 до 60 – это 60 шагов по 2°, значений на одно больше.
8.6. Ответ: а) 123°; б) 512.
Подсказка: при 511 выходит 89,9, а map отбрасывает дробную часть – получается 89.
8.7. Ответ: 600 оборотов в минуту.
к условию8.8. Ответ: 102.
Подсказка: задача обратная: объём 30 м³ за 10 мин – это 180 м³/ч, то есть 40 % от 450 м³/ч.
8.9. Ответ: 54°.
Подсказка: в равноденствие наклон панели равен широте.
8.10. Ответ: 55.
к условию8.11. Ответ: неподвижная – 38,8 Вт·ч; трекер – 48 Вт·ч; выгоднее на 9,2 Вт·ч.
к условию8.12. Ответ: 3,5 Вт.
Подсказка: неподвижная панель даёт 77,6 Вт·ч, трекер без расхода – 120 Вт·ч; разницу 42,4 Вт·ч раздели на 12 ч.
8.13. Ответ: 90, 30, 30, 0.
Подсказка: в б) по жаре выходит 30°, а правило 3 урезает только то, что больше 30°; в г) ветер 12 м/с – это уже «12 и сильнее».
8.14. Ответ: а) 90°; б) 0°.
Подсказка: один импульс – это 0,1319 м/с ветра (задача 8.2): 80 импульсов – около 10,6 м/с, ещё не шторм; 95 импульсов – около 12,5 м/с.
Справочник
Всё, что может понадобиться под рукой во время решения: числа и нормы, перевод единиц, формулы и правила из глав, мини-шпаргалки по Arduino, Tinkercad, ПРИМС и таблицам, словарик и все «Запомни» из глав на нескольких страницах.
Числа, которые используются в книге
Если в условии задачи на отборе дано другое значение, бери его из условия.
| Величина | Значение |
|---|---|
| Arduino Uno: напряжение питания датчиков | 5 В |
analogRead – что возвращает |
целое число от 0 (0 В) до 1023 (5 В) |
analogWrite (ШИМ) – что принимает |
целое число от 0 (выключено) до 255 (полная мощность) |
| Обычный светодиод: напряжение / допустимый ток | около 2 В / 20 мА |
| Термометр TMP36 в Tinkercad: что умеет измерять | от −40 до 125 °C |
| Плотность воды | 1 кг/л = 1 г/мл = 1000 кг/м³ |
| Ускорение свободного падения | Н/кг |
| Углекислый газ в уличном воздухе | около 420–430 ppm (0,042–0,043 %) |
| Число | 3,14 (кнопка на калькуляторе) |
Микроклимат теплицы: ориентиры
Нормы для каждой культуры свои и меняются с возрастом растения. Ниже – ориентиры для многих тепличных овощей (томаты, огурцы, перцы), примерно. На отборе всегда бери нормы из условия задачи.
| Параметр | Для многих культур примерно |
|---|---|
| Температура воздуха днём | 20–28 °C |
| Температура воздуха ночью | на 5–10 °C ниже дневной |
| Относительная влажность воздуха | 60–80 % |
| Углекислый газ при подкормке в теплице | 600–1000 ppm |
Жара опаснее, чем кажется: выше 30–32 °C пыльца у томатов развивается плохо, а при 35 °C и выше завязей почти не будет, даже если листья выглядят бодро.
Перевод единиц
| Что | Как переводить |
|---|---|
| Время | 1 сут = 24 ч · 1 ч = 60 мин = 3600 с · 1 с = 1000 мс |
| Объём | 1 м³ = 1000 л · 1 л = 1 дм³ = 1000 см³ = 1000 мл · 1 мл = 1 см³ |
| Масса | 1 т = 1000 кг · 1 кг = 1000 г |
| Длина | 1 м = 100 см = 1000 мм · 1 км = 1000 м |
| Площадь | 1 м² = 10 000 см² · 1 а (сотка) = 100 м² · 1 га = 10 000 м² |
| Напряжение | 1 В = 1000 мВ |
| Ток | 1 А = 1000 мА |
| Сопротивление | 1 кОм = 1000 Ом |
| Мощность и энергия | 1 кВт = 1000 Вт · 1 кВт·ч = 1000 Вт·ч |
| Ёмкость аккумулятора | 1 А·ч = 1000 мА·ч |
| Доли газа в воздухе | 1 % = 10 000 ppm · 1 ppm = 0,0001 % |
| Давление | 1 кПа = 1000 Па |
| Скорость | 1 м/с = 3,6 км/ч |
Совет. Перед тем как считать, выпиши все числа из условия и переведи их в одни единицы: миллилитры с литрами, минуты с секундами, миллиамперы с амперами не складываются и не делятся друг на друга.
Формулы и правила
Если в условии задачи правило записано по-своему, решай по условию.
Растение в двух строчках
Фотосинтез идёт в зелёных листьях и только на свету:
Дыхание идёт во всех живых клетках растения днём и ночью, со светом и без:
Поэтому ночью в закрытой теплице углекислого газа становится больше, а днём, на солнце, растения его «съедают». Воду и растворённые минеральные вещества растение берёт корнями из почвы – это корневое питание. Вода поднимается по стеблю и испаряется через листья.
Проценты и пропорции
| Что | Как найти | Пример |
|---|---|---|
| процентов от числа | 15 % от 200 л: л | |
| Какую часть составляет от | 18 л из 24 л: | |
| На сколько процентов выросло | с 60 до 75: | |
| Пропорция: одно растёт во столько же раз, во сколько другое | 3 л на 4 куста, на 10 кустов: л |
Проценты процентам рознь. Влажность воздуха поднялась с 60 % до 75 %. Она выросла на 15 процентных пунктов – это разность. А если спросят «на сколько процентов выросла», считай от прежнего значения: на 25 %. Читай вопрос внимательно.
Время и интервалы
Сколько прошло: из позднего времени вычесть раннее. Если минут не хватает, займи час: 1 ч = 60 мин. С 06:40 до 20:15: , и .
Через полночь: до полуночи плюс после полуночи. С 22:30 до 05:00 – это 1 ч 30 мин + 5 ч = 6 ч 30 мин.
Сколько замеров за сутки: датчик опрашивают раз в 10 минут, в сутках минут, значит, замеров .
Среднее и графики
| Что | Как найти |
|---|---|
| Среднее арифметическое | сложить все значения и разделить на их количество |
| Размах | наибольшее значение минус наименьшее |
| Сколько раз выше порога | пересчитать значения больше порога (или «не меньше» – смотри, что в условии) |
Пример. Температура за пять замеров: 18, 21, 24, 27, 30 °C. Среднее °C, размах °C.
Как читать график:
- Сначала подписи осей и единицы: что отложено по горизонтали (обычно время), что по вертикали.
- Потом цена деления: сколько единиц в одной клетке. Посчитай по двум подписанным делениям, не угадывай.
- Растёт линия – величина увеличивается, горизонтальная – не меняется, круче наклон – быстрее меняется.
- Норма на графике – горизонтальная полоса или линия. Время, когда величина вне нормы, – участки графика за её пределами.
Вода и полив
| Что | Формула | Пример |
|---|---|---|
| Объём бака-бруска | бак см: см³ л | |
| Объём бака-цилиндра | радиус 20 см, высота 50 см: см³ л | |
| Сколько воды прошло | объём = расход × время | 2,5 л/мин за 12 мин: 30 л |
| Сколько времени лить | время = объём : расход | 120 л при 2,5 л/мин: 48 мин |
| Масса воды | 1 л весит 1 кг | 120 л – это 120 кг |
Давление – это сила, делённая на площадь, на которую она давит:
где – давление в паскалях (Па), – сила в ньютонах (Н), – площадь в м². Сила 100 Н на площади 0,5 м² даёт давление Па. Одна и та же сила на маленькой площади давит сильнее: поэтому иголка колет, а лыжи не проваливаются в сугроб.
Для любопытных: давление столба воды. Чем выше бак над грядкой, тем сильнее вода давит внизу:
где – плотность воды (1000 кг/м³), Н/кг, – высота столба воды в метрах. Бак на 2 м выше крана: Па, почти 20 кПа.
Испарение и конденсация. Вода испаряется быстрее, когда теплее, суше и ветренее. Пар снова становится каплями на холодном: на стекле теплицы холодной ночью, на крышке кастрюли, на бутылке из холодильника.
Электричество
Закон Ома: ток тем больше, чем больше напряжение, и тем меньше, чем больше сопротивление:
где – ток в амперах (А), – напряжение в вольтах (В), – сопротивление в омах (Ом). 5 В на резисторе 220 Ом: А мА. Перед делением переведи мА в А, а кОм в Ом.
Резистор для светодиода. Из 5 В около 2 В берёт себе светодиод, остальное должно «упасть» на резисторе. Ток нужен не больше 20 мА = 0,02 А:
Если такого номинала нет, берут ближайший больший: 220 Ом. Ток станет чуть меньше, светодиод будет гореть чуть тусклее, но не сгорит.
| Соединение | Сопротивление | Ток и напряжение |
|---|---|---|
| Последовательно (одно за другим) | ток везде один, напряжения складываются | |
| Параллельно (рядом, «лесенкой») | напряжение одно, токи складываются |
Три резистора по 1 кОм последовательно – 3 кОм, параллельно – около 333 Ом, меньше, чем один. Две одинаковые кнопки последовательно работают как «И» (свет горит, только если нажаты обе), параллельно – как «ИЛИ» (хватит любой).
Мощность и энергия:
Солнечная панель даёт 6 В и 0,3 А: мощность Вт. За 5 часов она выработает Вт·ч.
На сколько хватит аккумулятора: время = ёмкость : ток. Аккумулятор 2000 мА·ч, устройство берёт 250 мА: ч. Единицы должны совпасть: мА·ч делим на мА.
Датчик → число → градусы
Датчик превращает свет, тепло или влажность в напряжение. Arduino измеряет напряжение на аналоговом входе и выдаёт число от 0 до 1023 – показание analogRead. Это ещё не градусы и не проценты, а номер ступеньки.
| Что | Формула | Пример |
|---|---|---|
| Число → напряжение | : В | |
| Напряжение → число | , дробную часть отбросить | В: , analogRead даст 153 |
| TMP36: напряжение → температура | В: °C | |
| LM35: напряжение → температура | В: °C |
Словами: у обоих термометров 10 мВ на каждый градус, но TMP36 при 0 °C выдаёт уже 0,5 В – так он может показывать и мороз. В некоторых примерах делят не на 1023, а на 1024 – разница в сотых долях градуса, решай так, как в условии.
Проверка на числах из Tinkercad: при 25 °C на термометре analogRead даёт 153, а программа по формулам выше показывает °C. Небольшая неточность – от того, что число целое.
Фоторезистор меняет сопротивление от света. Чтобы Arduino его «увидел», его ставят в делитель напряжения вместе с обычным резистором (часто 10 кОм), а середину соединяют с аналоговым входом. Зависимость показаний от освещённости неравномерная: на одном краю число прыгает сотнями, на другом едва меняется. В люксы его переводить не обязательно: пороги для теплицы подбирают прямо в числах analogRead.
Калибровка датчика влажности почвы. Замеряем показание в сухой почве и в мокрой , а дальше считаем долю пути от «сухо» до «мокро»:
Сухо – 180, мокро – 820, сейчас – 500: . Формула работает и у датчиков, где мокрой почве соответствует меньшее число.
В Arduino то же самое делает map(N, 180, 820, 0, 100). Учти: map считает в целых числах и отбрасывает дробную часть. map(300, 0, 1023, 0, 100) даёт 29, а не 29,3 и не 30.
Автоматика: пороги и ШИМ
Порог. Сравнили показание с числом – приняли решение. Внимательно со знаком: при пороге 28 °C запись t > 28 при 28 градусах на термометре ничего не включит, а t >= 28 – включит.
Два порога (гистерезис). Если форточку открывать при 28 °C и закрывать тоже при 28 °C, то около 28 она будет хлопать каждую секунду. Поэтому берут два порога: открыть при 28 °C и выше, закрыть только при 24 °C и ниже. Между ними ничего не меняем – форточка остаётся как была.
Цепочка «если – иначе если – иначе» проверяется сверху вниз, и срабатывает только первая верная ветка:
| Условие | Цвет индикатора |
|---|---|
| синий: холодно | |
| иначе, если | зелёный: норма (здесь уже точно ) |
| иначе | красный: жарко () |
ШИМ. analogWrite не даёт «половину напряжения», а быстро-быстро включает и выключает вывод. Доля времени включения задаёт мощность:
analogWrite(9, 191) – около 75 %. Для 40 % нужно .
Сигналы
| Что | Формула или правило | Пример |
|---|---|---|
| Период – время одного полного колебания | Гц: с = 20 мс | |
| Частота – сколько колебаний в секунду, в герцах | с: Гц | |
| Амплитуда | наибольшее отклонение от среднего уровня | сигнал от 1 до 4 В: амплитуда 1,5 В |
| Сколько разных значений у битов | 10 бит – 1024 (analogRead), 8 бит – 256 (ШИМ) |
|
| Детектирование по уровню | событие – когда сигнал перешёл порог (направление и строгость порога задаёт условие) | считаем, сколько раз показание стало выше 600 |
Сглаживание скользящим средним. Каждую точку заменяем средним её и соседних по окну. Показания 20, 21, 35, 22, 23 с окном 3: ; ; . Случайный скачок 35 превратился в плавный горбик. Так работает простейший фильтр низких частот: быстрые рывки гасит, медленные изменения пропускает.
Метеостанция и солнце
Анемометр – вертушка с чашечками. Датчик считает её обороты. Одна чашечка за оборот проходит длину окружности , поэтому её скорость:
где – радиус вертушки в метрах, – оборотов в секунду. м, 2 оборота в секунду: м/с. Настоящий ветер дует чуть быстрее чашек, поэтому у реальных приборов есть поправочный коэффициент – если он дан в условии, умножь на него.
Солнечный трекер поворачивает панель туда, где светлее. Два фоторезистора смотрят чуть влево и чуть вправо: левый показывает больше света – повернуть панель влево, правый – вправо, почти поровну – стоять.
Роза ветров – рисунок, на котором длина луча по каждому направлению показывает, сколько дней (или замеров) ветер дул оттуда. Самый длинный луч – самый частый ветер.
Мини-шпаргалки по инструментам
Arduino: язык C++
Программа для Arduino (скетч) состоит из двух частей: setup() выполняется один раз при включении, loop() – повторяется по кругу, пока есть питание. После // идёт комментарий: плата его не читает.
| Команда | Что делает |
|---|---|
pinMode(9, OUTPUT); |
вывод 9 будет выходом: к нему подключают светодиод, реле, драйвер мотора |
digitalWrite(9, HIGH); |
подать на вывод 9 напряжение 5 В; LOW – снять (0 В) |
digitalRead(2) |
прочитать кнопку на выводе 2: HIGH или LOW |
analogRead(A0) |
измерить напряжение на A0: число от 0 до 1023 |
analogWrite(9, 128) |
ШИМ на выводе 9: от 0 до 255 |
delay(1000); |
ждать 1000 мс, то есть 1 секунду |
millis() |
сколько миллисекунд прошло с включения платы |
Serial.begin(9600); |
включить связь с компьютером (пишется в setup) |
Serial.println(t); |
вывести значение в монитор порта и перейти на новую строку |
map(x, 0, 1023, 0, 100) |
пересчитать x из одного диапазона в другой, дробную часть отбрасывает |
constrain(x, 0, 100) |
не выпустить x за пределы от 0 до 100 |
ШИМ на Arduino Uno умеют только выводы 3, 5, 6, 9, 10 и 11 – на плате рядом с ними значок ~.
Переменные: int – целое число, float – дробное (пишется через точку: 0.5), bool – «да/нет» (true/false). Сравнения: == равно, != не равно, <, >, <=, >=. Связки: && – «и», || – «или», ! – «не».
Пример целиком: термометр TMP36 на A0 управляет вентилятором на выводе 9 с двумя порогами. Мы собрали и проверили эту программу.
const int SENSOR = A0; // термометр TMP36 – на аналоговом входе A0
const int FAN = 9; // вентилятор через драйвер – на выводе 9 (ШИМ)
bool fanOn = false; // запоминаем, включён ли вентилятор
void setup() {
pinMode(FAN, OUTPUT);
Serial.begin(9600);
}
void loop() {
int n = analogRead(SENSOR); // число от 0 до 1023
float u = n * 5.0 / 1023; // переводим в вольты
float t = (u - 0.5) * 100; // вольты -> градусы для TMP36
Serial.println(t);
if (t >= 28) fanOn = true; // жарко – включить
if (t <= 24) fanOn = false; // остыло – выключить
if (fanOn) {
analogWrite(FAN, 191); // примерно 75 % мощности
} else {
analogWrite(FAN, 0);
}
delay(10); // пауза для симулятора
}Сервомотор поворачивается на заданный угол от 0 до 180 градусов – так открывают форточку:
#include <Servo.h> // библиотека для сервомоторов
Servo window; // сервомотор форточки
void setup() {
window.attach(6); // сигнальный провод – на вывод 6
}
void loop() {
window.write(90); // открыть: повернуть на 90 градусов
delay(2000);
window.write(0); // закрыть
delay(2000);
}Совет. Ошибки, на которых спотыкаются чаще всего: забыли точку с запятой в конце команды; открыли фигурную скобку и не закрыли; в сравнении написали = вместо ==; дробное число записали через запятую (0,5 вместо 0.5); посчитали n * 5 / 1023 в целых числах и получили 0 – пиши 5.0; забыли pinMode(…, OUTPUT).
Tinkercad: что где
Так было в сентябре 2026 года, на вебинарах сферы. Интерфейс может обновиться – смысл останется.
- Вход. Ссылка на класс «Агротех» и инструкция – в курсе сферы, в модуле «Теория и практика по созданию инженерных агросистем». Общая учётная запись работает как одна сессия: проекты не сохраняются. Нужный код копируй в файл на компьютере, схему зарисуй в тетрадь.
- Новая схема: «Создать» → «Цепи» (Circuits). В панели компонентов справа выбери показ всех компонентов – они разложены по разделам: общие (резисторы), входы (датчики), выходы (светодиоды, моторы, дисплеи), питание, макетные платы, микроконтроллеры, приборы (мультиметр).
- Провода тянутся мышкой от контакта к контакту. Двойной щелчок по проводу – точка изгиба. Минус принято делать чёрным, плюс – красным: цвет выбирается в панели сверху.
- Настройки детали: щёлкни по ней – откроется окошко, где можно задать номинал резистора, цвет светодиода, число батареек. Там же справка по детали с примером подключения.
- Макетная плата: наведи мышь на отверстие – зелёным подсветятся все отверстия, соединённые с ним. Длинные ряды по краям – шины питания, короткие столбики по пять отверстий – для деталей.
- Код: кнопка «Код» открывает редактор. Сначала он показывает блоки – переключи на текст, чтобы писать на C++. Внизу окна кода – монитор последовательного порта, там же кнопка графика.
- Запуск: «Начать моделирование». Пока моделирование идёт, схему менять нельзя – как и в жизни, сначала выключи питание. Щёлкни во время моделирования по термометру, фоторезистору или датчику влажности – появится ползунок, им меняют температуру, свет и влажность.
- Кнопка остаётся нажатой, если щёлкнуть по ней с зажатой клавишей Shift – так можно нажать две кнопки сразу.
- Предупреждение о токе («допустимый ток 20 мА») значит, что в жизни деталь сгорела бы: не хватает резистора.
- В цикл
loop()добавляйdelay(10)– симулятору так легче. Если после ошибки в коде «Начать моделирование» не срабатывает, обнови страницу. - Детали для теплицы, которые есть в Tinkercad: фоторезистор, датчик влажности почвы, термометр TMP36, газоанализатор, сервомотор, мотор постоянного тока, LCD-дисплей 16×2, RGB-светодиод, потенциометр, тактовая кнопка.
Машина состояний и ПРИМС
ПРИМС – «программирование расширенных иерархических машин состояний». Программу не пишут строчками, а рисуют схемой в Кибериаде IDE: из какого режима в какой переходит устройство и что при этом делает. По схеме редактор умеет сгенерировать код на C++.
| Элемент | Что это | Пример для теплицы |
|---|---|---|
| Состояние | режим работы устройства | «форточка закрыта», «проветриваем» |
| Событие | то, что случилось и заставило реагировать | прошло 5 секунд, нажата кнопка, пришло новое показание |
| Условие | фильтр: переход сработает, только если оно верно | температура не ниже 28 °C |
| Действие | что устройство делает | открыть форточку, включить красный светодиод |
| Переход | смена состояния, рисуется стрелкой | «закрыта» → «проветриваем» |
Подпись на стрелке удобно читать так: событие [условие] / действие. Например: «новое показание [t ≥ 28] / открыть форточку».
- В каждый момент устройство находится ровно в одном состоянии.
- Действие на входе в состояние выполняется один раз, когда в него попали; на выходе – один раз, когда уходят.
- Если условие ложно, перехода нет: устройство остаётся, где было.
- Самый первый пример на курсе – мигание светодиодом: два состояния «горит» и «не горит», переходы между ними по времени. Светофор – три-четыре состояния по кругу.
Как проследить работу машины: заведи таблицу «шаг – текущее состояние – событие – условие верно? – новое состояние – действие» и заполняй строку за строкой.
Таблицы
Формулы в русской версии Excel, LibreOffice Calc и онлайн-таблиц начинаются со знака =. Аргументы разделяют точкой с запятой.
| Формула | Что считает |
|---|---|
=СРЗНАЧ(B2:B25) |
среднее по клеткам от B2 до B25 |
=МАКС(B2:B25), =МИН(B2:B25) |
наибольшее и наименьшее |
=СУММ(B2:B25) |
сумму |
=СЧЁТЕСЛИ(B2:B25;">25") |
сколько значений больше 25 |
=ОКРУГЛ(C2;1) |
округлить до десятых |
=(B2*5/1023-0,5)*100 |
перевести показание TMP36 из клетки B2 в градусы |
Формулу из одной клетки можно протянуть вниз за уголок – адреса клеток сдвинутся сами. График: выдели столбец времени и столбец значений, затем меню «Вставка» → диаграмма, тип «график» (линия).
Словарик
| Слово | Что значит |
|---|---|
| Агротехнологии | способы выращивать растения и животных с помощью техники, датчиков и автоматики |
| Актуатор (исполнительное устройство) | деталь, которая что-то делает: мотор, насос, вентилятор, лампа, сервомотор |
| Аналоговый сигнал | сигнал, который меняется плавно и может принимать любые значения: напряжение с термометра |
| Анемометр | прибор для измерения скорости ветра, вертушка с чашечками |
| АЦП (аналого-цифровой преобразователь) | часть Arduino, которая превращает напряжение в число от 0 до 1023 |
| Биоритмы | повторяющиеся изменения в жизни растения: днём фотосинтез, ночью только дыхание |
| Гистерезис | два разных порога для включения и выключения, чтобы устройство не щёлкало туда-сюда |
| Датчик (сенсор) | деталь, которая превращает свет, тепло, влажность в электрический сигнал |
| Делитель напряжения | два резистора подряд; напряжение между ними зависит от их сопротивлений |
| Детектирование | обнаружение нужного события в сигнале, например перехода через порог |
| Дыхание растения | получение энергии из сахара с поглощением кислорода и выделением углекислого газа |
| Калибровка | настройка датчика по известным точкам: «вот так он показывает сухо, а вот так – мокро» |
| Кодирование | запись сообщения условными знаками: азбукой Морзе, нулями и единицами |
| Конденсация | превращение пара в капли воды на холодной поверхности |
| Макетная плата | пластиковая плата с отверстиями, соединёнными внутри, чтобы собирать схемы без пайки |
| Микроклимат | температура, влажность, освещённость и состав воздуха в теплице |
| Микроконтроллер | маленький компьютер на одной микросхеме; Arduino Uno – плата с микроконтроллером |
| Модуляция | способ «посадить» сообщение на сигнал-переносчик (несущую), меняя его силу или частоту |
| Монитор порта | окно, куда Arduino выводит числа и текст; рядом – график этих чисел |
| Огибающая | плавная линия, которая обводит верхушки быстро меняющегося сигнала |
| Относительная влажность | насколько воздух насыщен паром, в процентах; при 100 % выпадает роса |
| Порог | число, при переходе через которое система принимает решение |
| Потенциометр | резистор с ручкой: крутишь – меняется напряжение; им задают пороги |
| ПРИМС | визуальный язык программирования машинами состояний; редактор – Кибериада IDE |
| Сервомотор | мотор, который поворачивается на заданный угол от 0 до 180 градусов |
| Сити-ферма | ферма в городе: на крыше, в здании, в контейнерах |
| Скетч | программа для Arduino |
| Спектр сигнала | из каких частот, медленных и быстрых, состоит сигнал |
| Фильтр низких частот | обработка, которая пропускает медленные изменения и гасит быстрые скачки |
| Фоторезистор | резистор, сопротивление которого зависит от освещённости |
| Фотосинтез | образование сахара из углекислого газа и воды в зелёных листьях на свету |
| Цифровой сигнал | сигнал со строго определёнными значениями, 0 и 1: есть напряжение или нет; помеха его не портит понемногу – он доходит целиком или пропадает |
| ШИМ | быстрое включение и выключение вывода, чтобы плавно менять яркость или скорость |
| DHT11 | датчик, который измеряет температуру и влажность воздуха и передаёт их цифрой |
| LCD 1602 | дисплей на 2 строки по 16 символов |
| ppm | миллионная доля: 400 ppm углекислого газа – это 400 частиц из миллиона, 0,04 % |
Шпаргалка: всё «Запомни» из глав
Глава 1. Растение как живая система
Запомни. Факторов роста пять, и ни один не заменяет другой. Урожай держит на привязи тот, которого не хватает сильнее всего, – это закон минимума. У каждой культуры свои нормы: огурцу подавай тепло и сырость, томату – посуше, салату – прохладу.
Запомни. Фотосинтез идёт в листьях на свету: углекислый газ + вода → сахар + кислород. Хлорофилл берёт в основном красный и синий свет, зелёный отражает. После насыщения лишний свет почти ничего не прибавляет.
Запомни. Дыхание: сахар + кислород → углекислый газ + вода + энергия. Растение дышит всегда. Днём фотосинтез сильнее дыхания, ночью фотосинтеза нет. В закрытой теплице CO₂ растёт ночью и падает днём.
Запомни. Корни всасывают воду с минеральными солями через корневые волоски. N – листья, P – корни и цветы, K – плоды. Больше 90 % воды испаряется через устьица. Корням нужен кислород, поэтому перелив опасен так же, как засуха.
Запомни. Устьица у большинства растений открыты на свету и закрыты в темноте. Длина дня подсказывает растению время года. Длина дня = закат − восход, в часе 60 минут, а не 100.
Запомни. Микроклимат – погода внутри теплицы. У каждой его величины свой датчик и своя единица: градусы, проценты, люксы, ppm. Автоматике нужны числа, «на глаз» она не умеет.
Запомни. Относительная влажность – сколько пара есть, в процентах от того, сколько может поместиться. Остывая, воздух «сжимает стакан»: проценты растут, хотя пара не прибавилось. Остыл ниже точки росы – выпадает роса.
Глава 2. Микроклимат теплицы: считаем
Запомни. Температура – в °C, влажность воздуха и почвы – в %, свет – в люксах, углекислый газ – в ppm. Число без единицы – не ответ. Нормы и пороги бери из условия задачи.
Запомни. 1 % = 10 000 ppm, 1 клк = 1000 лк, 1 с = 1000 мс. В часе 60 минут, поэтому 1,5 ч – это 1 ч 30 мин.
Запомни. %, и обратно . Воздух остывает – влажность растёт. Разность процентов – это процентные пункты; «на сколько процентов» – всегда от прежнего значения.
Запомни. Освещённость – в люксах; от лунной ночи до солнечного полдня она растёт в сотни тысяч раз. Отрезок через полночь – это две части: до 24:00 и после 0:00. Доля суток = часы : 24 · 100 %.
Запомни. Холоднее всего под утро, жарче всего после полудня. Доля замеров = число нужных замеров : число всех · 100 %. Время вне нормы = число таких замеров · промежуток между замерами.
Запомни. Проверь знак на границе (> или ≥) и единицы. «И» – нужны обе части, «или» – хватит одной. С двумя порогами между ними устройство остаётся как было, поэтому иди по замерам по порядку.
Глава 3. Графики и таблицы агронома
Запомни. Порядок чтения: оси и единицы → цена деления → точки → форма линии. Точки – настоящие замеры, линия между ними – оценка. Круче участок – быстрее меняется величина.
Запомни. Среднее = сумма : количество. Размах = максимум − минимум. Среднее всегда лежит между минимумом и максимумом. С минусами считай внимательно: от −3 до +13 размах 16 градусов, а вовсе не 10.
Запомни. Строчка таблицы – точка графика. Масштаб выбирай по самому большому числу. Равное время – равные отрезки по оси. Непрерывно меняется – рисуй линию, отдельными порциями – столбики.
Запомни. Формула начинается с =. В диапазоне B2:B9 восемь клеток – обе крайние считаются. При протягивании вниз адреса в формуле сдвигаются сами. ">25" саму 25 не считает, ">=25" – считает.
Запомни. Порог на графике – горизонтальная линия. Момент, когда её пересекли, ищут по двум соседним замерам: сначала «сколько градусов в час», потом «сколько часов до порога». Доли часа переводи в минуты умножением на 60.
Запомни. Два графика рядом – сначала сравни оси, потом линии. Среднее за сутки не скажет, была ли жара в полдень: для решений в теплице смотри на крайние значения.
Глава 4. Вода и полив
Запомни. Вода на грядку = норма × число кустов (или × площадь) × число дней. Запас – округляем вверх, «сколько полных дней хватит» – вниз.
Запомни. 1 л = 1 дм³ = 1000 см³ = 1000 мл; 1 м³ = 1000 л; 1 л воды – 1 кг. Считай объём в дециметрах – сразу получишь литры. 1 мм осадков или полива = 1 л на каждый квадратный метр.
Запомни. Объём = производительность × время; время = объём : производительность. Перед делением приведи л/ч и минуты (или мл и литры) к одним единицам. Вода и приходит, и уходит – считай разницу.
Запомни. Вылить = нужно корням : доля. Процент экономии – от старого расхода. «Стало меньше на 20 %» = «стало 80 % от прежнего».
Запомни. , давление в паскалях. Вода: каждый метр глубины – плюс 9,8 кПа, Па, где в метрах от поверхности воды. Ширина бака и число литров на давление не влияют.
Запомни. Испарение ускоряют тепло, сухой воздух, ветер и большая открытая поверхность; испаряясь, вода охлаждает. Конденсация идёт на холодном: пар из тёплого воздуха оседает каплями на холодном стекле. 1 г воды – это 1 мл.
Глава 5. Электричество, энергия и датчики
Запомни. Ток – поток зарядов, амперы. Напряжение – «толкание», вольты. Сопротивление – помеха току, омы. Ток идёт только по замкнутой цепи. 1 А = 1000 мА, 1 кОм = 1000 Ом.
Запомни. – в вольтах, амперах и омах. Резистор для светодиода: , номинал берём ближайший больший. Последовательно – сопротивления складываются, параллельно – общее меньше самого маленького ( одинаковых – в раз меньше одного).
Запомни. Датчик превращает свет, тепло, влажность в напряжение, Arduino – напряжение в число 0…1023. ; обратно с отброшенной дробью. TMP36: . Почву калибруют по двум точкам: «сухо» и «мокро».
Запомни. (ватты = вольты · амперы). (Вт · ч = Вт·ч). Время работы аккумулятора = ёмкость : ток. КПД – доля полезной энергии, у солнечной панели около 15–20 %.
Запомни. Тепло идёт от тёплого к холодному: сквозь стенки, с воздухом, лучами. Потери = · разница температур. Чтобы держать температуру, обогреватель должен покрывать потери. Мороз вычитай со знаком: между +10 °C и −10 °C двадцать градусов, а не ноль.
Глава 6. Программирование умной теплицы
Запомни. Алгоритм – точные шаги, исполнитель – тот, кто их выполняет без догадок. Из трёх кирпичиков (следование, ветвление, цикл) собирается любая программа. Что сделает исполнитель, узнают только одним способом: проходят алгоритм шаг за шагом.
Запомни. = кладёт значение в переменную, == сравнивает. Целое, делённое на целое, теряет дробную часть. В цепочке if … else if срабатывает только первая верная ветка. Что делает цикл, проверяй таблицей трассировки, а не в уме.
Запомни. setup() – один раз, loop() – по кругу. Схема любой автоматики: измерить (analogRead), сравнить с порогом (if), включить или выключить (digitalWrite). Время в delay – в миллисекундах: секунды умножь на 1000.
Запомни. Два порога = переменная-память + два условия: «выше верхнего – включить», «ниже нижнего – выключить». Если ни одно не сработало, память не трогаем. Голый else превращает два порога обратно в один.
Запомни. Машина состояний = состояния + переходы «событие [условие] / действие». Номер состояния хранят в одной переменной, переходы проверяет цепочка if … else if. Вместо долгого delay – вопрос «сколько я уже в этом состоянии?»: millis() - start. За один замер – один переход. Из каждого состояния, кроме конечного, должна выходить хотя бы одна стрелка. Две стрелки с одним событием из одного состояния допустимы, только если условия у них не пересекаются.
Глава 7. Сигналы и обработка данных
Запомни. Сигнал – то, что меняется по делу, шум – мелкая беспорядочная дрожь поверх него. У волны период – время одного повтора, частота (в герцах – повторов в секунду), амплитуда – половина размаха.
Запомни. Отсчётов на один больше, чем промежутков, если считаешь с обоих концов. Время по отсчётам = число отсчётов · шаг. Два отсчёта на период и меньше – колебание может пропасть из записи.
Запомни. Событие – момент, когда сигнал перешагнул порог снизу вверх, а не каждый отсчёт выше порога. Период = (время последнего события − время первого) : (число событий − 1).
Запомни. Скользящее среднее – среднее из последних отсчётов, окно сдвигается на один. Из отсчётов получается средних. Широкое окно – глаже, но с опозданием.
Запомни. Выброс – одиночный прыжок, невозможный в жизни. Среднее он портит, медиана из трёх его убирает. Против ложных срабатываний – медианный фильтр или «несколько отсчётов подряд».
Запомни. Спектр показывает, из каких частот сложен сигнал. ФНЧ пропускает медленное и убирает быстрое; скользящее среднее – простой ФНЧ. Окно длиной в период помехи убирает её целиком.
Запомни. Двоичное число переводят, складывая веса разрядов с единицами: 128, 64, 32, 16, 8, 4, 2, 1. битов дают вариантов. Нужно значений – бери такое наименьшее , что .
Глава 8. Метеостанция и автоматика
Запомни. Метеостанция нужна теплице, чтобы автоматика успела среагировать до того, как погода придёт внутрь. DHT11 меряет температуру (0…50 °C, ±2 °C) и влажность воздуха (20…90 %) и отдаёт готовые числа; спрашивать его – не чаще раза в 1–2 секунды.
Запомни. Скорость чашки: (радиус в метрах, – оборотов в секунду). Скорость ветра – это скорость чашки, умноженная на поправку , если она дана. Обороты = импульсы : число магнитов. 1 м/с = 3,6 км/ч.
Запомни. Серва: угол от 0 до 180°, write(угол), держит положение. DC-мотор: крутится от напряжения, скорость – через ШИМ (0…255), направление – сменой полярности, подключается только через драйвер. map отбрасывает дробную часть. Время смены воздуха = объём теплицы : производительность вентилятора.
Запомни. Панель берёт больше всего света, когда лучи падают на неё перпендикулярно; при отклонении на 60° – только половину. Высота солнца в полдень в равноденствие , летом на 23° выше, зимой на 23° ниже. Наклон панели . Солнце смещается на 15° в час.
Запомни. Правила проверяют сверху вниз, правила безопасности (ветер, мороз) – первыми. Ограничение не выбирает угол, а только урезает слишком большой. Рассчитанный угол всегда сверяй с пределами механизма: от 0° до 90° у форточки, от 0° до 180° у сервы.
Где что найти
| Что | Где |
|---|---|
| Правила олимпиады, сферы, сроки | junior.ntcontest.ru |
| Личный кабинет участника | my.ntcontest.ru |
| Платформа отбора | orbita.education (заходить кнопкой из личного кабинета) |
| Курс сферы «Агротех» (за тест курса +5 баллов к отбору) | academy.junior.online/event/agrotech_junior, вход через «Талант» |
| Класс «Агротех» в Tinkercad | ссылка и инструкция – в курсе сферы |
| Кибериада IDE (ПРИМС) | ссылка – в курсе сферы |
| Tinkercad | tinkercad.com |
| Запасной симулятор Arduino | wokwi.com |
| Arduino IDE | по желанию, для настоящей платы; ставит педагог кружка |
| Программа сферы и кружка | junior.online/agrotech → «Образовательная программа «Агротех»» |
| Новости и вопросы по сфере | канал «Сфера Агротех» в мессенджере MAX (находится поиском по слову «Агротех») |
| Памятки для Новосибирской области | nto.kvantorium54.ru |
Об авторе-составителе

Артём Осиновский
Методист и разработчик детского технопарка «Кванториум» (Новосибирск). Придумывает образовательные программы и сам делает для них цифровые инструменты: платформу смены «Миссия на Луну» для фестиваля «Технопром-2026», сайт с памятками НТО Юниоры для Новосибирской области. Эту книгу собрал для школьников области, чтобы к отбору можно было подготовиться самостоятельно – даже без кружка рядом с домом.
Нашли ошибку – пишите на osinovsky.aa@kvantorium54.ru (рабочая почта): сфера, версия книги и страница. По другим вопросам и проектам – личная: artem081033@gmail.com.

