Выполнение нескольких синхронизированных задач с помощью Arduino: Дайте волю millis()!

🤩 Скачать PDF-файл «10 советов по программированию Arduino» можно здесь👇👇
Хотите узнать больше? Посетите наши курсы!
Хотите делать несколько вещей с помощью Arduino? Тогда освойте функцию millis в Arduino! В этом видео мы шаг за шагом покажем, как использовать millis в Arduino. **Код, расшифровку, задания и другую информацию для этого урока можно найти на нашем сайте**
Привет! Надеюсь, у вас всё отлично. В этой серии мы говорили об использовании функции millis в Arduino для создания событий с заданным временем. Например, каждые три секунды, когда вы хотите, чтобы сервер активировался, или каждую минуту, когда вы хотите отправлять обновление статуса на веб-сервер. Что бы это ни было, вам нужно, чтобы что-то происходило с заданным интервалом. Итак, если вы не видели предыдущие уроки этой серии, настоятельно рекомендую вам вернуться к ним после этого урока — думаю, они будут вам очень полезны. В этом уроке мы рассмотрим создание нескольких событий с заданным временем с помощью функции Arduino millis, а именно, мы составим схему программы, которая будет выполнять два независимых события с заданным временем. Мы напишем с нуля программу, которая считывает и отображает показания двух датчиков с разными интервалами, а затем выпьем газировки и будем наблюдать за закатом. У каждой хорошей программы есть алгоритм, который работает ещё лучше, поэтому, прежде чем мы начнём печатать в Arduino IDE, я сначала хочу записать наш план действий. Это похоже на то, чего мы пытаемся добиться. Итак, у меня есть два датчика. Один — фоторезистор (LDR), а другой — датчик температуры. Я хочу считывать эти значения и отображать их в окне последовательного монитора на моём компьютере, но не хочу делать это постоянно. Я хочу, чтобы это происходило с двумя разными интервалами. Я хочу, чтобы мой фоторезистор считывал показания и отображал их каждую секунду, а датчик температуры считывал показания и отображал их каждые пять секунд. Итак, у меня есть два отдельных события. Я просто оформлю это так: событие первое происходит каждую секунду. Я хочу считывать показания фоторезистора, а затем отображать его значение, а затем событие второе, которое будет происходить каждые пять секунд. Я хочу считывать показания датчика температуры и отображать его показания. И я буду отображать их в окне последовательного монитора на Arduino. Итак, это своего рода план действий, и, глядя на это, я думаю, что мы могли бы использовать функцию Arduino millis для настройки времени этих событий, я мог бы использовать analogRead для чтения значений фоторезистора и датчика температуры, а затем мы могли бы использовать библиотеку Serial для отображения этих значений в окне Serial Monitor на нашем компьютере. При создании программы с повторяющимися синхронизированными событиями не помешает также разметить синхронизацию событий на листе бумаги. Если мы нанесём это на временную шкалу, то увидим, что у нас есть два события, которые перекрываются каждые пять секунд. К счастью для нас, мы используем функцию millis, а не пытаемся реализовать это с помощью функции задержки Arduino, так что это определённо должно быть достижимо. В этом уроке мы сосредоточимся на демонстрации того, как программировать синхронизированные события с помощью Arduino. Поэтому я не буду вдаваться в настройку цепей фоторезистора и датчика температуры, поэтому просто предположим, что они у меня подключены. Но если вам интересно, как это сделать, обязательно загляните на сайт ProgrammingElectronics.com, где есть уроки по настройке различных схем. Итак, давайте перейдём в Arduino IDE и начнём писать код с нуля. Итак, вот мы в Arduino IDE, и я собираюсь начать с того, что составлю себе небольшой список дел в комментариях, так что давайте я это сделаю. Итак, у меня есть небольшой список дел, и я собираюсь его выполнить. Я не буду ограничиваться им, но я просто подумал, что попробую, это может помочь мне разобраться с программой. Первым делом я настрою контакты для подключения датчиков, так что давайте я это сделаю. Итак, у меня есть две константы, и я задал их, потому что они не будут меняться. Эти датчики всегда будут подключены к этим контактам. Аналоговый вывод A2 и аналоговый вывод A4 я использовал для фоторезистора и датчика температуры соответственно, так что всё довольно просто. У меня уже есть готовая схема. На самом деле, я использую Kit-on-a-Shield для работы с этой программой, и теперь мне нужно настроить переменные для событий с заданным временем. Итак, ... **О нас:** Этот урок по Arduino был создан Programming Electronics Academy. Мы — образовательная компания, которая стремится помочь людям изучить электронику и программирование с помощью повсеместно используемой платы разработки Arduino. **Мы никак не связаны с Arduino LLC, кроме того, что считаем их крутыми.**

Смотрите также