Урок 98-6: Игра «See saw» со светодиодами на Arduino
Проект с мигающими светодиодами «качели» — это классическое упражнение для начинающих, которое teaches one of the most important concepts in Arduino programming: making two outputs alternate in a timed rhythm. Using just two LEDs, two resistors, and a handful of jumper wires, you'll build a circuit where a green LED and a red LED take turns lighting up, mimicking the up-and-down motion of a playground seesaw. It's a simple build, but it introduces the core building blocks — pin definitions, timing constants, and sequential digitalWrite() calls — that appear in almost every Arduino sketch you'll ever write.
Поскольку паттерн «качели» — это на самом деле просто «включи одно, выключи его, включи другое, выключи его, повтори», та же структура масштабируется в десятки практических применений. Вот несколько идей, чтобы разжечь ваше воображение:
- Попеременные индикаторные огни — пара «безопасно / тревога» на панели управления, которая переключается туда-сюда.
- Имитация железнодорожного переезда — две лампы, мигающие поочерёдно при приближении поезда.
- Двухполосный указатель направления — дисплей со стрелками «сюда / туда» для подъездной дороги или парковки.
- Праздничное украшение — красные и зелёные светодиоды меняются местами для праздничного мигающего эффекта.
- Основа для обучения — навыки работы с таймингом и последовательностью, полученные здесь, — это те же навыки, которые вы позже будете использовать для светофоров, бегущих огней и многосветодиодных анимаций.
Как работает эффект качелей
Светодиод — это диод, который излучает свет, а его символ — это треугольник, указывающий на линию. Плоская линия — это катод (отрицательный), а задняя часть треугольника — анод (положительный). На физическом светодиоде более длинная ножка — это анод, а более короткая, с плоской стороной — катод. Ток течёт от анода к катоду, поэтому анод подключается к выводу Arduino, а катод — через резистор к земле (в видео на 02:29).
Резистор важен. Типичный небольшой светодиод требует примерно 2 В на себе и около 10 мА тока. Если ваш Arduino выдаёт 5 В, оставшиеся 3 В должны быть погашены резистором. Используя закон Ома, R = V / I = 3 В / 0,01 А = 300 Ω. Подойдёт всё от примерно 300 Ω до 1000 Ω — более высокие значения просто делают светодиод тусклее (в видео на 03:49).
Для качелей оба светодиода подключены одинаково: каждый анод идёт к своему выводу Arduino, а каждый катод идёт через свой резистор к общей шине земли. Единственная разница между ними — к какому выводу они подключены.
Аппаратное обеспечение и компоненты
- 1 × плата Arduino (Uno, Nano, Mega или аналогичная)
- 2 × светодиода — один красный, один зелёный (подойдут любые два цвета)
- 2 × резистора, от 300 Ω до 1000 Ω (220 Ω или 330 Ω — распространённые варианты)
- 1 × макетная плата
- Соединительные провода (провода Дюпон)
- USB-кабель для программирования и питания
Вот и всё — никаких кнопок, потенциометров или датчиков. Это намеренно самый минимальный список деталей, чтобы вы могли полностью сосредоточиться на логике кода.
Руководство по подключению
Подключение симметрично и легко повторяется. Вставьте оба светодиода в макетную плату. Подключите анод (более длинную ножку) зелёного светодиода к Arduino вывод 2, а анод красного светодиода — к Arduino вывод 3. Каждый катод (более короткая ножка) подключается к одному концу своего резистора, а другой конец обоих резисторов соединяется с общей шиной, которая идёт к GND Arduino (в видео на 27:45).
Поскольку оба светодиода используют общую шину земли, от макетной платы к Arduino нужен только один провод земли. Два сигнальных провода — один к выводу 2, один к выводу 3 — это единственные соединения, которые различаются между двумя светодиодами.
Объяснение кода
Скетч намеренно короткий, чтобы каждая строка была значимой. Вот части, которые вы действительно захотите настроить:
Определения выводов
const int greenLEDPin = 2;//define a pin for green LED
const int redLEDPin = 3;//define a pin for red LED
Эти две константы сообщают Arduino, к каким выводам подключены светодиоды. Если вы подключили светодиоды к другим выводам — скажем, к выводу 8 и выводу 9 — это единственное место, которое нужно изменить. Ключевое слово const означает, что значение фиксировано на всё время работы программы и не может быть случайно перезаписано позже.
Константа времени
const int ON_TIME = 500;Это единственное значение управляет тем, как долго каждый светодиод остаётся включённым, в миллисекундах. Значение по умолчанию 500 означает, что каждый светодиод горит полсекунды, поэтому полный цикл «зелёный, затем красный» занимает одну секунду. Уменьшите его до 200 для быстрого мигания или увеличьте до 1000 для медленного, размеренного ритма в одну секунду на светодиод (в видео на 30:17). Поскольку оба светодиода используют эту константу, они всегда остаются синхронизированными — качели сохраняют равновесие.
Настройка
Внутри setup() два вывода объявляются как выходы с помощью pinMode(), а монитор порта запускается на скорости 9600 бод, чтобы вы могли наблюдать за прокруткой сообщений о состоянии светодиодов. Это выполняется один раз при включении платы.
Цикл
Функция loop() — это место, где происходят «качели». Она выполняет четыре действия последовательно: включает зелёный светодиод, ждёт ON_TIME миллисекунд, выключает его, затем делает то же самое для красного светодиода. Когда цикл доходит до конца, он автоматически начинается заново с начала — в этом и заключается всё поведение «качелей». Здесь нет переменной состояния и нет условия для проверки, потому что шаблон чисто последовательный.
Живой проект и демонстрация
После загрузки кода вы увидите, как зелёный светодиод горит полсекунды, затем красный, затем снова зелёный, и так бесконечно. Открытие монитора порта (Инструменты → Монитор порта или Ctrl+Shift+M) показывает сообщения «Green LED ON» и «Red LED ON» по мере выполнения шаблона, что является удобным способом убедиться, что timing соответствует заданному.
Попробуйте изменить ON_TIME на 200 и загрузить снова — светодиоды будут переключаться заметно быстрее. Установите 1000, и качели превратятся в медленное, размеренное чередование. Вы также можете отключить Arduino от USB и запитать его от батареи или адаптера на 5 В; скетч будет работать точно так же, потому что он уже сохранён в памяти платы.
Связанные проекты из этого видео
- Урок 98-1: Как включить и выключить светодиод с помощью Arduino
- Урок 98-2: Как включить и выключить светодиод с помощью кнопки на Arduino
- Урок 98-3: Как включить/выключить переключаемый светодиод с помощью кнопки на Arduino
- Урок 98-4: Плавное затухание светодиода с помощью Arduino: управление яркостью
- Урок 98-5: Плавное затухание света при нажатии кнопки с помощью Arduino
- Урок 98-7: Бегущий огонь с помощью Arduino и 5 светодиодов
- Урок 98-8: Бегущий огонь с кнопкой и светодиодами на Arduino
- Урок 98-9: Измеритель уровня напряжения на светодиодах с помощью Arduino или бегущий огонь с потенциометром
- Урок 98-10: Светофор на Arduino
Главы
- [00:00] Обзор 10 проектов со светодиодами на Arduino
- [01:22] Введение в пошаговый курс по Arduino
- [02:29] Понимание светодиодов: символ, анод и катод
- [03:49] Расчёт последовательного резистора для светодиода по закону Ома
- [27:32] Представление проекта «качели» на светодиодах
- [27:45] Схема подключения для проекта «качели»
- [28:28] Объяснение кода «качелей»
- [30:06] Демонстрация «качелей» с разными временными интервалами
- [30:47] Обзор проекта «бегущий огонь»
- [36:41] Бегущий огонь, управляемый кнопкой
- [42:25] Светодиодный индикатор напряжения с потенциометром
- [49:25] Проект светофора на Arduino
This code has not been parsed yet. Please return to the admin panel to parse it.
Вещи, которые могут вам понадобиться
-
АмазонкаSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Амазонка
-
Амазонка
-
Амазонка
Ресурсы и ссылки
-
ДокументацияДокументация для набора 3 в 1 IoT/умный автомобиль/обучающий комплект SunFounderdocs.sunfounder.com
-
Внешний
-
Внешний
-
Внешний
Файлы📁
Библиотеки Arduino (zip)
-
Исходный код обучающего набора 3-в-1 Smart Car от SunFounder
3in1-kit-main-v2.zip12.80 MB
Руководство пользователя
-
Руководство по сборке 3-в-1 Arduino Smart Car от SunFounderВ этом документе показана пошаговая сборка 3-в-1 Arduino Smart Car от SunFounder
SunFounder_car_assembly_manual.pdf1.20 MB