Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int randomArrayValues[50];
- int incomingByte;
- // Light Ints
- int light128 = 13;
- int light64 = 12;
- int light32 = 11;
- int light16 = 10;
- int light8 = 9;
- int light4 = 8;
- int light2 = 7;
- int light1 = 6;
- void setup() {
- // SETUP LIGHTS
- pinMode(light128, OUTPUT);
- pinMode(light64, OUTPUT);
- pinMode(light32, OUTPUT);
- pinMode(light16, OUTPUT);
- pinMode(light8, OUTPUT);
- pinMode(light4, OUTPUT);
- pinMode(light2, OUTPUT);
- pinMode(light1, OUTPUT);
- Serial.begin(9600); // Load Serial Port
- randomSeed (analogRead(0));
- // Add random numbers to array
- for (int i = 0; i < 50; i++) {
- int n = random (256);
- randomArrayValues[i] = n;
- }
- Serial.print("Random Array: ");
- for(int i=0; i<50; i++) {
- Serial.print(randomArrayValues[i]);
- Serial.print(",");
- }
- Serial.println("");
- }
- void loop() {
- // see if there's incoming serial data:
- if (Serial.available() > 0) {
- // read the oldest byte in the serial buffer:
- incomingByte = Serial.read();
- // if it's a capital S
- if (incomingByte == 'S') {
- // Call function to sort these values highest to lowest
- sort(randomArrayValues,50);
- }
- }
- // Call Highest Number Function
- HighestNumber ();
- delay (5000);
- //Turn prevs lights off
- if (Serial.available() > 0) {
- // read the oldest byte in the serial buffer:
- incomingByte = Serial.read();
- // if it's a capital S
- if (incomingByte == 'S') {
- // Call function to sort these values highest to lowest
- sort(randomArrayValues,50);
- }
- }
- PowerOffLights ();
- delay (1000);
- // Call Lowest Number Function
- if (Serial.available() > 0) {
- // read the oldest byte in the serial buffer:
- incomingByte = Serial.read();
- // if it's a capital S
- if (incomingByte == 'S') {
- // Call function to sort these values highest to lowest
- sort(randomArrayValues,50);
- }
- }
- LowestNumber ();
- delay (5000);
- //Turn prevs lights off
- if (Serial.available() > 0) {
- // read the oldest byte in the serial buffer:
- incomingByte = Serial.read();
- // if it's a capital S
- if (incomingByte == 'S') {
- // Call function to sort these values highest to lowest
- sort(randomArrayValues,50);
- }
- }
- PowerOffLights ();
- delay (1000);
- }
- // Highest Number function
- void HighestNumber () {
- int highestnumber = randomArrayValues[49];
- if (highestnumber >= 128) {
- digitalWrite(light128, HIGH);
- highestnumber = highestnumber - 128;
- }
- if (highestnumber >= 64 && highestnumber < 128) {
- digitalWrite(light64, HIGH);
- highestnumber = highestnumber - 64;
- }
- if (highestnumber >= 32 && highestnumber < 64) {
- digitalWrite(light32, HIGH);
- highestnumber = highestnumber - 32;
- }
- if (highestnumber >= 16 && highestnumber < 32) {
- digitalWrite(light16, HIGH);
- highestnumber = highestnumber - 16;
- }
- if (highestnumber >= 8 && highestnumber < 16) {
- digitalWrite(light8, HIGH);
- highestnumber = highestnumber - 8;
- }
- if (highestnumber >= 4 && highestnumber < 8) {
- digitalWrite(light4, HIGH);
- highestnumber = highestnumber - 4;
- }
- if (highestnumber >= 2 && highestnumber < 4) {
- digitalWrite(light2, HIGH);
- highestnumber = highestnumber - 2;
- }
- if (highestnumber >= 1 && highestnumber < 2) {
- digitalWrite(light1, HIGH);
- highestnumber = highestnumber - 1;
- }
- }
- // Lowest Number function
- void LowestNumber () {
- int lowestnumber = randomArrayValues[0];
- if (lowestnumber >= 128) {
- digitalWrite(light128, HIGH);
- lowestnumber = lowestnumber - 128;
- }
- if (lowestnumber >= 64 && lowestnumber < 128) {
- digitalWrite(light64, HIGH);
- lowestnumber = lowestnumber - 64;
- }
- if (lowestnumber >= 32 && lowestnumber < 64) {
- digitalWrite(light32, HIGH);
- lowestnumber = lowestnumber - 32;
- }
- if (lowestnumber >= 16 && lowestnumber < 32) {
- digitalWrite(light16, HIGH);
- lowestnumber = lowestnumber - 16;
- }
- if (lowestnumber >= 8 && lowestnumber < 16) {
- digitalWrite(light8, HIGH);
- lowestnumber = lowestnumber - 8;
- }
- if (lowestnumber >= 4 && lowestnumber < 8) {
- digitalWrite(light4, HIGH);
- lowestnumber = lowestnumber - 4;
- }
- if (lowestnumber >= 2 && lowestnumber < 4) {
- digitalWrite(light2, HIGH);
- lowestnumber = lowestnumber - 2;
- }
- if (lowestnumber >= 1 && lowestnumber < 2) {
- digitalWrite(light1, HIGH);
- lowestnumber = lowestnumber - 1;
- }
- }
- void PowerOffLights () {
- digitalWrite(light128, LOW);
- digitalWrite(light64, LOW);
- digitalWrite(light32, LOW);
- digitalWrite(light16, LOW);
- digitalWrite(light8, LOW);
- digitalWrite(light4, LOW);
- digitalWrite(light2, LOW);
- digitalWrite(light1, LOW);
- }
- void swap(int *xp, int *yp)
- {
- int temp = *xp;
- *xp = *yp;
- *yp = temp;
- }
- // A function to implement bubble sort
- void sort(int randomArrayValues[], int n)
- {
- int i, j;
- for (i = 0; i < n-1; i++)
- // Last i elements are already in place
- for (j = 0; j < n-i-1; j++)
- if (randomArrayValues[j] > randomArrayValues[j+1])
- swap(&randomArrayValues[j], &randomArrayValues[j+1]);
- Serial.print("Sorted array: ");
- for(int i=0; i<50;i++) {
- Serial.print (randomArrayValues[i]);
- Serial.print (",");
- }
- Serial.println ("");
- Serial.print("Highest Number = ");
- Serial.print(randomArrayValues[49]);
- Serial.println("");
- Serial.print("Lowest Number = ");
- Serial.print(randomArrayValues[0]);
- Serial.println("");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement