Advertisement
Guest User

Untitled

a guest
Oct 28th, 2014
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.86 KB | None | 0 0
  1. #define DEBUG 1
  2.  
  3. #define REDPIN A0
  4. #define GREENPIN A1
  5. #define BLUEPIN A5
  6.  
  7. int r=255, g=20, b=100;
  8.  
  9. void setup() {
  10.  
  11.   Serial.begin(9600);
  12.    
  13. }
  14.  
  15. void WriteRGB_Pins() {
  16.  
  17.     // Write to pins
  18.     analogWrite(REDPIN, map((long)r, 0, 255, 0, 255)); // Remap for correct default colour
  19.     analogWrite(GREENPIN, map((long)g, 0, 255, 0, 255)); // Remap for correct default colour
  20.     analogWrite(BLUEPIN, map((long)b, 0, 255, 0, 255)); // Remap for correct default colour
  21.    
  22. }
  23.  
  24. void incrementBrightness(float val = 5) {
  25.  
  26.   (float) r, g, b;
  27.  
  28.   if((int)r != 0) { // If value started at 0 keep at 0
  29.     if((r + val) < 255){
  30.       r += val;
  31.     }
  32.   }
  33.  
  34.   if((int)g != 0) { // If value started at 0 keep at 0
  35.     if((g + val) < 255){
  36.       g += val;
  37.     }
  38.   }
  39.  
  40.   if((int)b != 0) { // If value started at 0 keep at 0
  41.     if((b + val) < 255){
  42.       b += val;
  43.     }
  44.   }
  45.  
  46.   (int) r, g, b;
  47.  
  48. }
  49.  
  50. void deincrementBrightness(float val = 5) {
  51.  
  52.   (float) r, g, b;
  53.  
  54.   if((int)r != 0) { // If value started at 0 keep at 0
  55.     if((r - val) > 0) {
  56.       r -= val;
  57.     }
  58.   }
  59.  
  60.   if((int)g != 0) { // If value started at 0 keep at 0
  61.     if((g - val) > 0) {
  62.       g -= val;
  63.     }
  64.   }
  65.  
  66.   if((int)b != 0) { // If value started at 0 keep at 0
  67.     if((b - val) > 0) {
  68.       b -= val;
  69.     }
  70.   }
  71.    
  72.   (int) r, g, b;
  73.  
  74. }
  75.  
  76. void pulse() {
  77.  
  78.   int previousR, previousG, previousB;
  79.  
  80.   for(int i = 0; i < 100; i++) {
  81.    
  82.     if(i == 0) { // Initialising previous RGB values
  83.       previousR = r, previousG = g, previousB = b;
  84.     } else {
  85.       if(previousR == r && previousG == g && previousB == b) { // If current valuse the same as last break the loop and stat incrementing
  86.         break;
  87.       }
  88.       previousR = r, previousG = g, previousB = b; // Renew previous RGB values
  89.     }
  90.    
  91.     incrementBrightness();
  92.     WriteRGB_Pins();
  93.    
  94.     #ifdef DEBUG
  95.     Serial.print("R:");
  96.     Serial.print(r);
  97.     Serial.print(" G:");
  98.     Serial.print(g);
  99.     Serial.print(" B:");
  100.     Serial.println(b);
  101.     Serial.println();
  102.     #endif
  103.    
  104.     delay(1);
  105.    
  106.   }
  107.  
  108.   for(int i = 0; i < 100; i++) {
  109.    
  110.     if(i == 0) { // Initialising previous RGB values
  111.       previousR = r, previousG = g, previousB = b;
  112.     } else {
  113.       if(previousR == r && previousG == g && previousB == b) { // If current valuse the same as last break the loop and stat incrementing
  114.         break;
  115.       }
  116.       previousR = r, previousG = g, previousB = b; // Renew previous RGB values
  117.     }
  118.    
  119.     deincrementBrightness();
  120.     WriteRGB_Pins();
  121.    
  122.     #ifdef DEBUG
  123.     Serial.print("R:");
  124.     Serial.print(r);
  125.     Serial.print(" G:");
  126.     Serial.print(g);
  127.     Serial.print(" B:");
  128.     Serial.println(b);
  129.     Serial.println();
  130.     #endif
  131.    
  132.     delay(1);
  133.    
  134.   }
  135.  
  136. }
  137.  
  138. void loop() {
  139.  
  140.   pulse();
  141.   //WriteRGB_Pins();
  142.  
  143. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement