Содержание статьи

Tinkercad – это бесплатная онлайн-платформа для 3D-моделирования и симуляции электронных схем, которая идеально подходит для начинающих. В этой статье мы соберем работающий светофор на базе Arduino Uno, используя компоненты из стандартной библиотеки Tinkercad: светодиоды (красный, желтый, зеленый), резисторы на 220 Ом, макетную плату и соединительные провода. Проект займет не более 30 минут, если следовать шагам без отклонений.
Светофор будет работать по классической схеме: красный (5 секунд) → желтый (2 секунды) → зеленый (5 секунд), с последующим циклом. Для реализации потребуется базовый код на Arduino, который мы оптимизируем для минимального потребления памяти. Все соединения выполняются на макетной плате без пайки – это ключевое преимущество Tinkercad для тестирования прототипов.
Перед началом убедитесь, что у вас открыт новый проект в разделе Circuits и добавлены следующие компоненты: Arduino Uno, макетная плата 400 точек, три светодиода (цвета обязательно должны отличаться), три резистора и соединительные провода. Неправильное подключение светодиодов (анод к питанию, катод к земле) приведет к их выходу из строя – в Tinkercad это не критично, но в реальной схеме чревато повреждением компонентов.
В процессе сборки мы используем цифровые пины 13, 12 и 11 для управления светодиодами. Резисторы подключаются последовательно с каждым светодиодом для ограничения тока до ~15 мА – это стандартное значение для большинства 5-мм светодиодов. Код будет написан с использованием функции delay(), но для более сложных проектов рекомендуется перейти на millis(), чтобы избежать блокировки выполнения программы.
Подготовка рабочей области и выбор компонентов
Для корректной работы схемы используйте компоненты с указанными параметрами:
| Компонент | Характеристики | Количество |
|---|---|---|
| Светодиод (красный) | 5 мм, 2.0–2.2 В, 20 мА | 1 |
| Светодиод (жёлтый) | 5 мм, 2.1–2.2 В, 20 мА | 1 |
| Светодиод (зелёный) | 5 мм, 3.0–3.2 В, 20 мА | 1 |
| Резистор | 220 Ом, 0.25 Вт | 3 |
| Соединительные провода | ММ (male-male), длина 10–15 см | 6 |
Перед началом монтажа зафиксируйте макетную плату на рабочей области, щёлкнув по ней правой кнопкой мыши и выбрав «Lock». Это предотвратит случайное смещение компонентов при подключении проводов.
Сборка корпуса светофора из базовых фигур

Начните с выбора фигуры прямоугольного параллелепипеда из панели инструментов Tinkercad. Задайте размеры: длина – 120 мм, ширина – 40 мм, высота – 200 мм. Это основа корпуса, к которой будут крепиться остальные элементы. Убедитесь, что фигура расположена по центру рабочей плоскости, иначе последующие детали сместятся.
Для крепления светофора добавьте цилиндр диаметром 30 мм и высотой 10 мм. Разместите его на верхней грани параллелепипеда, отступив 15 мм от переднего края. Сгруппируйте обе фигуры, чтобы зафиксировать положение. Этот элемент послужит основой для монтажа кронштейна или стойки.
Создайте лицевую панель из плоского прямоугольника (100×180×5 мм). Расположите его вертикально на передней стороне корпуса, выровняв по центру. Отступите 10 мм от нижнего края, чтобы оставить место для крепежных отверстий. Используйте инструмент выравнивания для точного позиционирования.
Вырежьте три отверстия под фонари с помощью цилиндров диаметром 50 мм и глубиной 3 мм. Разместите их на лицевой панели: первое – на 30 мм от верхнего края, второе – на 70 мм ниже первого, третье – на 70 мм ниже второго. Примените операцию вычитания, чтобы получить сквозные отверстия.
Для усиления конструкции добавьте ребро жесткости – треугольную призму (основание 20×20 мм, высота 120 мм). Прикрепите её к задней стороне корпуса, совместив нижнюю грань с основанием параллелепипеда. Сгруппируйте все элементы, чтобы избежать случайных смещений при дальнейшей работе.
Создайте крепежные отверстия: два цилиндра диаметром 8 мм и высотой 5 мм разместите в нижней части корпуса, отступив 20 мм от боковых граней. Вычтите их из основной фигуры. Эти отверстия позволят закрепить светофор на поверхности с помощью болтов или саморезов.
Проверьте итоговую модель на наличие пересечений или зазоров между фигурами. Используйте инструмент прозрачности для визуального контроля внутренних элементов. Экспортируйте корпус в формате STL, если планируете печать на 3D-принтере, или сохраните проект для дальнейшей доработки в Tinkercad.
Подключение светодиодов и настройка их цветов

