Advertisement
ErnestoGrimes

Sin-vs-Sin

Feb 12th, 2016
616
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include "FastLED.h"
  2.  
  3. #define NUM_LEDS 60  // how many leds in our strip
  4. #define DATA_PIN 6  // neopixel data pin
  5. #define POT_PIN A0 // center pin of pot
  6. #define buttonPin 5 // push me
  7.  
  8. int buttonState = 0; // was i pushed
  9.  
  10. //int palette[]={176,113,109,132};
  11. int palette[]={252,160}; //police red blue
  12. int paletteCt = (sizeof(palette) / sizeof(palette[0])); // how big is our palette
  13. int sintemp = random(250); // random seeds for various wave generators
  14. int costemp = random(250);
  15. int tritemp = random(250);
  16. int cubictemp = random(250);
  17. int quadtemp = random(250);
  18. int sintemp1 = random(250);
  19. int sintemp2 = random(250);
  20. int sintemp3 = random(250);
  21. int accel1 = 0; // how much do we add to car 1's progress
  22. int accel2 = 0; // and dont forget car 2
  23. int tail = 15; // threshhold for our heroes to slow their approach
  24.  
  25.  
  26. CRGB leds[NUM_LEDS]; // Define the array of leds
  27.  
  28. void setup() {
  29.       FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS); // are there any donuts? I'm starving
  30.       FastLED.clear();
  31.       FastLED.show();
  32.       Serial.begin(9600);
  33.       pinMode(buttonPin, INPUT);
  34.       pinMode(A0, INPUT);
  35.       randomSeed(analogRead(A0));
  36.       Serial.println(random(256));
  37. }
  38.  
  39. void loop() {
  40. int getaway = random(0,3); // how fast is our getaway
  41. buttonState = digitalRead(buttonPin); // read the button
  42.  
  43. if(buttonState==HIGH){
  44.   sintemp1 = random(250); //reset random seeds
  45.   sintemp2 = random(250);
  46.   sintemp3 = random(250);
  47.   Serial.println("i was pushed");
  48. }
  49.  
  50. //if(buttonState==HIGH) palette[paletteCt-2] = potmap();
  51. //palette[paletteCt-1] = potmap();
  52.  
  53. if (sintemp1 - sintemp3 < tail) accel1 = random(0,2); // [cop1] we are getting close slow down
  54. if (sintemp1 - sintemp3 > tail) accel1 = random(0,3); //[cop1]  were did he go?
  55.  
  56. if (sintemp2 - sintemp3 < tail) accel2 = random(0,2);// [cop2] we are getting close slow down
  57. if (sintemp2 - sintemp3 > tail) accel2 = random(0,3);// [cop2]  Again?
  58.  
  59.  
  60. if(sintemp1 == (sintemp3 -4)) accel1 = random(0,1); // [cop1] I'm in position
  61. if(sintemp2 == (sintemp3 -8)) accel2 = random(0,1);// [cop2] I'm in position
  62.  
  63. if(sintemp1 == sintemp2) sintemp3 += getaway; // I got him first
  64.  
  65. sintemp1 += accel1; // how much faster should I go?
  66. sintemp2 += accel2; // as fast as your heart will take you
  67.  
  68. int cop1 = map(fastsin1(),0,254,0,NUM_LEDS-1); // what the hell does this guy think he is doing?
  69. int cop2 = map(fastsin2(),0,254,0,NUM_LEDS-1); // none shall pass!
  70. int car3 = map(fastsin3(),0,254,0,NUM_LEDS-1); // oh yeah, swipe right!
  71.  
  72. leds[cop1]=CHSV(palette[random(paletteCt)],255,random(10,120));  // Officer John Baker
  73. leds[cop2]=CHSV(palette[random(paletteCt)],255,random(10,120)); //  Officer Frank Poncherello
  74. //leds[car3]=CHSV(palette[random(paletteCt)],128,random(80,100)); // Officer Farva
  75. //leds[car3]=CHSV(random(255),255,random(80,100)); // Pussy Wagon
  76. leds[car3]=CHSV(0,0,random(80,100)); // average everyday citizen
  77.  
  78. //Serial.print(palette[0]);
  79. //Serial.print(" ");
  80. //Serial.println(palette[1]);
  81.  
  82. FastLED.show();
  83. FastLED.clear();
  84.  
  85. delay(10);
  86.  
  87. }
  88.  
  89. // Here Be Dragons //
  90.  
  91. int fastsin1(){
  92.     int exportvar = sin8(sintemp1);
  93.     sintemp1++;
  94.     if (sintemp1 >= 255) sintemp1 = 0;
  95.     return exportvar;
  96. }
  97.  
  98. int fastsin2(){
  99.     int exportvar = sin8(sintemp2);
  100.     sintemp2++;
  101.     if (sintemp2 >= 255) sintemp2 = 0;
  102.     return exportvar;
  103. }
  104.  
  105. int fastsin3(){
  106.     int exportvar = sin8(sintemp3);
  107.     sintemp3++;
  108.     if (sintemp3 >= 255) sintemp3 = 0;
  109.     return exportvar;
  110. }
  111.  
  112.  
  113. int fastsin(){
  114.     int exportvar = sin8(sintemp);
  115.     sintemp++;
  116.     if (sintemp >= 255) sintemp = 0;
  117.     return exportvar;
  118. }
  119.  
  120. int fasttri(){
  121.     int exportvar = triwave8(tritemp);
  122.     tritemp++;
  123.     if (tritemp >= 255) tritemp = 0;
  124.     return exportvar;
  125. }
  126.  
  127. int fastquad(){
  128.     int exportvar = quadwave8(quadtemp);
  129.     quadtemp++;
  130.     if (quadtemp >= 255) quadtemp = 0;
  131.     return exportvar;
  132. }
  133.  
  134. int fastcubic(){
  135.     int exportvar = cubicwave8(cubictemp);
  136.     cubictemp++;
  137.     if (cubictemp >= 255) cubictemp = 0;
  138.     return exportvar;
  139. }
  140.  
  141. int fastcosin(){
  142.     int exportvar = cos8(costemp);
  143.     costemp++;
  144.     if (costemp >= 255) costemp = 0;
  145.     return exportvar;
  146. }
  147.  
  148.  int potmap(){ //  map analog sensor 0-255
  149.   int sensorValue = analogRead(POT_PIN);
  150.   sensorValue = map(sensorValue,0,1023,0,255);
  151.   return sensorValue;
  152. }
  153.  
  154.  int npotmap(){  // map analog sensor 255-0
  155.   int sensorValue = analogRead(POT_PIN);
  156.   sensorValue = map(sensorValue,0,1023,255,0);
  157.   return sensorValue;
  158. }
  159.  
  160. unsigned int potmap2(unsigned int range){ // map analog sensor 0- custom value
  161.   unsigned int sensorValue = analogRead(POT_PIN);
  162.   sensorValue = map(sensorValue,0,1023,0,range);
  163.   return sensorValue;
  164. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement