Помогите пожалуйста с кодом arduino

Здравствуйте, надеюсь найтидобрую душу,которая поможет с реализацией небольшого кода для адресной ленты. Нужно сделать эффект плавного переключения ленты как на видео, к сожалению в программировании я 0, пытался и всю голову сломал с этими циклами и тд.
Может найдется добрый человек,который поможет с кодом?) Макет собрал,а с кодом запара. Буду безмерно благодарен

Arduino & Pi

1.4K поста20.6K подписчика

Добавить пост

Правила сообщества

В нашем сообществе запрещается:

• Добавлять посты не относящиеся к тематике сообщества, либо не несущие какой-либо полезной нагрузки (флуд)

• Задавать очевидные вопросы в виде постов, не воспользовавшись перед этим поиском

• Выкладывать код прямо в посте - используйте для этого сервисы ideone.com, gist.github.com или схожие ресурсы (pastebin запрещен)

• Рассуждать на темы политики

• Нарушать установленные правила Пикабу

Автор поста оценил этот комментарий

Соплеклей наше всё :)


PS но убить светодиодную ленту играми с кодом - это жестоко и страшно :D

раскрыть ветку (1)
Автор поста оценил этот комментарий
Там скорее пайка "убилась", пока его тягали 300 раз, да и сделан он был на коленке, поэтому было принято решение переделать макет, а чтобы придать ему железобетонной прочности залили соплями)

Ваш заяц как и просили, художник из меня не очень конечно, но я старался)
Иллюстрация к комментарию
показать ответы
раскрыть ветку (1)
Автор поста оценил этот комментарий
На работе задерживаюсь, как приеду домой сразу сяду рисовать зайца:) пока скину тестовую схему на всякий) прошлая после всех наших попыток с кодом пришла в негодность (
Иллюстрация к комментарию
показать ответы
Автор поста оценил этот комментарий

Если готов отдать за помощь рисунок зайца ( нарисованного тобой любым способом, на листочке, в пейнте, любым) - то скинь то что у тебя получилось, посмотрю )

раскрыть ветку (1)
Автор поста оценил этот комментарий
Хорошо,согласен, вечером нарисую лучшего зайца, даже разноцветного)

Вот что мы коллективным разумом наклепали

#include <FastLED.h>

#define LED_PIN 11
#define NUW_LEDS 40
#define BRIGHTNESS 60

CRGB leds[NUW_LEDS];

void setup() {
FastLED.addLeds<WS2812, LED_PIN, RGB>(leds, NUW_LEDS);
FastLED.setBrightness(BRIGHTNESS);
FastLED.show();
FastLED.clear();
}

void loop() {
line();
}

void strips(int step, int strip) {
for(int i=0; i<strip;i++){
leds[step+i]=CRGB(195,5,221);
leds[NUW_LEDS-1-step-i]=CRGB(5,195,221);
}
}

void line(){
int strip = 4;
for (int j=0; j<NUW_LEDS/2; j=j+strip){
for(int i=0; i < BRIGHTNESS; i=i+20){
strips(j, strip);
FastLED.setBrightness(i);
FastLED.show();
}
delay(500);
FastLED.clear();
}
}


Но переключает оно резко, хоть и правильно,не знаем как добавить эффект затухания и "переливания" из цвета в цвет как на видео
показать ответы
Автор поста оценил этот комментарий

@Vadim.F и как оно, уже светится?

раскрыть ветку (1)
Автор поста оценил этот комментарий
К сожалению нет, пробовал код из chat gpt - код работает некорректно, тьма короче. Попробовал с консультации знакомого написать сам, получилось переключение цветов как надо, но цвета переключаются резко и сразу,нет эффекта затухания и плавности,сломал голову,но так и не получилось допилить до нужного результата
показать ответы
Автор поста оценил этот комментарий

куски ленты подключены последовательно? Или на разные выходы ардуинки?

раскрыть ветку (1)
Автор поста оценил этот комментарий
Последовательно, на 1 ардуинку
показать ответы
Автор поста оценил этот комментарий

Покажите схему, что именно собрали.

раскрыть ветку (1)
Автор поста оценил этот комментарий
Тестовый макет по 4 светодиода на линию
Иллюстрация к комментарию
показать ответы
1
Автор поста оценил этот комментарий

Попробуйте спросить у ChatGPT, указав исходные данные (к каким пинам что подключено, тип светодиодов, итд) и желаемый результат.  Алекс Гайвер, недавно, показывал что это работает у него как раз примеры со светодиодными лентами были

раскрыть ветку (1)
Автор поста оценил этот комментарий

Вот что он мне настрочил, то чно надо или нет?)



#include <FastLED.h>
// Define the number of LEDs in the strip#define NUM_LEDS 30
// Define the data pin for the LED strip#define DATA_PIN 6
// Define the number of sections and the length of each section#define NUM_SECTIONS 3#define SECTION_LENGTH (NUM_LEDS / NUM_SECTIONS)
// Define the transition duration in millisecondsconst unsigned int transitionDuration = 5000;
// Variable to store the current sectionint currentSection = 0;
// Define the LED strip objectCRGB leds[NUM_LEDS];
void setup() { // Initialize the LED strip FastLED.addLeds<WS2812B, DATA_PIN, GRB>(leds, NUM_LEDS);}
void loop() { // Calculate the start and end indexes of the current section int startIndex = currentSection * SECTION_LENGTH; int endIndex = (currentSection + 1) * SECTION_LENGTH;
// Calculate the blend ratio based on the current section float blendRatio = map(millis() % transitionDuration, 0, transitionDuration, 0, 255) / 255.0;
// Set the colors for the current section for (int i = startIndex; i < endIndex; i++) { leds[i] = CRGB::Red; // Example color, you can modify it as needed leds[i] = blend(CRGB::Black, CRGB::Red, blendRatio); // Blends from Black to Red }
// Show the colors on the LED strip FastLED.show();
// Increment the current section currentSection++;
// Wrap back to the first section if the end is reached if (currentSection >= NUM_SECTIONS) { currentSection = 0; }
// Delay between sections delay(10);}
1
Автор поста оценил этот комментарий

Эх, я добрый, но корыстный :)

раскрыть ветку (1)
Автор поста оценил этот комментарий

ну а за огрооооомное спасибо?))

показать ответы