Top.Mail.Ru
Ответы

Проект на ардуино помогите

здраствуйте, помогите мне пожалуйста!
я делаю светильник, проект в школу, но не получается у меня поставить хорошие анимации и режимы для адресной ленты, из которой состоит мой светильник. у светильника есть сенсорная кнопка, которая будет переключать режим светодиодов. нашел сайт с некоторыми режимами светодиодов. если с этого сайта скопировать код в arduino ide, то он прекрасно работает (все мигает, светиться красиво). я решил почему бы не добавить такой код к себе в скетч. по моей задумке я сделал такой скетч (конечно, тут не обошлось без ИИ):
#include <FastLED.h>

#define LED_PIN 6
#define NUM_LEDS 60

CRGB leds[NUM_LEDS];

#define BUTTON_PIN 2

int buttonState = HIGH;
int prevButtonState = HIGH;
int buttonPressCounter = 0;

byte bright = 50; // яркость LED светодиодов
byte baza = 0; // изменение оттенка LED

void setup() {
pinMode(BUTTON_PIN, INPUT_PULLUP);
FastLED.addLeds<WS2812B, LED_PIN, GRB>(leds, NUM_LEDS);
FastLED.setBrightness(50);
FastLED.addLeds <WS2812, LED_PIN, GRB>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip);
FastLED.setBrightness(bright);

}

void loop() {
buttonState = digitalRead(BUTTON_PIN);

if (buttonState != prevButtonState) {
if (buttonState == LOW) {
buttonPressCounter++;
if (buttonPressCounter > 8) {
buttonPressCounter = 1;
}

switch (buttonPressCounter) {
case 1:
fill_solid(leds, NUM_LEDS, CRGB(255, 0, 0));
break;
case 2:
fill_solid(leds, NUM_LEDS, CRGB(255, 102, 0));
break;
case 3:
fill_solid(leds, NUM_LEDS, CRGB(255, 223, 0));
break;
case 4:
fill_solid(leds, NUM_LEDS, CRGB(0, 128, 0));
break;
case 5:
fill_solid(leds, NUM_LEDS, CRGB(0, 191, 255));
break;
case 6:
fill_solid(leds, NUM_LEDS, CRGB(0, 0, 255));
break;
case 7:
fill_solid(leds, NUM_LEDS, CRGB(139, 0, 255));
break;
case 8:
fadeToBlackBy(leds, NUM_LEDS, 2);
for (int i = 0; i < 8; i++) {
leds[beatsin16(i + 7, 0, NUM_LEDS - 1)] |= CHSV(baza+=16, 200, 255);
}
FastLED.setBrightness(bright);
FastLED.show();
delay(20);
break;
}

FastLED.show();
}
}

prevButtonState = buttonState;
}
задумка это кода в том что на первые 7 нажатий по порядку идут все цвета радуги, на 8 нажатие кнопки должен заработать код который я вставил с сайта. нажимаю на кнопку. светодиоды загорелись, но нет анимации режима. я не понимаю почему не работает.
вот код, который я с такого сайта ( https://роботехника18.рф/библиотека-fastled/ ):

#include "FastLED.h" // подключаем библиотеку фастлед

byte bright = 50; // яркость LED светодиодов
byte baza = 0; // изменение оттенка LED

#define NUM_LEDS 100
#define PIN 4
CRGB leds[NUM_LEDS];

void setup() {
FastLED.addLeds <WS2812, PIN, GRB>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip);
FastLED.setBrightness(bright);
}

void loop() {
for (int i = 0; i < NUM_LEDS; i++) {
leds[i].nscale8(250);
}
for (int i = 0; i < NUM_LEDS; i++) {
leds[i] = CHSV(baza++, 255, 255);
FastLED.setBrightness(bright);
FastLED.show();
delay(20);
}
}

По дате
По Рейтингу
Аватар пользователя
Просветленный

С каких пор на ардуино пишут на С++, разве там не javascript?

Аватар пользователя
Просветленный

Сейчас в этой мешанине честно говоря сложно разобрать, что и куда не заработало, лучше переписать с 0?

Удаленный ответ Ответ удалён