1️⃣ Эксперимент — Использование потенциометра
Цель эксперимента — изучить, как с помощью потенциометра можно управлять скоростью мигания светодиода на плате Arduino. Работаю в tinkercad.com.
◾️Компоненты
- Плата Arduino Uno
- Светодиод
- Резистор (220 Ом)
- Потенциометр
- Макетная плата (breadboard)
- Соединительные провода
- USB-кабель для подключения Arduino к компьютеру
◾️Схема подключения

- Светодиод:
- Анод светодиода через резистор подключается к пину 13 Arduino.
- Катод светодиода подключается к GND (земля).
- Потенциометр:
- Один край потенциометра подключается к 5V.
- Другой край — к GND (земля).
- Центральный вывод — к аналоговому входу A0.
◾️Код программы
int sensorPin = 0; // Пин, к которому подключен потенциометр (A0)
int ledPin = 13; // Пин для светодиода
int sensorValue = 0; // Переменная для хранения значения с потенциометра
void setup() {
pinMode(ledPin, OUTPUT); // Настройка пина светодиода как выход
Serial.begin(9600); // Настройка последовательной связи
}
void loop() {
sensorValue = analogRead(sensorPin); // Считываем значение потенциометра (0–1023)
digitalWrite(ledPin, HIGH); // Включаем светодиод
delay(sensorValue); // Ждём время, зависящее от положения потенциометра
digitalWrite(ledPin, LOW); // Выключаем светодиод
delay(sensorValue); // Ждём снова
float voltage = sensorValue * (5.0 / 1023.0); // Перевод значения в напряжение (0–5 Вольт)
Serial.println(voltage); // Отправляем напряжение в монитор порта
}
- Потенциометр меняет сопротивление и даёт Arduino значение от 0 до 1023 на входе A0.
- Arduino использует это значение для установки задержки мигания светодиода.
- Чем больше значение — тем медленнее мигает светодиод.
✅ Вывод
Потенциометр позволяет управлять скоростью мигания светодиода в реальном времени, изменяя значение сопротивления.
Этот простой эксперимент учит работать с аналоговыми входами Arduino и показывает, как физические изменения можно переводить в цифровые сигналы.
2️⃣ Проект Гирлянда (Valguskett)
◾️Описание проекта
В этом проекте создаётся гирлянда, состоящая из девяти светодиодов, управляемых платой Arduino Uno.
Управление режимами мигания происходит с помощью потенциометра.
Пользователь может выбирать один из семи световых режимов.