В Tinkercad для сборки светофора используйте RGB-светодиоды или три отдельных монохромных (красный, жёлтый, зелёный). Подключите аноды (+) светодиодов к цифровым пинам Arduino (например, 13, 12, 11), а катоды (−) – к общей земле через резисторы 220 Ом. Это предотвратит перегрев и продлит срок службы компонентов. Для RGB-светодиода с общим катодом подайте сигнал на пины R, G, B через отдельные резисторы.
Настройте цвета в коде с помощью функции digitalWrite() для монохромных светодиодов или analogWrite() (ШИМ) для RGB. Пример для красного цвета на пине 13:
digitalWrite(13, HIGH);– включение;digitalWrite(13, LOW);– выключение.
Для RGB-светодиода смешивайте цвета, регулируя яркость каналов (0–255):
- Красный:
analogWrite(redPin, 255); analogWrite(greenPin, 0); analogWrite(bluePin, 0); - Жёлтый:
analogWrite(redPin, 255); analogWrite(greenPin, 100); analogWrite(bluePin, 0);
Оптимизируйте код, создав массив состояний светофора. Пример:
int ledPins[] = {13, 12, 11}; // Красный, жёлтый, зелёный
void setup() {
for (int i = 0; i < 3; i++) {
pinMode(ledPins[i], OUTPUT);
}
}
void loop() {
digitalWrite(ledPins[0], HIGH); // Красный
delay(3000);
digitalWrite(ledPins[0], LOW);
digitalWrite(ledPins[2], HIGH); // Зелёный
delay(3000);
digitalWrite(ledPins[2], LOW);
digitalWrite(ledPins[1], HIGH); // Жёлтый
delay(1000);
digitalWrite(ledPins[1], LOW);
}
Для плавных переходов между цветами в RGB-светодиоде используйте циклы с постепенным изменением значений analogWrite().
Добавление резисторов для защиты светодиодов

Светодиоды в схеме светофора работают при напряжении 2–3 В, но плата Arduino выдает 5 В. Без резисторов ток превысит допустимые 20 мА, что приведет к перегреву и выходу из строя. Для красного светодиода (прямое напряжение 2 В) используйте резистор 150–220 Ом, для желтого (2,1 В) – 180–270 Ом, для зеленого (3 В) – 100–150 Ом. Рассчитайте номинал по формуле: R = (Vпитания − Vсветодиода) / I, где I = 0,02 А. Подключайте резистор последовательно с анодом светодиода, иначе защита не сработает.
Проверьте расчеты мультиметром: измерьте ток в цепи – он не должен превышать 20 мА. Используйте резисторы с мощностью не менее 0,25 Вт, чтобы избежать нагрева. При пайке следите за полярностью: неправильное подключение выведет светодиод из строя мгновенно. Для удобства маркируйте резисторы цветными метками или подписывайте их номиналы на макетной плате.
Создание кнопки для переключения сигналов
В скетче добавьте обработчик прерываний для мгновенной реакции на нажатие: attachInterrupt(digitalPinToInterrupt(2), changeSignal, RISING). Функция changeSignal() должна изменять состояние переменной-счетчика, например, currentState = (currentState + 1) % 3, где 3 – количество режимов светофора (красный, желтый, зеленый). Это обеспечит циклическое переключение без задержек.
Для стабильной работы кнопки реализуйте программное подавление дребезга контактов. В функции changeSignal() добавьте задержку 50 мс после обнаружения нажатия: delay(50); while(digitalRead(2) == HIGH); delay(50);. Альтернатива – использовать библиотеку Bounce2, которая упрощает фильтрацию помех и сокращает код.
Проверьте схему перед загрузкой скетча: убедитесь, что кнопка не закорачивает питание, а резистор подключен корректно. В мониторе порта (Ctrl+Shift+M) отслеживайте изменения состояния пина D2 при нажатии. Если сигнал нестабилен, уменьшите номинал резистора до 4.7 кОм или увеличьте задержку подавления дребезга до 100 мс.
Написание кода для управления светофором

