#include <Adafruit_NeoPixel.h>
#define ledpin 6 // Pin voor NeoPixel
#define aantal_leds 8 // Aantal LEDs
#define knopPin 7 // Pin waar de drukknop op is aangesloten
#define potPin A0 // Pin waar de potentiometer op is aangesloten
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(aantal_leds, ledpin, NEO_GRB + NEO_KHZ800);
int knopStatus = 0; // Variabele om knopstatus bij te houden
int huidigeKleur = 0; // Variabele om de huidige kleur bij te houden
int helderheid = 0; // Variabele om de helderheid bij te houden
void setup() {
pinMode(knopPin, INPUT); // Zet de knopPin als invoer
Serial.begin(9600); // Start seriële communicatie
pixels.begin(); // Start verbinding met de LEDs
pixels.clear(); // Zet alle LEDs uit
}
void loop() {
knopStatus = digitalRead(knopPin); // Lees de status van de knop
helderheid = map(analogRead(potPin), 0, 1023, 0, 255); // Lees de waarde van de potentiometer en schaal het naar 0-255
pixels.setBrightness(helderheid); // Zet de helderheid van de LEDs
if (knopStatus == HIGH) { // Als de knop is ingedrukt
huidigeKleur++; // Verhoog de kleurindex
if (huidigeKleur > 2) { // Als de index hoger is dan 2, reset deze
huidigeKleur = 0;
}
veranderKleur(huidigeKleur); // Verander de kleur op basis van de index
delay(500); // Voorkom stuiteren van de knop
}
}
void veranderKleur(int kleurIndex) {
long kleur;
if (kleurIndex == 0) {
kleur = pixels.Color(255, 0, 0); // Rood
} else if (kleurIndex == 1) {
kleur = pixels.Color(0, 255, 0); // Groen
} else if (kleurIndex == 2) {
kleur = pixels.Color(0, 0, 255); // Blauw
}
pixels.setPixelColor(0, kleur); // Zet de kleur op de eerste LED
pixels.show(); // Toon de kleur
}