◾️Используемые компоненты
- Плата Arduino Uno
- 9 обычных светодиодов
- 9 резисторов (220 Ом)
- Потенциометр
- Макетная плата (breadboard)
- Соединительные провода
- Источник питания (USB)
◾️Схема подключения
- Аноды светодиодов подключаются к цифровым пинам 2–10 через резисторы.
- Катоды светодиодов соединяются с GND (земля).
- Потенциометр подключён к аналоговому входу A0.
◾️Принцип работы
- Arduino считывает значение с потенциометра.
- В зависимости от положения потенциометра выбирается один из семи режимов.
- Каждый режим управляет светодиодами по определённой схеме, создавая разные световые эффекты.
◾️Код
int ledPins[] = {2, 3, 4, 5, 6, 7, 8, 9, 10};
int arrayLength = sizeof(ledPins) / sizeof(ledPins[0]);
void setup() {
for (int i = 0; i < arrayLength; i++) {
pinMode(ledPins[i], OUTPUT);
}
randomSeed(analogRead(0));
}
void loop() {
int potValue = analogRead(A0);
int mode = map(potValue, 0, 1023, 0, 6); // 0–6: всего 7 режимов
mode = constrain(mode, 0, 6);
switch (mode) {
case 0:
allBlink();
break;
case 1:
sequenceBlink();
break;
case 2:
candleEffect();
break;
case 3:
runningLight();
break;
case 4:
pingPong();
break;
case 5:
meetingLight();
break;
case 6:
starburstEffect();
break;
}
}
// Режим 0. Все мигают
void allBlink() {
for (int i = 0; i < arrayLength; i++) digitalWrite(ledPins[i], HIGH);
delay(300);
for (int i = 0; i < arrayLength; i++) digitalWrite(ledPins[i], LOW);
delay(300);
}
// Режим 1. Последовательное мигание
void sequenceBlink() {
for (int i = 0; i < arrayLength; i++) {
digitalWrite(ledPins[i], HIGH);
delay(100);
digitalWrite(ledPins[i], LOW);
}
}
// Режим 2. Эффект свечи
void candleEffect() {
for (int i = 0; i < arrayLength; i++) {
int flickerChance = random(0, 10);
if (flickerChance < 3) {
digitalWrite(ledPins[i], HIGH);
delay(random(10, 100));
digitalWrite(ledPins[i], LOW);
delay(random(10, 50));
}
}
}
// Режим 3. Бегущий огонь
void runningLight() {
for (int i = 0; i < arrayLength; i++) {
digitalWrite(ledPins[i], HIGH);
delay(100);
digitalWrite(ledPins[i], LOW);
}
}
// Режим 4. Пинг-понг
void pingPong() {
for (int i = 0; i < arrayLength; i++) {
digitalWrite(ledPins[i], HIGH);
delay(80);
digitalWrite(ledPins[i], LOW);
}
for (int i = arrayLength - 2; i > 0; i--) {
digitalWrite(ledPins[i], HIGH);
delay(80);
digitalWrite(ledPins[i], LOW);
}
}
// Режим 5. Встречный бегущий свет
void meetingLight() {
int mid = arrayLength / 2;
for (int i = 0; i <= mid; i++) {
if (i < arrayLength) digitalWrite(ledPins[i], HIGH);
if (arrayLength - 1 - i >= 0) digitalWrite(ledPins[arrayLength - 1 - i], HIGH);
delay(150);
if (i < arrayLength) digitalWrite(ledPins[i], LOW);
if (arrayLength - 1 - i >= 0) digitalWrite(ledPins[arrayLength - 1 - i], LOW);
}
}
// Режим 6. Эффект звезды
void starburstEffect() {
int mid = arrayLength / 2;
for (int offset = 0; offset <= mid; offset++) {
if (mid - offset >= 0) digitalWrite(ledPins[mid - offset], HIGH);
if (mid + offset < arrayLength) digitalWrite(ledPins[mid + offset], HIGH);
delay(100);
}
for (int i = 0; i < arrayLength; i++) {
digitalWrite(ledPins[i], LOW);
}
delay(200);
- Используется массив для управления несколькими светодиодами.
- Применяются конструкции for, switch-case, digitalWrite, analogRead.
- Эффекты построены на простых циклах и задержках delay().
- Потенциометр позволяет плавно переключаться между режимами.
◾️Описание режимов
№ режима | Название | Описание действия |
---|---|---|
0 | Все мигают | Все светодиоды загораются и гаснут одновременно. |
1 | Последовательное мигание | Светодиоды загораются один за другим. |
2 | Эффект свечи | Светодиоды случайно мерцают с разной скоростью. |
3 | Бегущий огонь | Светодиоды включаются по очереди слева направо. |
4 | Пинг-понг | Светодиоды загораются в обе стороны последовательно. |
5 | Встречный бегущий свет | Светодиоды бегут с краёв к центру. |
6 | Эффект звезды | Светодиоды загораются от центра к краям. |
💿 Демонстрация на 🔗 ВИДЕО (click)
✅ Вывод
Проект демонстрирует основы работы с массивами, циклами и аналоговыми входами на Arduino.
Гирлянда создаёт разные световые эффекты и позволяет пользователю самостоятельно управлять их сменой с помощью потенциометра.