Мастер-класс «Разработка проекта с использованием светодиодов в среде Tinkercad»
28-29 апреля 2022 года
Работать с материалами можно в удобное для вас время. Доступ к материалам - свободный. Для участия в семинаре необходимо зарегистрироваться, заполнив поля ниже:
Материалы данного мастер-класса являются продолжением мастер-класса «Arduino без Arduino с использованием программы Tinkercad», проведенного 6-7 апреля 2022 года. Если вы не были участниками этого мастер-класса, то надо начать с него. Перейти...
Материалы для мастер-класса подготовила Светлана Александровна Мячина, педагог дополнительного образования МБОУ БГО "Борисоглебская гимназия № 1" Воронежской области.
Мы продолжаем работать с онлайн-сервисом Tinkercad, создавать проекты с использованием светодиодов. Умение собирать простые мигалки станет стимулом к построению более сложных моделей. Если приложить немного усилий, то с помощью мигающих светодиодов можно создать множество интересных проектов.
На прошлом мастер-классе мы рассматривали модели мигания со встроенным светодиодом на плате и мигание одного светодиода на макетной плате.
В данном мастер-классе узнаем, как управлять несколькими светодиодами, используя плату Arduino и макетную плату. А также будем совершенствовать навыки написания кода программы по заданным алгоритмам.
Итак, выполните предложенное на слайде задание.
Исследуйте образец предложенной цепи и постройте собственную (можно использовать созданную на прошлом занятии).
Вспомним программу, написанную на прошлом занятии для одного светодиода. Попробуем её доработать для нашего случая.
В рассматриваемом скетче требуется добавить номера портов, к которым подключены светодиоды. При этом сколько вы используете светодиодов в схеме, столько и раз следует прописать команды pinMode.
В первой части кода программы добавляем строку, в которой описываем еще один контакт в режиме вывода.
void setup()
{
pinMode(LED_BUILTIN, OUTPUT);
pinMode(LED_BUILTIN, OUTPUT);
}
Во второй части программы сначала запишем строки с номерами портов при включении напряжения, а затем строки с номерами портов при выключении напряжения.
{
digitalWrite(LED_BUILTIN, HIGH);
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}
Программу можно создать в редакторе кода Scratch или с помощью текстового редактора кода. Сравните написанный Вами код программы с образцом. Возможен ли другой код написания программы?
Сверим код программы.
Вот что получилось:
Задание.
Измените программу мигания двух светодиодов по алгоритму:
- •синий светодиод горит постоянно;
- •красный светодиод мигает 5 секунд;
- •задержка 3 секунды.
Включение и выключение одновременно светодиодов рассмотрели. Давайте попробуем наш светодиод включать плавно и постепенно, создадим так называемое плавное мигание.
Для этого используем функцию analogWrite (). Она требует два аргумента: один для определения порта, на который будет включаться и второй - для отображения записываемого значения яркости.
analogWrite() обеспечивает быструю смену значения широтно-импульсной модуляции.
Желательно светодиоды в этом случае подключать к портам ШИМ. На плате Arduino Uno их обозначают волнистой чертой “~” . Кроме того, в программе нужно добавить описание переменной, в которой хранится уровень яркости и переменной, устанавливающей шаг изменения яркости.
Пример программы в Scratch.
Здесь в разделе переменные создаем переменные brightness , fadeAmount
Для того, чтобы плавно включать и отключать светодиод, постепенно увеличивайте значение от 0 до 255, после - опять до 0, чтобы завершить цикл. Каждый раз по завершению цикла увеличивается значение переменной.
Если brightness достигает своего предельного значения (0 или 255), переменная fadeAmount меняет свое значение на отрицательное. Другими словами, если fadeAmount равно 5, его значение меняется на -5.
Вот такой вариант:
Пример программы в C++
Попробуйте изменить значение задержки и отследить, как будет работать программа.
По итогам мастер-класса просьба заполнить опрос обратной связи по ссылке.
В поле ниже можно задать вопрос или оставить содержательный комментарий. Комментарии могут оставлять только зарегистрированные на сайте сообщества пользователи.