:)
Dependencies: MbedJSONValue DebounceIn TextLCD USBDevice mbed WebSocketClient cc3000_hostdriver_mbedsocket Adafruit_LEDBackpack_2
Diff: main.cpp
- Revision:
- 5:03d75ad40d5e
- Parent:
- 4:5d27966f93e4
- Child:
- 6:d0a1eba7f943
--- a/main.cpp Mon Nov 24 00:49:48 2014 +0000 +++ b/main.cpp Mon Nov 24 17:52:11 2014 +0000 @@ -13,13 +13,13 @@ I2C i2c(D7,D6); Adafruit_24bargraph ledbar_left=Adafruit_24bargraph(&i2c); -//I2C i2c(D7,D6); -//Adafruit_24bargraph ledbar_right=Adafruit_24bargraph(&i2c); +I2C i2c(D7,D6); +Adafruit_24bargraph ledbar_right=Adafruit_24bargraph(&i2c); DebounceIn upbutton(D9); DebounceIn downbutton(D8); -//DebounceIn leftbutton( ); -//DebounceIn rightbutton( ); +DebounceIn leftbutton( ); +DebounceIn rightbutton( ); //Scanner stuff @@ -74,7 +74,7 @@ ledbar_left.begin(0x70); ledbar_left.clear(); ledbar_left.writeDisplay(); - + ledbar_right.begin(0x70); ledbar_right.clear(); ledbar_right.writeDisplay(); @@ -86,17 +86,18 @@ lcd.printf("%s",programname.c_str()); while(1) { - + //Display if (colselect == 0) { - ledbar_left.setBar(rowselect_old,LED_OFF); - ledbar_left.setBar(rowselect,LED_GREEN); - ledbar_left.writeDisplay(); - ledbar_right.writeDisplay(); - } - else - ledbar_right.setBar(rowselect_old,LED_OFF); + ledbar_left.clear(); + ledbar_right.clear(); + ledbar_left.setBar(rowselect,LED_GREEN); + ledbar_left.writeDisplay(); + ledbar_right.writeDisplay(); + } else + ledbar_left.clear(); + ledbar_right.clear(); ledbar_right.setBar(rowselect,LED_GREEN); ledbar_right.writeDisplay(); ledbar_left.writeDisplay(); @@ -115,18 +116,23 @@ moved = 1; wait(0.75); } - + if (leftbutton.read() == 0) { colselect = 0; + ledbar_right.clear(); + moved =1; wait(0.75); - ledbar_right.clear(); + } - + if (rightbutton.read() == 0) { colselect = 1; + ledbar_left.clear(); + moved =1; wait(0.75); - ledbar_left.clear(); - } + + + } //Boundary checking if (rowselect > 23) { @@ -186,7 +192,6 @@ } } ledbar.writeDisplay(); - moved = 0; float vddmeasure = 3.14259; float vrowmeasure = 1.1234; @@ -214,6 +219,7 @@ /* +///// PUT ALL BELOW IN SCAN BUTTON IF //////// //Scans rows connected to vdd and ground. Vdd = 2 in con mat, Ground = 3. Rows connected to selected row = 1. //SET MULTIPLEXER TO READ VDD @@ -222,6 +228,9 @@ //SET MULTIPLEXER TO READ SELECTED ROW rowval = adc.read(); +ledbar_left.clear(); +ledbar_right.clear(); + for (int x = 0; x < 2; x++) { for (int y = 0; y < 24; y++) { A_in = x%2; @@ -240,23 +249,69 @@ float in_val = adc.read(); volt_mat[x][y] = in_val; - + if (in_val == vddval){ con_mat[x][y] = 2; + if (x == 0){ + ledbar_left.setBar(y,LED_RED); + } + else { + ledbar_right.setBar(y,LED_RED); + } } if (in_val == 0){ con_mat[x][y] = 3; + if (x == 0){ + ledbar_left.setBar(y,LED_YELLOW); + } + else { + ledbar_right.setBar(y,LED_YELLOW); + } } if (in_val == rowval){ con_mat[x][y] = 1; + if (x == 0){ + ledbar_left.setBar(y,LED_GREEN); + } + else { + ledbar_right.setBar(y,LED_GREEN); + } } else con_mat[x][y] = 0; } } +moved = 0; + +//// PUT ALL ABOVE IN SCAN BUTTON IF ///// + + + +if (moved==0) { +ledbar_left.writeDisplay(); +ledbar_right.writeDisplay(); +lcd.cls(); +lcd.locate(0,1); +lcd.printf("Vdd: %1.1f V",vddval); +lcd.locate(0,0); +lcd.printf("Row: %1.1f V",rowval); +} +else { + lcd.cls(); + string programname = "Dan's UI Test"; + string instructions = "Select a row and scan it"; + lcd.locate(0,0); + lcd.printf("%s",programname.c_str()); + lcd.locate(0,1); + lcd.printf("%s",instructions.c_str()); +} + + + + //Q: Do we need to do the same test for ground or can 0.00 be assumed? -//Q: What is the most efficient way to compare all the "volt_mat" elements? +//Q: What is the most efficient way to compare all the "volt_mat" elements? //Q: Do we need to add a "confidence interval" around the rowval and vdd tests?