Advertisement
Guest User

Boombox

a guest
Sep 15th, 2017
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 8.67 KB | None | 0 0
  1. #include <Adafruit_NeoPixel.h>       //Library for Neopixel strip
  2.  
  3. #define LED_PIN            12        //Pin for the eyes.
  4. #define button_LEFT        7
  5. #define button_RIGHT       8
  6. #define button_STARTPAUSE  13        
  7. #define startFace          0        //The face to start with.
  8. #define NUMPIXELS          25       // How many NeoPixels are attached to the Arduino?
  9.  
  10. int face = startFace;
  11.  
  12. Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, LED_PIN, NEO_GRB + NEO_KHZ800);
  13.  
  14. //Defining all the faces/eyes for the radio
  15.  
  16. void face0(){
  17.   pixels.setPixelColor(19, pixels.Color(255,140,0));
  18.   pixels.setPixelColor(11, pixels.Color(255,140,0));
  19.   pixels.setPixelColor(7, pixels.Color(255,140,0));
  20.   pixels.setPixelColor(13, pixels.Color(255,140,0));
  21.   pixels.setPixelColor(15, pixels.Color(255,140,0));
  22.   pixels.show();
  23.   myDelay(300);
  24.   reset();
  25.   pixels.setPixelColor(10, pixels.Color(255,140,0));
  26.   pixels.setPixelColor(8, pixels.Color(255,140,0));
  27.   pixels.setPixelColor(2, pixels.Color(255,140,0));
  28.   pixels.setPixelColor(6, pixels.Color(255,140,0));
  29.   pixels.setPixelColor(14, pixels.Color(255,140,0));
  30.   pixels.show();
  31.   myDelay(300);
  32.   reset();
  33. }
  34.  
  35. void face1(){
  36.   pixels.setPixelColor(23, pixels.Color(0,255,0));
  37.   pixels.setPixelColor(17, pixels.Color(0,255,0));
  38.   pixels.setPixelColor(11, pixels.Color(0,255,0));
  39.   pixels.setPixelColor(7, pixels.Color(0,255,0));
  40.   pixels.setPixelColor(3, pixels.Color(0,255,0));
  41.   pixels.show();
  42.   myDelay(300);
  43.   reset();
  44.   pixels.setPixelColor(22, pixels.Color(0,255,0));
  45.   pixels.setPixelColor(18, pixels.Color(0,255,0));
  46.   pixels.setPixelColor(10, pixels.Color(0,255,0));
  47.   pixels.setPixelColor(8, pixels.Color(0,255,0));
  48.   pixels.setPixelColor(2, pixels.Color(0,255,0));
  49.   pixels.show();
  50.   myDelay(300);
  51.   reset();
  52. }
  53.  
  54. void face2(){
  55.   pixels.setPixelColor(18, pixels.Color(255,255,255));
  56.   pixels.setPixelColor(11, pixels.Color(255,255,255));
  57.   pixels.setPixelColor(8, pixels.Color(255,255,255));
  58.   pixels.setPixelColor(7, pixels.Color(255,255,255));
  59.   pixels.setPixelColor(6, pixels.Color(255,255,255));
  60.   pixels.setPixelColor(13, pixels.Color(255,255,255));
  61.   pixels.setPixelColor(16, pixels.Color(255,255,255));
  62.   pixels.setPixelColor(17, pixels.Color(255,255,255));
  63.   pixels.show();
  64.   myDelay(300);
  65.   reset();
  66.   pixels.setPixelColor(20, pixels.Color(255,255,255));
  67.   pixels.setPixelColor(19, pixels.Color(255,255,255));
  68.   pixels.setPixelColor(10, pixels.Color(255,255,255));
  69.   pixels.setPixelColor(9, pixels.Color(255,255,255));
  70.   pixels.setPixelColor(0, pixels.Color(255,255,255));
  71.   pixels.setPixelColor(1, pixels.Color(255,255,255));
  72.   pixels.setPixelColor(2, pixels.Color(255,255,255));
  73.   pixels.setPixelColor(3, pixels.Color(255,255,255));
  74.   pixels.setPixelColor(4, pixels.Color(255,255,255));
  75.   pixels.setPixelColor(5, pixels.Color(255,255,255));
  76.   pixels.setPixelColor(14, pixels.Color(255,255,255));
  77.   pixels.setPixelColor(15, pixels.Color(255,255,255));
  78.   pixels.setPixelColor(24, pixels.Color(255,255,255));
  79.   pixels.setPixelColor(23, pixels.Color(255,255,255));
  80.   pixels.setPixelColor(22, pixels.Color(255,255,255));
  81.   pixels.setPixelColor(21, pixels.Color(255,255,255));
  82.   pixels.show();
  83.   myDelay(300);
  84.   reset();
  85. }
  86.  
  87. void face3(){
  88.   pixels.setPixelColor(20, pixels.Color(250,0,0));
  89.   pixels.setPixelColor(18, pixels.Color(250,0,0));
  90.   pixels.setPixelColor(12, pixels.Color(250,0,0));
  91.   pixels.setPixelColor(13, pixels.Color(250,0,0));
  92.   pixels.setPixelColor(17, pixels.Color(250,0,0));
  93.   pixels.setPixelColor(21, pixels.Color(250,0,0));
  94.  pixels.setPixelColor(6, pixels.Color(250,0,0));
  95.   pixels.setPixelColor(4, pixels.Color(250,0,0));
  96.   pixels.setPixelColor(5, pixels.Color(250,0,0));
  97.   pixels.show();
  98. }
  99.  
  100. void face4(){  
  101.  
  102.   for(int i=0;i<256;i++){
  103.     pixels.setPixelColor(22, pixels.Color(0,0,i));
  104.     pixels.setPixelColor(17, pixels.Color(0,0,i));
  105.     pixels.setPixelColor(12, pixels.Color(0,0,i));
  106.     pixels.setPixelColor(7, pixels.Color(0,0,i));
  107.     pixels.setPixelColor(2, pixels.Color(0,0,i));
  108.     i=i+4;
  109.     pixels.show();
  110.     myDelay(20);
  111.   }
  112.   for(int i=255;i>0;i--){
  113.     pixels.setPixelColor(22, pixels.Color(0,0,i));
  114.     pixels.setPixelColor(17, pixels.Color(0,0,i));
  115.     pixels.setPixelColor(12, pixels.Color(0,0,i));
  116.     pixels.setPixelColor(7, pixels.Color(0,0,i));
  117.     pixels.setPixelColor(2, pixels.Color(0,0,i));
  118.     i=i-4;
  119.     pixels.show();
  120.     myDelay(20);
  121.   }
  122. }
  123.  
  124. void face5(){
  125.   pixels.setPixelColor(24, pixels.Color(50,205,50));
  126.   pixels.setPixelColor(16, pixels.Color(50,205,50));
  127.   pixels.setPixelColor(12, pixels.Color(50,205,50));
  128.   pixels.setPixelColor(8, pixels.Color(50,205,50));
  129.   pixels.setPixelColor(0, pixels.Color(50,205,50));
  130.  
  131.   for(int i=0;i<NUMPIXELS;i++){
  132.     if(i==1||i==2||i==3||i==4){
  133.       pixels.setPixelColor(1, pixels.Color(0,0,255)); // Moderately bright green color.
  134.       pixels.show();
  135.       myDelay(300);
  136.       pixels.setPixelColor(1, pixels.Color(0,0,0)); // Moderately bright green color.
  137.       pixels.setPixelColor(2, pixels.Color(0,0,255)); // Moderately bright green color.
  138.       pixels.show();
  139.       myDelay(300);
  140.       pixels.setPixelColor(2, pixels.Color(0,0,0)); // Moderately bright green color.
  141.       pixels.setPixelColor(3, pixels.Color(0,0,255)); // Moderately bright green color.
  142.       pixels.show();
  143.       myDelay(300);
  144.       pixels.setPixelColor(3, pixels.Color(0,0,0)); // Moderately bright green color.
  145.       pixels.setPixelColor(4, pixels.Color(0,0,255)); // Moderately bright green color.
  146.       pixels.show();
  147.       myDelay(300);
  148.       pixels.setPixelColor(4, pixels.Color(0,0,0)); // Moderately bright green color.
  149.     }
  150.   }
  151. }
  152.  
  153. void face6(){
  154.   for(int i=0;i<NUMPIXELS;i++){
  155.     pixels.setPixelColor(i, pixels.Color(150,150,150));
  156.   }
  157.   pixels.setPixelColor(11, pixels.Color(0,0,0));
  158.   pixels.setPixelColor(8, pixels.Color(0,0,0));
  159.   pixels.setPixelColor(13, pixels.Color(0,0,0));
  160.   pixels.setPixelColor(18, pixels.Color(0,0,0));
  161.   pixels.setPixelColor(7, pixels.Color(0,0,0));
  162.   pixels.setPixelColor(16, pixels.Color(0,0,0));
  163.   pixels.setPixelColor(6, pixels.Color(0,0,0));
  164.   pixels.show();
  165.   myDelay(300);
  166.   reset();
  167.   for(int i=0;i<NUMPIXELS;i++){
  168.     pixels.setPixelColor(i, pixels.Color(150,150,150));
  169.   }
  170.   pixels.setPixelColor(11, pixels.Color(0,0,0));
  171.   pixels.setPixelColor(8, pixels.Color(0,0,0));
  172.   pixels.setPixelColor(13, pixels.Color(0,0,0));
  173.   pixels.setPixelColor(18, pixels.Color(0,0,0));
  174.   pixels.setPixelColor(17, pixels.Color(0,0,0));
  175.   pixels.setPixelColor(16, pixels.Color(0,0,0));
  176.   pixels.setPixelColor(6, pixels.Color(0,0,0));
  177.   pixels.show();
  178.   myDelay(300);
  179.   reset();
  180. }
  181.  
  182. void face7(){
  183.   pixels.setPixelColor(21, pixels.Color(50,50,105));
  184.   pixels.setPixelColor(17, pixels.Color(50,50,105));
  185.   pixels.setPixelColor(12, pixels.Color(50,50,105));
  186.   pixels.setPixelColor(7, pixels.Color(50,50,105));
  187.   pixels.setPixelColor(1, pixels.Color(50,50,105));
  188.   pixels.show();
  189. }
  190.  
  191. void face8(){
  192.   pixels.setPixelColor(23, pixels.Color(50,105,50));
  193.   pixels.setPixelColor(17, pixels.Color(50,105,50));
  194.   pixels.setPixelColor(12, pixels.Color(50,105,50));
  195.   pixels.setPixelColor(7, pixels.Color(50,105,50));
  196.   pixels.setPixelColor(3, pixels.Color(50,105,50));
  197.   pixels.show();
  198. }
  199.  
  200. //Checks which face is to be set
  201.  
  202. void checkFace(){
  203.   if(face == 9){
  204.     face = 0;
  205.     face0();
  206.   }else if(face == -1){
  207.     face = 8;
  208.     face8();
  209.   }else if(face == 0){
  210.     face0();
  211.   }else if(face == 1){
  212.     face1();
  213.   }else if(face == 2){
  214.     face2();
  215.   }else if(face == 3){
  216.     face3();
  217.   }else if(face == 4){
  218.     face4();
  219.   }else if(face == 5){
  220.     face5();
  221.   }else if(face == 6){
  222.     face6();
  223.   }else if(face == 7){
  224.     face7();
  225.   }else if(face == 8){
  226.     face8();
  227.   }else {
  228.     face0();
  229.   }
  230. }
  231.  
  232. //Changes the face on each Buttoninput
  233.  
  234. void changeFace(){
  235.   if(digitalRead(button_RIGHT) == LOW){
  236.     face++;
  237.     reset();
  238.     delay(250);
  239.   }
  240.   if(digitalRead(button_LEFT) == LOW){
  241.     face--;
  242.     reset();
  243.     delay(250);
  244.   }
  245. }
  246.  
  247. //Resets all the pixels on the Neopixel strip
  248.  
  249. void reset(){
  250.   for(int i=0;i<NUMPIXELS;i++){
  251.       pixels.setPixelColor(i, pixels.Color(0,0,0));
  252.   }
  253.   pixels.show();
  254. }
  255.  
  256. //Defining an own delay, which can be interrupted at any time by an input
  257.  
  258. void myDelay(int delayTime){
  259.   for(int i=0;i<delayTime;i++){
  260.     if(digitalRead(button_RIGHT) == LOW || digitalRead(button_LEFT) == LOW){
  261.       break;
  262.     }else{
  263.       delay(1);
  264.     }
  265.   }
  266. }
  267.  
  268. void setup() {
  269.  
  270.   //Defining all buttons as pull-ups
  271.   pinMode(button_LEFT, INPUT_PULLUP);
  272.   pinMode(button_RIGHT, INPUT_PULLUP);
  273.   pinMode(button_STARTPAUSE, INPUT_PULLUP);
  274.  
  275.   //This initializes the NeoPixel library.
  276.   pixels.begin();
  277. }
  278.  
  279. void loop() {
  280.   changeFace();
  281.   checkFace();
  282. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement