укажите имя функции класса в качестве параметра
Я пытаюсь написать код с использованием библиотеки FastLed
, чтобы иметь светодиодную полосу с тремя состояниями (цвет или яркость), используя физический переключатель ввода, в то время как каждое нажатие будет менять цвет светодиодов, используя предопределенный список.
Приведенный ниже код демонстрирует 1) создание colorPallete
из двух цветов 2) попытку использовать его в цикле
, но безуспешно.
#include <FastLED.h>
// Сколько светодиодов в вашей ленте?
#define NUM_LEDS 1
// Для светодиодных чипов, таких как Neopixels, у которых есть линия передачи данных, заземление и питание, вы просто
// необходимо определить DATA_PIN. Для светодиодных чипсетов на основе SPI (четыре провода — данные, часы,
// земля и питание), как и LPD8806, определяют как DATA_PIN, так и CLOCK_PIN
#define DATA_PIN 3
//#определить CLOCK_PIN 13
// Определяем массив светодиодов
CRGB leds[NUM_LEDS];
int colorSelctor = 0;
int birughtSelector = 25;
int inputPin = 13;
char *colorPallete[2] = {"Red","Blue"};
void setup() {
// FastLED.addLeds<WS2812, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<WS2812B, DATA_PIN, RGB>(leds, NUM_LEDS);
FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);
pinMode(inputPin, INPUT_PULLUP);
}
void loop() {
// Включаем светодиод, затем делаем паузу
leds[0] = CRGB::colorPallete[0];
FastLED.show();
delay(500);
// Теперь выключим светодиод, затем сделаем паузу
leds[0] = CRGB::Black;
FastLED.show();
delay(500);
}
@Guy . D, 👍0
Обсуждение1 ответ
Лучший ответ:
▲ 3
CRGB::Red
и т. д. — это просто цифры. Вы должны относиться к ним соответственно.
uint32_t colorPallette[2] = { CRGB::Red, CRGB::Blue };
А потом:
leds[0] = colorPallete[0];
Из pixeltypes.h
:
/// Предопределенные цвета RGB
typedef enum {
AliceBlue=0xF0F8FF,
Amethyst=0x9966CC,
AntiqueWhite=0xFAEBD7,
Aqua=0x00FFFF,
Aquamarine=0x7FFFD4,
Azure=0xF0FFFF,
Beige=0xF5F5DC,
Bisque=0xFFE4C4,
Black=0x000000,
... etc ...
} HTMLColorCode;
,
@Majenko
Это отличный обходной путь! (тем более, что я не понял решение выше). Спасибо!!!, @Guy . D
Смотрите также:
- Какие накладные расходы и другие соображения существуют при использовании структуры по сравнению с классом?
- Ошибка: "недопустимое использование нестатической функции-члена" при вызове функции из моего собственного класса-метода
- Массив динамического размера в качестве члена класса
- Как перебрать объекты или передать объект функции?
- C++ Undefined reference to 'Class:Function()'
- Прерывания внутри класса, связанные с функцией класса
- Присоедините функцию Arduino ISR к члену класса
- Недопустимое использование нестатической функции-члена
Я не вижу, чтобы цветовая палитра использовалась в вашей функции цикла, и мне интересно, как строковое имя может работать как определение цвета. Я могу интерпретировать этот вопрос только так: «Мне нужно что-то сделать, можете ли вы сделать это для меня?» это не является целью StackExchange, @Roberto Lo Giacco