added README.md
This commit is contained in:
parent
2405daa4d9
commit
c294e90302
82
README.md
82
README.md
@ -1,3 +1,81 @@
|
||||
# led
|
||||
# STM32 WS2812 LED Control (TIM2 Interrupt)
|
||||
|
||||
Управление светодиодной лентой по SPI с помощью платы разработки jzf407vet6 контроллера stm32
|
||||
## 📘 Описание
|
||||
|
||||
Данный проект демонстрирует управление адресной светодиодной лентой
|
||||
WS2812 с использованием таймера TIM2 на микроконтроллере STM32F407VET6.
|
||||
|
||||
При каждом срабатывании таймера: - переключается GPIO (индикатор
|
||||
работы) - гасится вся лента - зажигается один светодиод - цвет
|
||||
выбирается циклически - создаётся эффект "бегущего огня"
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
## ⚙️ Основная функция
|
||||
|
||||
``` c
|
||||
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
|
||||
{
|
||||
if(htim->Instance == TIM2)
|
||||
{
|
||||
HAL_GPIO_TogglePin(GPIOE, GPIO_PIN_15);
|
||||
|
||||
for (int i = 0; i < LED_COUNT; i++)
|
||||
{
|
||||
setLED(i, 0, 0, 0);
|
||||
}
|
||||
|
||||
setLED(pos,
|
||||
colors[pos % COLOR_COUNT][0],
|
||||
colors[pos % COLOR_COUNT][1],
|
||||
colors[pos % COLOR_COUNT][2]);
|
||||
|
||||
WS2812_Send();
|
||||
|
||||
pos++;
|
||||
if (pos >= LED_COUNT)
|
||||
pos = 0;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
## 🧠 Логика работы
|
||||
|
||||
1. Проверка таймера (TIM2)
|
||||
2. Переключение пина (индикация)
|
||||
3. Очистка всех светодиодов
|
||||
4. Установка одного активного светодиода
|
||||
5. Отправка данных в WS2812
|
||||
6. Смещение позиции
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
## 🎯 Результат
|
||||
|
||||
Создаётся визуальный эффект: - один "бегущий" светодиод - автоматическая
|
||||
смена цветов - плавное зацикливание
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
## 🧩 Используемое оборудование
|
||||
|
||||
- Микроконтроллер: STM32F407VET6 (Cortex-M4, 168 MHz)
|
||||
- Светодиодная лента: WS2812
|
||||
- Таймер: TIM2
|
||||
- GPIO: GPIOE PIN 15
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
## 🖼️ Плата разработки
|
||||
|
||||
https://giteadocker2.fvds.ru/pavel/led/src/branch/main/jz%20f407vet6.png
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
## 🚀 Примечания
|
||||
|
||||
- Убедитесь, что таймер TIM2 настроен и запущен с прерыванием
|
||||
- WS2812 требует точного тайминга --- обычно используется DMA + PWM
|
||||
- Частота обновления зависит от настроек таймера
|
||||
|
||||
Loading…
Reference in New Issue
Block a user