Guest User

Untitled

a guest
May 27th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.89 KB | None | 0 0
  1. #include <Adafruit_NeoPixel.h>
  2. #include <LiquidCrystal.h>
  3. #ifdef __AVR__
  4. #include <avr/power.h>
  5. #endif>
  6.  
  7. #define PIN 6
  8. #define NUMPIXELS 9
  9.  
  10. Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
  11. LiquidCrystal lcd(12,11, 10, 9, 8, 7);
  12.  
  13. int buttonStatusRed;
  14. int buttonStatusGrn;
  15. int buttonStatusBlu;
  16. int buttonStatusBlk;
  17. int onoff;
  18. int shadeRed;
  19. int shadeGreen;
  20. int shadeBlue;
  21. int red;
  22. int green;
  23. int blue;
  24. float bright;
  25.  
  26. //incoming serial data
  27. int incoming;
  28.  
  29.  
  30. void setup() {
  31. //declare pinmodes
  32.  
  33. pinMode(2, INPUT); //green button
  34. pinMode(3, INPUT); //red button
  35. pinMode(4, INPUT); //blue button
  36. pinMode(5, INPUT); //onoff
  37. pinMode(6, OUTPUT); //NOEPIX
  38. //intialize serial comms
  39. Serial.begin(9600); //comm rate
  40. pixels.begin(); // This initializes the NeoPixel library.
  41. lcd.begin(16, 2);
  42. lcd.print("Color Analyzer");
  43. lcd.setCursor(0, 1);
  44. lcd.print("By Douglas S.");
  45. delay(4000);
  46. lcd.clear();
  47. }
  48.  
  49. void loop() {
  50. // put your main code here, to run repeatedly:
  51. buttonStatusRed=digitalRead(5);
  52. buttonStatusGrn=digitalRead(4);
  53. buttonStatusBlu=digitalRead(3);
  54. buttonStatusBlk=digitalRead(2);
  55. if(digitalRead(2)){
  56. onoff ++;
  57. }
  58. bright=map(analogRead(0),0,1023,0,100);
  59. bright= bright/100;
  60. lcd.print(" ");
  61. lcd.print(" R-");
  62. lcd.print("G");
  63. lcd.print("-B ");
  64. lcd.setCursor(0, 1);
  65. lcd.print(shadeRed);
  66. lcd.print(" - ");
  67. lcd.print(shadeGreen);
  68. lcd.print(" - ");
  69. lcd.print(shadeBlue);
  70. lcd.print(" ");
  71. //lcd.clear();
  72. //delay(250);
  73. shadeRed=map(analogRead(1),0,1023,255,0)*bright;
  74. shadeGreen=map(analogRead(2),0,1023,255,0)*bright;
  75. shadeBlue=map(analogRead(3),0,1023,255,0)*bright;
  76. Serial.print(shadeRed);
  77. Serial.print(",");
  78. Serial.print(shadeGreen);
  79. Serial.print(",");
  80. Serial.println(shadeBlue);
  81. delay(1);
  82.  
  83. //INCOMING SERIAL DATA
  84. //Check if incoming is available
  85. if(Serial.available() > 0){
  86. //read if available
  87. incoming = Serial.read();
  88.  
  89. // if(incoming == 150){
  90. // for(int i=0; i<NUMPIXELS; i++){
  91. // pixels.setPixelColor(i, pixels.Color(255,0,0));
  92. // pixels.show();
  93. // delay(15);
  94. // }
  95. // }
  96.  
  97. //listen for R,G,B
  98. if(incoming ==150){
  99. for(int i=0; i<NUMPIXELS; i++){
  100. pixels.setPixelColor(i, pixels.Color(255,0,0));
  101. pixels.show();
  102. delay(55);
  103. }
  104. }else if(incoming ==180){
  105. for(int i=0; i<NUMPIXELS; i++){
  106. pixels.setPixelColor(i, pixels.Color(0,255,0));
  107. pixels.show();
  108. delay(55);
  109. }
  110. }else if(incoming ==190){
  111. for(int i=0; i<NUMPIXELS; i++){
  112. pixels.setPixelColor(i, pixels.Color(0,0,255));
  113. pixels.show();
  114. delay(55);
  115. }
  116. }else if(incoming == 200){
  117. int g=0;
  118. int rainr=150;
  119. int raing=50;
  120. int rainb=0;
  121. while(g < 100){
  122. for(int i=0; i<NUMPIXELS; i++){
  123. pixels.setPixelColor(i, pixels.Color(rainr,raing,rainb));
  124. pixels.show();
  125. delay(5);
  126. }
  127. rainr=rainr+10;
  128. if(rainr >= 255){
  129. rainr=0;
  130. shadeRed=rainr;
  131. }
  132. raing=raing+10;
  133. if(raing >= 255){
  134. raing=0;
  135. shadeGreen=raing;
  136. }
  137. rainb=rainb+10;
  138. if(rainb >= 255){
  139. rainb=0;
  140. shadeBlue=rainb;
  141. }
  142. g++;
  143. }
  144. }
  145.  
  146. }
  147.  
  148.  
  149.  
  150.  
  151.  
  152. /*
  153. Serial.print("Red:");
  154. Serial.print(buttonStatusRed);
  155. Serial.print(" Green:");
  156. Serial.print(buttonStatusGrn);
  157. Serial.print(" Blue:");
  158. Serial.print(buttonStatusBlu);
  159. Serial.print(" On/Off:");
  160. Serial.print(buttonStatusBlk);
  161. Serial.print(" BR:");
  162. Serial.print(bright);
  163. Serial.print(" SR:");
  164. Serial.print(shadeRed);
  165. Serial.print(" SG:");
  166. Serial.print(shadeGreen);
  167. Serial.print(" SB:");
  168. Serial.println(shadeBlue);
  169. */
  170. if(onoff % 2 == 0){
  171. shadeRed= 0;
  172. shadeGreen=0;
  173. shadeBlue=0;
  174. };
  175. if(buttonStatusRed == HIGH){
  176. shadeRed = 255;
  177. shadeGreen = 0;
  178. shadeBlue = 0;
  179. };
  180.  
  181. if(buttonStatusGrn == HIGH){
  182. shadeGreen = 255;
  183. shadeRed = 0;
  184. shadeBlue= 0;
  185. };
  186. if(buttonStatusBlu == HIGH){
  187. shadeBlue = 255;
  188. shadeRed = 0;
  189. shadeGreen= 0;
  190. };
  191.  
  192. if(buttonStatusBlu == HIGH && buttonStatusGrn == HIGH && buttonStatusRed){
  193. for(int i=0; i<NUMPIXELS; i++){
  194. pixels.setPixelColor(i, pixels.Color(red,green,blue));
  195. pixels.show();
  196. //delay(15);
  197. }
  198. red++;
  199. green++;
  200. blue++;
  201. /*
  202. if(red>=255){
  203. red=0;
  204. }
  205. if(blue>=255){
  206. blue=0;
  207. }
  208. if(green>=255){
  209. green=0;
  210. } */
  211.  
  212. }
  213.  
  214. for(int i=0; i<NUMPIXELS; i++){
  215. pixels.setPixelColor(i, pixels.Color(shadeRed,shadeGreen,shadeBlue));
  216. pixels.show();
  217. delay(1);
  218.  
  219. }
Add Comment
Please, Sign In to add comment