Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define input A6
- #define transistor 2
- #define red 3
- #define green 4
- #define blue 5
- int onTime = 5000; //in ms
- int inputTrigger = 500; //0-1024
- void setup()
- {
- pinMode(input, INPUT);
- pinMode(transistor, OUTPUT);
- pinMode(red, OUTPUT);
- pinMode(green, OUTPUT);
- pinMode(blue, OUTPUT);
- Serial.begin(9600);
- }
- void loop()
- {
- int read = analogRead(A6);
- Serial.println(read);
- if (read > inputTrigger);
- {
- unsigned long startTime = millis();
- unsigned long endTime = startTime + onTime;
- while(endTime > millis()) {
- int hue = map(millis(), startTime, endTime, 0, 240); //0 (Rot) -> 240 (Blau) (HUE Farbskala)
- int rgb[3] = {0,0,0};
- getRGB(hue, 255, 1, rgb);
- analogWrite(red, 255 - rgb[0]);
- analogWrite(green, 255 - rgb[1]);
- analogWrite(blue, 255 - rgb[2]);
- }
- }
- }
- void getRGB(int hue, int sat, int val, int colors[3]) {
- // hue: 0-359
- int r, g, b, base;
- if (sat == 0) {
- colors[0]=val;
- colors[1]=val;
- colors[2]=val;
- } else {
- base = ((255 - sat) * val)>>8;
- switch(hue/60) {
- case 0:
- r = val;
- g = (((val-base)*hue)/60)+base;
- b = base;
- break;
- case 1:
- r = (((val-base)*(60-(hue%60)))/60)+base;
- g = val;
- b = base;
- break;
- case 2:
- r = base;
- g = val;
- b = (((val-base)*(hue%60))/60)+base;
- break;
- case 3:
- r = base;
- g = (((val-base)*(60-(hue%60)))/60)+base;
- b = val;
- break;
- case 4:
- r = (((val-base)*(hue%60))/60)+base;
- g = base;
- b = val;
- break;
- case 5:
- r = val;
- g = base;
- b = (((val-base)*(60-(hue%60)))/60)+base;
- break;
- default: //should never trigger
- r = 0;
- g = 0;
- b = 0;
- }
- colors[0]=r;
- colors[1]=g;
- colors[2]=b;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement