#include <Adafruit_NeoPixel.h>
const byte hpin = A0, vpin = A1;
const byte led_din = 11;
const byte led_num = 20;
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(led_num, led_din, NEO_GRB+NEO_KHZ800);
int led_index = 0;
int color = 128;
void setup() {
Serial.begin(9600);
pixels.begin();
pixels.show();
}
void loop(){
check_direction();
for (int i = 0; i < led_num; i++) pixels.setPixelColor(i, 0, 255, color);
pixels.setPixelColor(led_index, color, 0, 255);
pixels.show();
delay(150);
}
void check_direction() {
if (analogRead(hpin) > 512) led_index++;
else if (analogRead(hpin) < 512) led_index--;
else if (analogRead(vpin) > 512) color += 10;
else if (analogRead(vpin) < 512) color -= 10;
if (led_index == led_num) led_index = 0;
if (led_index == -1) led_index += led_num;
color = constrain(color, 0 , 255);
}