Advertisement
Guest User

Untitled

a guest
Apr 20th, 2018
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.73 KB | None | 0 0
  1. int randomArrayValues[50];
  2. int incomingByte;
  3.  
  4. // Light Ints
  5. int light128 = 13;
  6. int light64 = 12;
  7. int light32 = 11;
  8. int light16 = 10;
  9. int light8 = 9;
  10. int light4 = 8;
  11. int light2 = 7;
  12. int light1 = 6;
  13.  
  14. void setup() {
  15.  
  16. // SETUP LIGHTS
  17. pinMode(light128, OUTPUT);
  18. pinMode(light64, OUTPUT);
  19. pinMode(light32, OUTPUT);
  20. pinMode(light16, OUTPUT);
  21. pinMode(light8, OUTPUT);
  22. pinMode(light4, OUTPUT);
  23. pinMode(light2, OUTPUT);
  24. pinMode(light1, OUTPUT);
  25.  
  26. Serial.begin(9600); // Load Serial Port
  27.  
  28.  
  29. randomSeed (analogRead(0));
  30. // Add random numbers to array
  31. for (int i = 0; i < 50; i++) {
  32. int n = random (256);
  33. randomArrayValues[i] = n;
  34. }
  35. Serial.print("Random Array: ");
  36. for(int i=0; i<50; i++) {
  37. Serial.print(randomArrayValues[i]);
  38. Serial.print(",");
  39. }
  40. Serial.println("");
  41.  
  42. }
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49. void loop() {
  50. // see if there's incoming serial data:
  51. if (Serial.available() > 0) {
  52. // read the oldest byte in the serial buffer:
  53. incomingByte = Serial.read();
  54. // if it's a capital S
  55. if (incomingByte == 'S') {
  56. // Call function to sort these values highest to lowest
  57. sort(randomArrayValues,50);
  58. }
  59. }
  60. // Call Highest Number Function
  61. HighestNumber ();
  62. delay (5000);
  63.  
  64. //Turn prevs lights off
  65. if (Serial.available() > 0) {
  66. // read the oldest byte in the serial buffer:
  67. incomingByte = Serial.read();
  68. // if it's a capital S
  69. if (incomingByte == 'S') {
  70. // Call function to sort these values highest to lowest
  71. sort(randomArrayValues,50);
  72. }
  73. }
  74. PowerOffLights ();
  75. delay (1000);
  76.  
  77. // Call Lowest Number Function
  78. if (Serial.available() > 0) {
  79. // read the oldest byte in the serial buffer:
  80. incomingByte = Serial.read();
  81. // if it's a capital S
  82. if (incomingByte == 'S') {
  83. // Call function to sort these values highest to lowest
  84. sort(randomArrayValues,50);
  85. }
  86. }
  87. LowestNumber ();
  88. delay (5000);
  89.  
  90. //Turn prevs lights off
  91. if (Serial.available() > 0) {
  92. // read the oldest byte in the serial buffer:
  93. incomingByte = Serial.read();
  94. // if it's a capital S
  95. if (incomingByte == 'S') {
  96. // Call function to sort these values highest to lowest
  97. sort(randomArrayValues,50);
  98. }
  99. }
  100. PowerOffLights ();
  101. delay (1000);
  102.  
  103.  
  104. }
  105.  
  106.  
  107.  
  108.  
  109. // Highest Number function
  110. void HighestNumber () {
  111. int highestnumber = randomArrayValues[49];
  112. if (highestnumber >= 128) {
  113. digitalWrite(light128, HIGH);
  114. highestnumber = highestnumber - 128;
  115. }
  116. if (highestnumber >= 64 && highestnumber < 128) {
  117. digitalWrite(light64, HIGH);
  118. highestnumber = highestnumber - 64;
  119. }
  120. if (highestnumber >= 32 && highestnumber < 64) {
  121. digitalWrite(light32, HIGH);
  122. highestnumber = highestnumber - 32;
  123. }
  124. if (highestnumber >= 16 && highestnumber < 32) {
  125. digitalWrite(light16, HIGH);
  126. highestnumber = highestnumber - 16;
  127. }
  128. if (highestnumber >= 8 && highestnumber < 16) {
  129. digitalWrite(light8, HIGH);
  130. highestnumber = highestnumber - 8;
  131. }
  132. if (highestnumber >= 4 && highestnumber < 8) {
  133. digitalWrite(light4, HIGH);
  134. highestnumber = highestnumber - 4;
  135. }
  136. if (highestnumber >= 2 && highestnumber < 4) {
  137. digitalWrite(light2, HIGH);
  138. highestnumber = highestnumber - 2;
  139. }
  140. if (highestnumber >= 1 && highestnumber < 2) {
  141. digitalWrite(light1, HIGH);
  142. highestnumber = highestnumber - 1;
  143. }
  144. }
  145.  
  146. // Lowest Number function
  147. void LowestNumber () {
  148. int lowestnumber = randomArrayValues[0];
  149. if (lowestnumber >= 128) {
  150. digitalWrite(light128, HIGH);
  151. lowestnumber = lowestnumber - 128;
  152. }
  153. if (lowestnumber >= 64 && lowestnumber < 128) {
  154. digitalWrite(light64, HIGH);
  155. lowestnumber = lowestnumber - 64;
  156. }
  157. if (lowestnumber >= 32 && lowestnumber < 64) {
  158. digitalWrite(light32, HIGH);
  159. lowestnumber = lowestnumber - 32;
  160. }
  161. if (lowestnumber >= 16 && lowestnumber < 32) {
  162. digitalWrite(light16, HIGH);
  163. lowestnumber = lowestnumber - 16;
  164. }
  165. if (lowestnumber >= 8 && lowestnumber < 16) {
  166. digitalWrite(light8, HIGH);
  167. lowestnumber = lowestnumber - 8;
  168. }
  169. if (lowestnumber >= 4 && lowestnumber < 8) {
  170. digitalWrite(light4, HIGH);
  171. lowestnumber = lowestnumber - 4;
  172. }
  173. if (lowestnumber >= 2 && lowestnumber < 4) {
  174. digitalWrite(light2, HIGH);
  175. lowestnumber = lowestnumber - 2;
  176. }
  177. if (lowestnumber >= 1 && lowestnumber < 2) {
  178. digitalWrite(light1, HIGH);
  179. lowestnumber = lowestnumber - 1;
  180. }
  181. }
  182.  
  183. void PowerOffLights () {
  184. digitalWrite(light128, LOW);
  185. digitalWrite(light64, LOW);
  186. digitalWrite(light32, LOW);
  187. digitalWrite(light16, LOW);
  188. digitalWrite(light8, LOW);
  189. digitalWrite(light4, LOW);
  190. digitalWrite(light2, LOW);
  191. digitalWrite(light1, LOW);
  192. }
  193.  
  194. void swap(int *xp, int *yp)
  195. {
  196. int temp = *xp;
  197. *xp = *yp;
  198. *yp = temp;
  199. }
  200.  
  201. // A function to implement bubble sort
  202. void sort(int randomArrayValues[], int n)
  203. {
  204. int i, j;
  205. for (i = 0; i < n-1; i++)
  206.  
  207. // Last i elements are already in place
  208. for (j = 0; j < n-i-1; j++)
  209. if (randomArrayValues[j] > randomArrayValues[j+1])
  210. swap(&randomArrayValues[j], &randomArrayValues[j+1]);
  211.  
  212. Serial.print("Sorted array: ");
  213. for(int i=0; i<50;i++) {
  214. Serial.print (randomArrayValues[i]);
  215. Serial.print (",");
  216. }
  217. Serial.println ("");
  218.  
  219. Serial.print("Highest Number = ");
  220. Serial.print(randomArrayValues[49]);
  221. Serial.println("");
  222. Serial.print("Lowest Number = ");
  223. Serial.print(randomArrayValues[0]);
  224. Serial.println("");
  225.  
  226.  
  227.  
  228. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement