Advertisement
Guest User

Mettaton Lights (Arduino code)

a guest
Mar 25th, 2016
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 8.12 KB | None | 0 0
  1. #include <Adafruit_NeoPixel.h>
  2. #ifdef __AVR__
  3.   #include <avr/power.h>
  4. #endif
  5.  
  6. // Which pin on the Arduino is connected to the NeoPixels?
  7. #define PIN1            20
  8. #define PIN2            21
  9.  
  10. // How many NeoPixels are attached to the Arduino?
  11. #define NUMPIXELS_BIG      20
  12. #define NUMPIXELS_SML     4
  13.  
  14. // How many times should each pattern repeat before moving on to the next?
  15. # define FLASHTIMES           9
  16.  
  17. // When we setup the NeoPixel library, we tell it how many pixels, and which pin to use to send signals.
  18. // Note that for older NeoPixel strips you might need to change the third parameter--see the strandtest
  19. // example for more information on possible values.
  20.  
  21. Adafruit_NeoPixel pixels_big = Adafruit_NeoPixel(NUMPIXELS_BIG, PIN1, NEO_GRB + NEO_KHZ800);
  22. Adafruit_NeoPixel pixels_sml = Adafruit_NeoPixel(NUMPIXELS_SML, PIN2, NEO_GRB + NEO_KHZ800);
  23.  
  24. int delayval = 250;
  25. int blinkval = 100;
  26. int fullbright = 255;
  27. int halfbright = 180;
  28.  
  29. void setup() {
  30.   // This initializes the NeoPixel library.
  31.   pixels_big.begin();
  32.   pixels_sml.begin();
  33.  
  34.   pixels_big.setBrightness(fullbright);
  35.   pixels_sml.setBrightness(fullbright);
  36. }
  37.  
  38. void loop() {
  39.  
  40.   // For a set of NeoPixels the first NeoPixel is 0, second is 1, all the way up to the count of pixels minus one.
  41.  
  42.   // Use this if you want to cycle each pixel
  43.   //for(int i=0;i<NUMPIXELS_BIG;i++){
  44.  
  45.     drawPattern1();  // Pattern showing the #1
  46.    
  47.     drawPattern4();  // Flash just yellow, use as a spacer
  48.    
  49.     drawPattern2();  // Pattern showing the letter M
  50.    
  51.     drawPattern4();  // Flash just yellow, use as a spacer
  52.    
  53.     drawPattern3();  // Pattern flashing all at once, alternate colour at each flash
  54.    
  55.     drawPattern4();  // Flash just yellow, use as a spacer  
  56.  
  57.     drawPattern5();  // Pattern showing a heart
  58.  
  59.     drawPattern4();  // Flash just yellow, use as a spacer  
  60.    
  61. }
  62.  
  63. // Pattern 1, the #1 pattern!
  64.  
  65. void drawPattern1() {
  66.  
  67.   for(int i = 0; i < FLASHTIMES; i++){
  68.     // Set full brightness
  69.     pixels_big.setBrightness(fullbright);
  70.     pixels_sml.setBrightness(fullbright);
  71.    
  72.     // Set board for one whole colour
  73.     for(int i = 0; i < NUMPIXELS_BIG; i++){
  74.       pixels_big.setPixelColor(i, pixels_big.Color(255,255,0));
  75.     }
  76.     for(int i = 0; i < NUMPIXELS_SML; i++){
  77.       pixels_sml.setPixelColor(i, pixels_sml.Color(255,255,0));
  78.     }
  79.    
  80.     // Then define highlight colours ie. red
  81.     pixels_big.setPixelColor(5, pixels_big.Color(255,0,0));
  82.     pixels_big.setPixelColor(7, pixels_big.Color(255,0,0));
  83.     pixels_big.setPixelColor(8, pixels_big.Color(255,0,0));
  84.     pixels_big.setPixelColor(9, pixels_big.Color(255,0,0));
  85.     pixels_big.setPixelColor(10, pixels_big.Color(255,0,0));
  86.     pixels_big.setPixelColor(11, pixels_big.Color(255,0,0));
  87.     pixels_big.setPixelColor(15, pixels_big.Color(255,0,0));
  88.    
  89.     // Refresh pixel display
  90.     pixels_big.show();
  91.     pixels_sml.show();
  92.     delay(delayval);
  93.    
  94.     // Set half brightness
  95.     pixels_big.setBrightness(halfbright);
  96.     pixels_sml.setBrightness(halfbright);
  97.    
  98.     // Refresh pixel display
  99.     pixels_big.show();
  100.     pixels_sml.show();
  101.     delay(blinkval);
  102.   }
  103. }
  104.  
  105. // Pattern 2, the Mettaton letter M
  106.  
  107. void drawPattern2() {
  108.   for(int i = 0; i < FLASHTIMES; i++){
  109.     // Set full brightness
  110.     pixels_big.setBrightness(fullbright);
  111.     pixels_sml.setBrightness(fullbright);
  112.    
  113.     // Set board for one whole colour
  114.     for(int i = 0; i < NUMPIXELS_BIG; i++){
  115.       pixels_big.setPixelColor(i, pixels_big.Color(255,255,0));
  116.     }
  117.     for(int i = 0; i < NUMPIXELS_SML; i++){
  118.       pixels_sml.setPixelColor(i, pixels_sml.Color(255,255,0));
  119.     }
  120.    
  121.     // Then define highlight colours ie. red
  122.     pixels_big.setPixelColor(0, pixels_big.Color(255,0,0));
  123.     pixels_big.setPixelColor(1, pixels_big.Color(255,0,0));
  124.     pixels_big.setPixelColor(2, pixels_big.Color(255,0,0));
  125.     pixels_big.setPixelColor(3, pixels_big.Color(255,0,0));
  126.     pixels_big.setPixelColor(5, pixels_big.Color(255,0,0));
  127.     pixels_big.setPixelColor(10, pixels_big.Color(255,0,0));
  128.     pixels_big.setPixelColor(13, pixels_big.Color(255,0,0));
  129.     pixels_big.setPixelColor(16, pixels_big.Color(255,0,0));
  130.     pixels_big.setPixelColor(17, pixels_big.Color(255,0,0));
  131.     pixels_big.setPixelColor(18, pixels_big.Color(255,0,0));
  132.     pixels_big.setPixelColor(19, pixels_big.Color(255,0,0));
  133.    
  134.     // Refresh pixel display
  135.     pixels_big.show();
  136.     pixels_sml.show();
  137.     delay(delayval);
  138.    
  139.     // Set half brightness
  140.     pixels_big.setBrightness(halfbright);
  141.     pixels_sml.setBrightness(halfbright);
  142.    
  143.     // Refresh pixel display
  144.     pixels_big.show();
  145.     pixels_sml.show();
  146.     delay(blinkval);
  147.   }
  148. }
  149.  
  150. // Pattern 3, flash all at once and change to red on the second time
  151. // This pattern has no blink delay
  152.  
  153. void drawPattern3() {
  154.   for(int i = 0; i < FLASHTIMES/2; i++){
  155.     // Set full brightness
  156.     pixels_big.setBrightness(fullbright);
  157.     pixels_sml.setBrightness(fullbright);
  158.    
  159.     // Set board for one whole colour
  160.     for(int i = 0; i < NUMPIXELS_BIG; i++){
  161.       pixels_big.setPixelColor(i, pixels_big.Color(255,255,0));
  162.     }
  163.     for(int i = 0; i < NUMPIXELS_SML; i++){
  164.       pixels_sml.setPixelColor(i, pixels_sml.Color(255,255,0));
  165.     }
  166.    
  167.     // Refresh pixel display
  168.     pixels_big.show();
  169.     pixels_sml.show();
  170.     delay(delayval);
  171.    
  172.     // Set board for one whole colour
  173.     for(int i = 0; i < NUMPIXELS_BIG; i++){
  174.       pixels_big.setPixelColor(i, pixels_big.Color(255,0,0));
  175.     }
  176.     for(int i = 0; i < NUMPIXELS_SML; i++){
  177.       pixels_sml.setPixelColor(i, pixels_sml.Color(255,0,0));
  178.     }
  179.    
  180.     // Refresh pixel display
  181.     pixels_big.show();
  182.     pixels_sml.show();
  183.     delay(delayval);
  184.   }
  185. }
  186.  
  187. // Pattern 4, this is just solid yellow with blinking
  188. // Use as a spacer between other patterns
  189.  
  190. void drawPattern4() {
  191.   for(int i = 0; i < FLASHTIMES; i++){
  192.     // Set full brightness
  193.     pixels_big.setBrightness(fullbright);
  194.     pixels_sml.setBrightness(fullbright);
  195.    
  196.     // Set board for one whole colour
  197.     for(int i = 0; i < NUMPIXELS_BIG; i++){
  198.       pixels_big.setPixelColor(i, pixels_big.Color(255,255,0));
  199.     }
  200.     for(int i = 0; i < NUMPIXELS_SML; i++){
  201.       pixels_sml.setPixelColor(i, pixels_sml.Color(255,255,0));
  202.     }
  203.    
  204.     // Refresh pixel display
  205.     pixels_big.show();
  206.     pixels_sml.show();
  207.     delay(delayval);
  208.    
  209.     // Set half brightness
  210.     pixels_big.setBrightness(halfbright);
  211.     pixels_sml.setBrightness(halfbright);
  212.    
  213.     // Refresh pixel display
  214.     pixels_big.show();
  215.     pixels_sml.show();
  216.     delay(blinkval);
  217.   }
  218. }
  219.  
  220. // Pattern 5, a heart!
  221.  
  222. void drawPattern5() {
  223.   for(int i = 0; i < FLASHTIMES; i++){
  224.     // Set full brightness
  225.     pixels_big.setBrightness(fullbright);
  226.     pixels_sml.setBrightness(fullbright);
  227.    
  228.     // Set board for one whole colour
  229.     for(int i = 0; i < NUMPIXELS_BIG; i++){
  230.       pixels_big.setPixelColor(i, pixels_big.Color(255,255,0));
  231.     }
  232.     for(int i = 0; i < NUMPIXELS_SML; i++){
  233.       pixels_sml.setPixelColor(i, pixels_sml.Color(255,255,0));
  234.     }
  235.    
  236.     // Then define highlight colours ie. red
  237.     pixels_big.setPixelColor(1, pixels_big.Color(255,0,0));
  238.     pixels_big.setPixelColor(4, pixels_big.Color(255,0,0));
  239.     pixels_big.setPixelColor(5, pixels_big.Color(255,0,0));
  240.     pixels_big.setPixelColor(6, pixels_big.Color(255,0,0));
  241.     pixels_big.setPixelColor(9, pixels_big.Color(255,0,0));
  242.     pixels_big.setPixelColor(10, pixels_big.Color(255,0,0));
  243.     pixels_big.setPixelColor(11, pixels_big.Color(255,0,0));
  244.     pixels_big.setPixelColor(12, pixels_big.Color(255,0,0));
  245.     pixels_big.setPixelColor(13, pixels_big.Color(255,0,0));
  246.     pixels_big.setPixelColor(14, pixels_big.Color(255,0,0));
  247.     pixels_big.setPixelColor(17, pixels_big.Color(255,0,0));
  248.    
  249.     // Refresh pixel display
  250.     pixels_big.show();
  251.     pixels_sml.show();
  252.     delay(delayval);
  253.    
  254.     // Set half brightness
  255.     pixels_big.setBrightness(halfbright);
  256.     pixels_sml.setBrightness(halfbright);
  257.    
  258.     // Refresh pixel display
  259.     pixels_big.show();
  260.     pixels_sml.show();
  261.     delay(blinkval);
  262.   }
  263. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement