Potentsiomeetri kasutamine
Katse 2 – Potentsiomeetri kasutamine:
Используемые компоненты:
- Arudiono Uno 1 шт
- Плата 1 шт
- Светодиод 1 шт
- Резистор 220 Om
- Потенциометр 1 шт
- Провода 7 шт
Схема соединения:
Код:
int sensorPin = 0;
int ledPin = 13;
int sensorValue = 0;
void setup()
{
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
sensorValue = analogRead(sensorPin); // loeb analoog sisendi väärtust ja saadab tagasi täisarvu vahemikus 0 kuni 1023. See tähendab 10 bitilist täpsust (2^10 = 1024).
digitalWrite(ledPin, HIGH);
delay(sensorValue);
digitalWrite(ledPin, LOW);
delay(sensorValue);
float voltage = sensorValue * (5.0 / 1023.0); // konverteerime väärtuse (0 - 1023) ja tagastab (0 - 5V):
Serial.println(voltage); // Saadud tulemused kirjutame Serial Monitori.
}
Пояснение кода:
Этот скетч на Arduino считывает значение с потенциометра — это ручной регулятор, с помощью которого можно менять напряжение, подаваемое на аналоговый вход.
В зависимости от положения ручки потенциометра:
- А в Serial Monitor выводится рассчитанное напряжение в вольтах от 0 до 5V.
- Светодиод мигает быстрее или медленнее (значение задержки зависит от полученного сигнала),
- pinMode(ledPin, OUTPUT); – Устанавливаем режим пина 13 как OUTPUT — теперь мы можем подавать сигнал на светодиод (вкл/выкл).
- Serial.begin(9600); – Запускаем сериал-порт на скорости 9600 бод, чтобы можно было выводить данные в Serial Monitor
analogRead(sensorPin)
– возвращает значение от 0 до 1023, которое соответствует входному напряжению от 0 до 5 Вольт (10-битная точность: 2¹⁰ = 1024 шагов).- digitalWrite(ledPin, HIGH); – Включаем светодиод (подаём на пин 13 высокий уровень — 5В).
- delay(sensorValue); – Задержка в миллисекундах. Чем больше значение
sensorValue
, тем дольше горит светодиод. - digitalWrite(ledPin, LOW); – Выключаем светодиод.
- float voltage = sensorValue * (5.0 / 1023.0); – Переводим значение от 0 до 1023 в напряжение от 0 до 5 В. Формула основана на делении всего диапазона (5.0 В) на 1023 возможных значения.
- Serial.println(voltage); – Печатаем напряжение в монитор порта. Можно наглядно увидеть, как оно меняется при повороте ручки потенциометра.
Ülesanne 2 – Гирлянда-Valguskett
Описание работы:
Данный проект реализует световую гирлянду из пяти светодиодов, управляемую с помощью потенциометра. В зависимости от положения ручки потенциометра, пользователь может выбирать один из пяти предустановленных режимов свечения, каждый из которых реализует уникальный визуальный эффект.
Используемые компоненты:
- Arudiono Uno 1 шт
- Плата 1 шт
- Светодиод 5 шт
- Резистор 220 Om 5 шт
- Потенциометр 10 кОм 1 шт
- Провода 10 шт
Схема соединения:


