Работа 1
Перед созданием самого светофора ознакомимся вообще как работает tinkercad и попробуем создать простую схему.
Для этого нам понадобятся:
- Adruino Uno (Материнская плата)
- Breadroad Mini (Макетная плата)
- Resistor (Резистор 220 Ω)
- LED (Светодиод)
- Jumper wires (Соединительные провода)

link
Соединив всё мы имеем такую схему, в которой синяя лампочка, соединенная с платой через Pin — 10. Один цикл составляет 0.5с, из которых период включения и выключения лампочки составляет по 0.25с.
Работа 2
Ознакомившись с базовым функционалом перейдем к более интересной задаче, а именно создание светофора.
Для этого нам потребуется:
Resistor (Резистор 220 Ω) — 5 штук.
LED (Светодиод) — 5 штук.

Используемый код:
int tsikl = 0;
bool Day = true;
void setup()
{
// pinMode() määrab töörežim
pinMode(13, OUTPUT);// Red
pinMode(12, OUTPUT);// Yellow
pinMode(11, OUTPUT);// Green
// пешеход
pinMode(5, OUTPUT); // Red (пешеход)
pinMode(2, OUTPUT); // Green (пешеход)
}
void loop() {
if (Day) {
daylight();
tsikl++;
if (tsikl >= 4) {
tsikl = 0;
Day = false; // Night Switch
}
} else {
nightlight();
tsikl++;
if (tsikl >= 3) {
tsikl = 0;
Day = true; // Day Switch
}
}
}
void daylight()
{ //Red Light
digitalWrite(13, HIGH); // RED for cars
digitalWrite(2, HIGH); // Зелёный для пешеходов
delay(4000); //
digitalWrite(13, HIGH);
digitalWrite(12, HIGH);
delay(1000);
// Blinking GREEN light
for (int i = 0; i < 3; i++) {
digitalWrite(2, LOW); // Vilgub 3 korda
delay(300);
digitalWrite(2, HIGH);
delay(200);
}
// Turning off
digitalWrite(13, LOW); // CARS
digitalWrite(12, LOW);
digitalWrite(2, LOW); // ПЕШЕХОДЫ
delay(200);
//Green light
digitalWrite(11, HIGH); // Green light turns in
digitalWrite(5, HIGH);
delay(3000); // Ootab 10* sek
digitalWrite(11, LOW); // Lülitamine enne kollast
delay(400);
digitalWrite(11, HIGH);
delay(400);
digitalWrite(11, LOW);
delay(400);
digitalWrite(11, HIGH);
delay(400);
digitalWrite(11, LOW);
delay(400);
//Yellow Light
digitalWrite(12, HIGH); // Yellow light turns in
delay(2000); // Ootab 2 sek digitalWrite(12, LOW);
digitalWrite(5, LOW);
}
void nightlight() {
// Night mode?
for (int i = 0; i < 4; i++) {
digitalWrite(13, LOW);
digitalWrite(11, LOW);
digitalWrite(5, LOW);
digitalWrite(2, LOW);
digitalWrite(12, HIGH);
delay(1200);
digitalWrite(12, LOW);
delay(700);
}
}
Принцип работы:
- Переключение режимов
- 4× дневной цикл → ночь
- 3× ночной цикл → день
- Днём (
daylight()):- Красный (машины) + зелёный (пешеходы) — 4 с
- Жёлтый (машины) добавляется к красному — 1 с
- Мигающий зелёный (пешеходы) 3× (300 мс выкл + 200 мс вкл)
- Пауза все отключены — 200 мс
- Зелёный (машины) + красный (пешеходы) — 3 с
- Мигание зелёного (машины) 2× (400 мс вкл/400 мс выкл)
- Жёлтый (машины) — 2 с
- Ночью (
nightlight()):- Жёлтый (машины) мигает 4× (1,2 с вкл + 0,7 с выкл)
- Остальные лампы всегда выключены.
После каждого вызова функция увеличивает tsikl; по достижении порога происходит смена режима.