neopixel phush button

cara menyalakan lampu neopixel menggunakan phush button arduino


 ✅ Skema Sederhana Koneksi:

Neopixel DIN → Pin 6 Arduino

Neopixel VCC → 5V

Neopixel GND → GND

Push Button satu sisi → GND

Push Button sisi lain → Pin 2 Arduino (dengan pull-down resistor 10kΩ ke GND)


🧠 Kode Program Arduino:


#include <Adafruit_NeoPixel.h>

#define BUTTON_PIN 2

#define LED_PIN    6

#define NUM_LEDS   8  // Ubah sesuai jumlah LED Neopixel

Adafruit_NeoPixel strip(NUM_LEDS, LED_PIN, NEO_GRB + NEO_KHZ800);

int buttonState;

int lastButtonState = LOW;

unsigned long lastDebounceTime = 0;

unsigned long debounceDelay = 50;

int mode = 0;

void setup() {

  pinMode(BUTTON_PIN, INPUT);

  strip.begin();

  strip.show(); // Matikan semua LED awalnya

}


void loop() {

  int reading = digitalRead(BUTTON_PIN);


  if (reading != lastButtonState) {

    lastDebounceTime = millis();

  }

  if ((millis() - lastDebounceTime) > debounceDelay) {

    if (reading == HIGH && lastButtonState == LOW) {

      mode++;

      if (mode > 2) mode = 0; // Ubah sesuai jumlah mode

      setMode(mode);

    }

  }


  lastButtonState = reading;

}


void setMode(int m) {

  switch (m) {

    case 0:

      colorWipe(strip.Color(255, 0, 0), 50); // Merah

      break;

    case 1:

      colorWipe(strip.Color(0, 255, 0), 50); // Hijau

      break;

    case 2:

      rainbowCycle(10); // Efek pelangi

      break;

  }

}


void colorWipe(uint32_t color, int wait) {

  for (int i = 0; i < strip.numPixels(); i++) {

    strip.setPixelColor(i, color);

    strip.show();

    delay(wait);

  }

}


void rainbowCycle(int wait) {

  uint16_t i, j;


  for (j = 0; j < 256; j++) {

    for (i = 0; i < strip.numPixels(); i++) {

      strip.setPixelColor(i, Wheel((i * 256 / strip.numPixels() + j) & 255));

    }

    strip.show();

    delay(wait);

  }

}


uint32_t Wheel(byte WheelPos) {

  if (WheelPos < 85) {

    return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);

  } else if (WheelPos < 170) {

    WheelPos -= 85;

    return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);

  } else {

    WheelPos -= 170;

    return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);

  }

}

Kalilandak Info – Tutorial Arduino & Proyek Elektronik Lengkap Bahasa Indonesia
NextGen Digital Welcome to WhatsApp chat
Halo! ada yang bisa saya bantu?
Type here...