Код:
// Пины для светодиодов
const int leds[] = {2, 4, 6, 8, 13};
const int numLeds = 5;
const int potPin = A0; // Потенциометр
void setup() {
// Настройка всех светодиодов
for(int i = 0; i < numLeds; i++) {
pinMode(leds[i], OUTPUT);
}
}
void loop() {
// Выбор режима потенциометром (0-4)
int mode = map(analogRead(potPin), 0, 1023, 0, 5);
// Выполнение текущего режима
switch(mode) {
case 0: allBlink(); break; // Все мигают
case 1: oneByOne(); break; // По очереди
case 2: byColor(); break; // По цветам
case 3: randomBlink(); break; // Случайные
case 4: runningLight(); break;// Бегущий огонь
}
delay(100); // Небольшая задержка
}
// 1. Все мигают одновременно
void allBlink() {
for(int i = 0; i < numLeds; i++) {
digitalWrite(leds[i], HIGH);
}
delay(300);
for(int i = 0; i < numLeds; i++) {
digitalWrite(leds[i], LOW);
}
delay(300);
}
// 2. Поочередное мигание
void oneByOne() {
static int current = 0;
digitalWrite(leds[current], LOW);
current = (current + 1) % numLeds;
digitalWrite(leds[current], HIGH);
delay(200);
}
// 3. По цветам
void byColor() {
static int color = 0;
allOff();
digitalWrite(leds[color % 3], HIGH);
color = (color + 1) % 3;
delay(400);
}
// 4. Случайные светодиоды
void randomBlink() {
allOff();
digitalWrite(leds[random(numLeds)], HIGH);
delay(200);
}
// 5. Бегущий огонь
void runningLight() {
static int pos = 0;
static bool forward = true;
allOff();
digitalWrite(leds[pos], HIGH);
if(forward) {
pos++;
if(pos >= numLeds-1) forward = false;
} else {
pos--;
if(pos <= 0) forward = true;
}
delay(150);
}
// Вспомогательная функция - выключить все
void allOff() {
for(int i = 0; i < numLeds; i++) {
digitalWrite(leds[i], LOW);
}
}
Процесс работы:
- Светодиоды подключены к цифровым пинам
2
,4
,6
,8
, и13
. - Потенциометр подключен к аналоговому пину
A0
и используется для выбора режима работы гирлянды. - В функции
loop()
значение с потенциометра считывается и преобразуется с помощьюmap()
в число от 0 до 4 — это и есть номер текущего режима. - В зависимости от режима, запускается одна из пяти функций, каждая из которых определяет поведение гирлянды.
Режим 0: Все мигают
- Функция:
allBlink()
- Все светодиоды одновременно включаются на 300 мс, затем выключаются на 300 мс.
- Эффект: классическое мигание гирлянды.
Режим 1: Поочерёдное мигание
- Функция:
oneByOne()
- Светодиоды включаются по одному: текущий выключается, следующий загорается.
- Эффект: «волна» из светодиодов, двигающаяся по очереди.
Режим 2: По цветам
- Функция:
byColor()
- Включается один светодиод из первых трёх (подразумевается, что они разных цветов).
- Светодиоды загораются по кругу: 0 → 1 → 2 → 0 → …
- Эффект: смена «цветов» — если использовать RGB или разноцветные светодиоды.
Режим 3: Случайные вспышки
- Функция:
randomBlink()
- Каждый раз случайным образом включается один светодиод, остальные выключаются.
- Эффект: «мерцание» гирлянды в случайном порядке.
Режим 4: Бегущий огонь
- Функция:
runningLight()
- Один светодиод включается и «бежит» по ряду туда-обратно.
- Эффект: классический “бегущий огонь” — движущийся свет.
Функции-помощники
allOff()
— выключает все светодиоды. Используется в большинстве режимов для сброса перед включением нужных.
Видео:
Применение потенциометра в разных проектах:
Учебные и хобби-проекты
- Регулятор громкости — крутишь ручку — меняется громкость зуммера или динамика.
- Управление яркостью LED — плавно меняет яркость свечения.
Умный дом
- Ручной регулятор температуры — задаёшь нужную температуру, система сравнивает с датчиком и греет/охлаждает.
- Сценарий освещения — настройка уровня света в зависимости от времени суток.
- Контроль положения штор — крутишь — шторы поднимаются или опускаются.
- Установка таймера — чем дальше крутишь, тем больше времени задаётся (например, на полив или включение света).
Автомобильные проекты
- Регулятор подсветки приборной панели — плавное изменение яркости.
- Имитация акселератора — в учебных автосимуляторах.
- Управление RC-моделями — используется как контроллер поворота руля или газа.
Робототехника и мехатроника
- Ручное управление сервоприводом — удобно при обучении.
- Обратная связь по положению — когда потенциометр прикреплён к суставу робота.
- Управление скоростью вращения мотора — потенциометр как газ в мини-роботе.
- Настройка чувствительности датчиков — прямо на месте без перепрошивки.
Арт и инсталляции
- Интерактивное освещение — зритель крутит ручку и меняет цвет/интенсивность света.
- Музыкальные инструменты — создание аналоговых синтезаторов.
Научные и лабораторные приборы
- Калибровка измерительных приборов — например, точная настройка шкалы.
- Лабораторный источник питания — задание напряжения с помощью потенциометра.
- Симуляция аналоговых сигналов — удобно при тестировании систем с переменным входом.