Необходимые компоненты:
* Arduino UNO или аналогичный
* Светодиодная лента WS2812B
* Блок питания 5 В
* Соединительные провода
Схема подключения:
Подключите светодиодную ленту к выводу 6 Arduino, а питание — к выводу 5В и землю — к выводу GND.
Код для плавного сдвига:
«`c++
include
define NUM_PIXELS 30 // Количество светодиодов на ленте
define LED_PIN 6 // Вывод Arduino, к которому подключена лента
Adafruit_NeoPixel strip(NUM_PIXELS, LED_PIN, NEO_GRB + NEO_KHZ800);
int position = 0; // Текущая позиция текста на ленте
void setup() {
strip.begin(); // Инициализировать светодиодную ленту
strip.setBrightness(100); // Установить яркость
}
void loop() {
// Заполнить светодиодную ленту черным цветом
strip.fill(strip.Color(0, 0, 0));
// Написать текст на ленте
strip.setText(«Привет, Ардуино!»);
strip.setTextColor(strip.Color(255, 255, 255));
strip.setTextPosition(position);
strip.show();
// Переместить текст влево
position—;
if (position < -strip.textWidth()) {
position = NUM_PIXELS - 1;
}
// Задержка перед повторением цикла
delay(10);
}
```
Как это работает:
1. Импортируйте библиотеку Adafruit NeoPixel, необходимую для управления светодиодной лентой WS2812B.
2. Определите количество светодиодов на ленте, вывод Arduino, к которому она подключена, и используемый тип пикселей (в этом случае NEO_GRB + NEO_KHZ800).
3. Инициализируйте объект светодиодной ленты и установите начальную яркость.
4. В цикле `loop()`:
- Очистите светодиодную ленту от всех цветов.
- Выведите текст на ленту с помощью метода `setText()` и установите его позицию с помощью `setTextPosition()`.
- Отобразите измененную ленту с помощью `show()`.
- Переместите текст влево и проверьте, не вышел ли он за пределы ленты. Если это так, сбросьте его в начало ленты.
- Сделайте паузу перед повторением цикла.
Настройка:
* Загрузите код в Arduino.
* Подключите светодиодную ленту к Arduino и блоку питания.
* Установите желаемое количество светодиодов и вывод Arduino в соответствии с вашей настройкой.