Advertisement
Guest User

Untitled

a guest
Feb 7th, 2014
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.82 KB | None | 0 0
  1.  
  2. #include "Servo.h"
  3. #include <FastLED.h>
  4.  
  5. #define LED_COUNT 32
  6. #define LED_PIN 5
  7.  
  8. CRGB leds[LED_COUNT];
  9.  
  10. int max_bright = 192;
  11. unsigned long nextFrame = 0;
  12. int Frame = 0;
  13. int maxFrame;
  14. int eyeHue = 100;
  15. int initStripFunction = true;
  16. Servo servo1;
  17. Servo servo2;
  18.  
  19. void clear_strip() {
  20.    fill_solid(&(leds[0]), LED_COUNT, CRGB(0,0,0));
  21. }
  22.  
  23. void setup() {
  24. servo1.attach(9);
  25. servo2.attach(10);
  26. servo1.write(45);
  27.  
  28. servo2.write(45);
  29.  
  30.  
  31. LEDS.setBrightness(max_bright);
  32. LEDS.addLeds<WS2811, LED_PIN, GRB>(leds, LED_COUNT);
  33. clear_strip();
  34.  
  35. LEDS.show();
  36.  
  37. Serial.begin(9600);
  38. Serial.println("Ready!");
  39.  
  40.  
  41. }
  42.  
  43.  
  44.  
  45. void loop() {
  46. char ch = Serial.read();
  47.  
  48. switch(ch) {
  49.    case 'u':
  50.  
  51.    servo1.write(20);
  52.    servo2.write(70);
  53.  
  54.    eyeHue = 160;
  55.    break;
  56.    case 'd':
  57.  
  58.    servo1.write(70);
  59.    servo2.write(20);
  60.  
  61.    eyeHue=0;
  62.    break;
  63.    case 'm':
  64.  
  65.    servo1.write(45);
  66.    servo2.write(45);
  67.  
  68.    eyeHue=100;
  69.    break;
  70.    case 'l':
  71.  
  72.    servo1.write(45);
  73.    servo2.write(70);
  74.  
  75.    eyeHue= 200;
  76.    break;
  77. }
  78.  
  79. if(millis() >= nextFrame) {
  80.    //Frame++;
  81.    strip_simpleWave(0.3,15,40);
  82. }
  83.  
  84. }
  85.  
  86. void strip_simpleWave(float rate,int cycles, int wait) {
  87. servo1.detach();
  88. servo2.detach();
  89.  
  90.  // stripMaxFrame = 200; // how many frames to draw
  91.   static float pos;
  92.   if(initStripFunction) {
  93.     // set vars
  94.     pos = 0.0;
  95.     initStripFunction = false;
  96.     nextFrame = 0;
  97.   }
  98.   if(millis() >= nextFrame) {
  99.     pos = pos+rate;
  100.     for(int i=0; i<LED_COUNT; i++) {
  101.       // sine wave, 3 offset waves make a rainbow!
  102.       float level = sin(i+pos) * 127 + 128;
  103.       // set color level // this does red
  104.       leds[i] = CHSV(eyeHue, 255, level);
  105.     }
  106.     LEDS.show();
  107.     nextFrame = millis() + wait; // how long to wait for the next frame
  108.  
  109.   }
  110.   servo1.attach(9);
  111.   servo2.attach(10);
  112. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement