🛒
0 товар.
0 руб.
Логотип

Интернет-магазин «Неглупый Дом»

☰
ИИ-консультант Wildberries OZON Яндекс Маркет
Поиск по сайту
Гугл таблица с ассортиментом

🌀 Проект: POV-дисплей на вращающемся шаговом двигателе 28BYJ-48

Шаговый двигатель 28BYJ-48 и RGB-светодиод

Пока 28BYJ-48 крутит диск, закреплённый RGB-светодиод меняет цвет синхронно с углом — на скорости видно вращающееся цветное кольцо.

Как это работает

POV — «persistence of vision», инерция зрительного восприятия: глаз сохраняет яркое изображение на долю секунды. Быстро вращая точку света с меняющимся цветом, мозг видит не точку, а целое плавное кольцо градиента — реального диска или экрана не существует, это оптическая иллюзия от скорости вращения.

Код отслеживает `currentStep` — положение в пределах оборота, переводит в угол через `map()` и на основе этого вычисляет яркость красного/зелёного каналов, создавая плавный переход по кольцу.

Пошаговая сборка

Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, что указаны ниже — сориентируйтесь по названиям контактов на своей плате.

  1. Подключите ULN2003: IN1-IN4 → D8, D9, D10, D11, VCC → отдельное 5V, GND → GND.
  2. Закрепите RGB-светодиод на диске, подключив R/G через контактные кольца или гибкий провод с запасом хода.
  3. Без контактных колец ограничьте число оборотов, чтобы провод не перекрутился.

Скетч

// ВНИМАНИЕ: рекомендую отладить код через монитор порта, так как я языковая
// модель, а не специализированный кодер, и могу что-то упустить. Основу
// и идею я накидал, но проверьте под свою схему.

#include <Stepper.h>

const int stepsPerRevolution = 2048;
Stepper myStepper(stepsPerRevolution, 8, 10, 9, 11);

const int redPin = 5;
const int greenPin = 6;
long currentStep = 0;

void setup() {
  Serial.begin(9600);
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  myStepper.setSpeed(15);
}

void loop() {
  myStepper.step(1);
  currentStep = (currentStep + 1) % stepsPerRevolution;

  int angle = map(currentStep, 0, stepsPerRevolution, 0, 255);
  analogWrite(redPin, angle);
  analogWrite(greenPin, 255 - angle);
}
                

Для провода к вращающемуся диску нужны контактные кольца или гибкий провод с запасом хода.

Частые проблемы

Как улучшить проект

Товары по теме

Ещё модули для Arduino: Электронные модули.

← 🕹️ управление цветом RGB-светодио…📡 тренажёр азбуки Морзе на кнопк… →

🎁 Купить весь комплект со скидкой 10%

Все 2 товара сразу: 269 ₽ 242 ₽ (экономия 27 ₽)

Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.

Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.

Корзина

Поиск


Пример: понижающий или DC-DC или mini360 или aw-023 или арт. OZ/WB/YA