Advertisement
Guest User

Untitled

a guest
Aug 16th, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.75 KB | None | 0 0
  1. #define input A6
  2. #define transistor 2
  3. #define red 3
  4. #define green 4
  5. #define blue 5
  6. int onTime = 5000; //in ms
  7. int inputTrigger = 500; //0-1024
  8. void setup()
  9. {
  10.   pinMode(input, INPUT);
  11.   pinMode(transistor, OUTPUT);
  12.   pinMode(red, OUTPUT);
  13.   pinMode(green, OUTPUT);
  14.   pinMode(blue, OUTPUT);
  15.   Serial.begin(9600);
  16. }
  17.  
  18. void loop()
  19. {
  20.   int read = analogRead(A6);
  21.   Serial.println(read);
  22.   if (read > inputTrigger);
  23.   {
  24.     unsigned long startTime = millis();
  25.     unsigned long endTime = startTime + onTime;
  26.     while(endTime > millis()) {
  27.         int hue = map(millis(), startTime, endTime, 0, 240); //0 (Rot) -> 240 (Blau) (HUE Farbskala)
  28.         int rgb[3] = {0,0,0};
  29.         getRGB(hue, 255, 1, rgb);
  30.         analogWrite(red, 255 - rgb[0]);
  31.         analogWrite(green, 255 - rgb[1]);
  32.         analogWrite(blue, 255 - rgb[2]);
  33.     }
  34.   }
  35. }
  36.  
  37.  
  38. void getRGB(int hue, int sat, int val, int colors[3]) {
  39.     // hue: 0-359
  40.     int r, g, b, base;
  41.  
  42.     if (sat == 0) {
  43.         colors[0]=val;
  44.         colors[1]=val;
  45.         colors[2]=val;
  46.     } else  {
  47.         base = ((255 - sat) * val)>>8;
  48.         switch(hue/60) {
  49.             case 0:
  50.                 r = val;
  51.                 g = (((val-base)*hue)/60)+base;
  52.                 b = base;
  53.                 break;
  54.             case 1:
  55.                 r = (((val-base)*(60-(hue%60)))/60)+base;
  56.                 g = val;
  57.                 b = base;
  58.                 break;
  59.             case 2:
  60.                 r = base;
  61.                 g = val;
  62.                 b = (((val-base)*(hue%60))/60)+base;
  63.                 break;
  64.             case 3:
  65.                 r = base;
  66.                 g = (((val-base)*(60-(hue%60)))/60)+base;
  67.                 b = val;
  68.                 break;
  69.             case 4:
  70.                 r = (((val-base)*(hue%60))/60)+base;
  71.                 g = base;
  72.                 b = val;
  73.                 break;
  74.             case 5:
  75.                 r = val;
  76.                 g = base;
  77.                 b = (((val-base)*(60-(hue%60)))/60)+base;
  78.                 break;
  79.             default: //should never trigger
  80.                 r = 0;
  81.                 g = 0;
  82.                 b = 0;
  83.         }
  84.         colors[0]=r;
  85.         colors[1]=g;
  86.         colors[2]=b;
  87.     }
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement