Arduino – NeoPixel – Multi Control
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
// 다중제어 // sw1 로 led1 제어 // sw2 로 led2 제어 // 가변저항으로 led3 깜빡임 제어 #include <Adafruit_NeoPixel.h> #ifdef __AVR__ #include <avr/power.h> // Required for 16 MHz Adafruit Trinket #endif #define LED_PIN 2 #define LED_COUNT 3 Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); int statesLed1=0; int statesLed2=0; int statesLed3=0; #define button1 4 #define button2 5 #define val1 A1 unsigned long cnt1=0; unsigned long cnt2=0; void setup() { #if defined(__AVR_ATtiny85__) && (F_CPU == 16000000) clock_prescale_set(clock_div_1); #endif strip.begin(); // INITIALIZE NeoPixel strip object (REQUIRED) strip.show(); // Turn OFF all pixels ASAP strip.setBrightness(50); // Set BRIGHTNESS to about 1/5 (max = 255) pinMode(button1, INPUT); pinMode(button2, INPUT); Serial.begin(9600); } void loop() { if (digitalRead(button1)==HIGH && cnt1==0) { statesLed1=!statesLed1; cnt1=millis(); } else if (digitalRead(button2)==HIGH && cnt1==0) { statesLed2=!statesLed2; cnt1=millis(); } else if (millis() > cnt1+300) { cnt1=0; } if (millis() > cnt2+(analogRead(val1))+50) { statesLed3=!statesLed3; cnt2=millis(); } strip.setPixelColor(0, strip.Color(255*statesLed1, 0, 0)); strip.setPixelColor(1, strip.Color(0, 0, 255*statesLed2)); strip.setPixelColor(2, strip.Color(0, 255*statesLed3, 0)); strip.show(); } |