В Tinkercad для управления светофором используйте Arduino-скетч с задержками и состояниями светодиодов. Подключите красный, жёлтый и зелёный светодиоды к пинам 13, 12 и 11 соответственно. В функции setup() инициализируйте их как выходы: pinMode(13, OUTPUT);. Основной цикл loop() должен последовательно включать светодиоды с фиксированными задержками: 5000 мс для красного, 2000 мс для жёлтого и 5000 мс для зелёного. Для плавного переключения добавьте промежуточное выключение всех светодиодов на 500 мс перед сменой состояния.
- Избегайте блокирующих задержек
delay()в сложных проектах – используйтеmillis()для неблокирующего управления. - Добавьте кнопку на пин 2 для ручного переключения режимов (например, аварийная мигалка). Подключите её через подтягивающий резистор 10 кОм.
- Для реалистичного светофора добавьте звуковой сигнал на пин 8, синхронизированный с зелёным светом для пешеходов.
Тестирование работы светофора в симуляторе

Запустите симуляцию в Tinkercad, нажав кнопку "Start Simulation" в правом верхнем углу. Проверьте последовательность переключения сигналов: красный (5 секунд), жёлтый (2 секунды), зелёный (5 секунд), жёлтый (2 секунды) – цикл должен повторяться без задержек. Если тайминги нарушены, откройте код Arduino и скорректируйте значения в функциях delay(), например, замените delay(5000) на delay(3000) для ускоренного тестирования.
Обратите внимание на следующие моменты:
- Все светодиоды горят с равномерной яркостью – если один из них тусклее, проверьте номиналы резисторов (рекомендуется 220 Ом для каждого).
- При переключении не возникает "фантомного" свечения – если жёлтый мигает при включённом красном, добавьте в код строку
digitalWrite(LED_YELLOW, LOW)перед активацией красного. - Симуляция не зависает – если цикл прерывается, убедитесь, что в коде нет бесконечных циклов без выхода или задержек более 10 секунд.
Для проверки аварийных режимов добавьте в схему кнопку, подключённую к пину 2 Arduino, и допишите в loop() условие: если кнопка нажата, все светодиоды должны мигать жёлтым с частотой 1 Гц. Используйте digitalRead(2) == HIGH для детекции нажатия. Этот тест выявит проблемы с прерываниями или некорректной работой входных пинов.
Экспорт проекта и сохранение для дальнейшего использования
В Tinkercad экспортируйте схему светофора в форматах STL, OBJ или SVG через кнопку "Экспорт" в правом верхнем углу. Для симуляции выберите формат STL – он сохраняет 3D-модель с электрической схемой, включая соединения компонентов. Если планируете доработку в других программах (например, Fusion 360), используйте OBJ: он поддерживает текстуры и более сложные геометрии. Для векторной графики (например, для лазерной резки) подойдет SVG – он сохраняет контуры плат и компонентов без объема.
Сохраните проект в облаке Tinkercad, нажав "Сохранить" в левом верхнем углу. Присвойте файлу уникальное имя, например, "Светофор_Arduino_2024_v2", и добавьте в описание ключевые параметры: напряжение питания (5В), используемые компоненты (Arduino Uno, светодиоды, резисторы 220 Ом) и ссылку на код в репозитории. Для локального хранения скачайте файл в формате Tinker (расширение .TINKER) – он содержит всю схему и настройки симуляции. Храните резервные копии на Google Диске или GitHub, чтобы избежать потери данных при сбоях.
