Как добавить изменение цвета к стробоскопическому кодированию?
У меня этот стробоскопический эффект работает. Однако я хотел бы изменить цвет светодиодов после каждой "стробоскопической последовательности". Как этого можно достичь? Код, который я использую, это:
// Basic code NeoPixel
// wwww.arduinoplatform.com
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h> // Required for 16 MHz Adafruit Trinket
#endif
// Which pin on the Arduino is connected to the NeoPixels?
// On a Trinket or Gemma we suggest changing this to 1:
#define LED_PIN 6
// How many NeoPixels ar
Adafruit_NeoPixel strip = Adafruit_NeoPixel(60, 6, NEO_GRB + NEO_KHZ800);
void setup() {
strip.begin();
strip.show(); // Initialize all pixels to 'off'
}
// *** REPLACE FROM HERE ***
void loop() {
// Slower:
// Strobe(0xff, 0x77, 0x00, 10, 100, 1000);
// Fast:
Strobe(0xFF, 0x00, 0xF8, 10, 50, 1000);
}
void Strobe(byte red, byte green, byte blue, int StrobeCount, int FlashDelay, int EndPause){
for(int j = 0; j < StrobeCount; j++) {
setAll(red,green,blue);
showStrip();
delay(FlashDelay);
setAll(0,0,0);
showStrip();
delay(FlashDelay);
}
delay(EndPause);
}
// *** REPLACE TO HERE ***
void showStrip() {
#ifdef ADAFRUIT_NEOPIXEL_H
// NeoPixel
strip.show();
#endif
}
void setPixel(int Pixel, byte red, byte green, byte blue) {
#ifdef ADAFRUIT_NEOPIXEL_H
// NeoPixel
strip.setPixelColor(Pixel, strip.Color(red, green, blue));
#endif
}
void setAll(byte red, byte green, byte blue) {
for(int i = 0; i < 64; i++ ) {
setPixel(i, red, green, blue);
}
showStrip();
}
@Ana, 👍1
Обсуждение1 ответ
Я думаю, вы хотите циклически перебирать список определенных цветов с помощью стробоскопического эффекта. Для этого вы можете сохранить цвета в 2-мерном массиве, а затем пройтись по нему циклом for. Затем 2-мерный массив представляет собой группу цветов, каждый из которых определяется 3 числами для значения RGB. Примерно так:
#define NUM_COLORS 5
byte colors[NUM_COLORS][3] = {
{0xFF, 0, 0},
{0, 0xFF, 0},
{0, 0, 0xFF},
{0xFF, 0xFF, 0},
{0, 0xFF, 0xFF}
};
void loop(){
for(int i=0;i<NUM_COLORS;i++){
Strobe(colors[i][0], colors[i][1], colors[i][2], 10, 50, 1000);
}
}
Обратите внимание, что это не полный код, а только интересные части. Вы можете включить это в свой код. Вы можете изменить количество цветов и сами цвета по своему вкусу (я взял только некоторые примеры значений, которые легко распознать).
- avrdude ser_open() can't set com-state
- Загрузка Arduino Nano дает ошибку: avrdude: stk500_recv(): programmer is not responding
- Какое максимальное энергопотребление Arduino Nano 3.0?
- Как навсегда изменить скорость передачи данных ESP8266 (12e)?
- Питание светодиодной ленты - Сколько ампер?
- Arduino nano как клавиатура HID
- Как я могу запитать Arduino Nano от батареи LiPo, желательно 3,7 В
- В чем разница между библиотеками Software Serial? Какая из них совместима с Arduino Nano?
измените первые три параметра в " Стробоскоп(0xFF, 0x00, 0xF8, 10, 50, 1000)";, @jsotola