Dear all,
for a small project i am building a led strip that has to be controlled from the middle with a potmeter.
i have a code that starts from led 1.
now i can make 2 strips and let them start from the middle,but i thought it was easier to program it.
i tried several steps,but i can't get it to work.
maybe some of you guys can give me the smoking gun?
anyway,here is the program i tried to modify but failed to do it.
Thanks in advance:D
#include "FastLED.h"
#define PIN_SLIDE_POT_A A0 // input pin of the slide pot
#define MAX_SLIDE_POT_ANALGOG_READ_VALUE 1023// maximum voltage as analog-to-digital converted value, depends on the voltage level of the VCC pin. Examples: 5V = 1023; 3.3V ~700
#define NUM_LEDS 200 // add number of LEDs of your RGB LED strip
#define PIN_LED 3 // digital output PIN that is connected to DIN of the RGB LED strip
#define LED_COLOR CRGB::Green // see Pixel reference · FastLED/FastLED Wiki · GitHub for a full list, e.g. CRGB::AliceBlue, CRGB::Amethyst, CRGB::AntiqueWhite...
CRGB rgb_led[NUM_LEDS]; // color array of the LED RGB strip
void setup() {
Serial.begin(9600);
pinMode(PIN_SLIDE_POT_A, INPUT);
FastLED.addLeds<WS2812B, PIN_LED>(rgb_led, NUM_LEDS);
Serial.println("Setup done.");
}
void loop() {
// 1) Analog value of slide pot is read
int value_slide_pot_a = analogRead(PIN_SLIDE_POT_A);
Serial.print("Slide Pot value: ");
Serial.println(value_slide_pot_a);
// 2) Analog value is mapped from slide pot range (analog input value) to led range (number of LEDs)
int num_leds_switchedon = map(value_slide_pot_a, 0, MAX_SLIDE_POT_ANALGOG_READ_VALUE, 0, NUM_LEDS);
// 3) Light up the LEDs
// Only LEDs are switched on which correspond to the area left of the slide knob
for (int i =0; i < num_leds_switchedon; ++i )
{
rgb_led[i] = LED_COLOR; }
// LEDs are switched off which correspond to the area right of the slide knob
for (int i = num_leds_switchedon; i < NUM_LEDS; ++i) {
rgb_led[i] = CRGB::Black;
}
FastLED.show();
}