6 sharps, 2 ads hooked up
Dependencies: ADS1115 BME280 CronoDot SDFileSystem mbed
Fork of Outdoor_UPAS_v1_2_Tboard by
Diff: main.cpp
- Revision:
- 23:1ca41779b8ec
- Parent:
- 22:baa5a077d908
- Child:
- 24:e274a34492cf
--- a/main.cpp Sat Mar 26 02:51:09 2016 +0000 +++ b/main.cpp Mon Mar 28 02:54:17 2016 +0000 @@ -71,21 +71,21 @@ //GPS ///////////////////////////////////////////// DigitalOut gpsEN(PB_15, 0); -Max_M8 gps(PB_9, PB_8,(66<<1)); +Max_M8 gps(PB_9, PB_8,(0x84)); ///////////////////////////////////////////// //Hbridge Valve Control ///////////////////////////////////////////// -/* -DRV8830 motor1(PB_9, PB_8, 0xC4); -DRV8830 motor2(PB_9, PB_8, 0xCA); -DRV8830 motor3(PB_9, PB_8, 0xCC); -DRV8830 motor4(PB_9, PB_8, 0xCE); + +DRV8830 motor1(PB_9, PB_8, 0xCA); //Not working with 0xC4 will remove R28 and try 0xCA +DRV8830 motor2(PB_9, PB_8, 0xC8); //Works with 0xC8, not 0xCA since R8 isn't on the Tboards. +DRV8830 motor3(PB_9, PB_8, 0xCC); //Not working with 0xCC might try replacing R15 with a 0 ohm resistor and try again. +DRV8830 motor4(PB_9, PB_8, 0xCE); //Works! DigitalIn hb_fault1(PA_6); DigitalIn hb_fault2(PA_7); DigitalIn hb_fault3(PA_5); DigitalIn hb_fault4(PA_4); -*/ + ///////////////////////////////////////////// //SD Card ///////////////////////////////////////////// @@ -160,13 +160,14 @@ float flat = 0; float flon = 0; +bool gpsFix; uint8_t gpssatellites = 0; -double gpsspeed = 0.0; -double gpslatitude = 0.0; -double gpslongitude = 0.0; -float gpsaltitude = 0.0; -char gpslat = 'W'; -char gpslon = 'N'; +double gpsspeed = 0.0; +double gpslatitude = 0.0; +double gpslongitude = 0.0; +float gpsaltitude = 0.0; +char gpslat = 'W'; +char gpslon = 'N'; float home_lat = 40.580508; @@ -404,8 +405,7 @@ void log_data() { - RGB_LED.set_led(1,1,1); - + time_t seconds = time(NULL); strftime(timestr, 32, "%y%m%d%H%M%S", localtime(&seconds)); @@ -447,8 +447,14 @@ vBlowerReading = ads.readADC_SingleEnded(2, 0xE783); // read channel 0 omronDiff = ads.readADC_Differential(0x8583); // differential channel 2-3 - if(gpsEN ==1){ - gps.read(1); + //if(gpsEN ==1){ + + if(gpsFix){ + RGB_LED.set_led(1,1,1); + }else{ + RGB_LED.set_led(1,0,0); + } + gpsFix = gps.read(1); //RGB_LED.set_led(1,1,0); gpsspeed = gps.speed; gpssatellites = gps.satellites; @@ -511,9 +517,9 @@ location = 3; } -*/ + } - +*/ FILE *fp = fopen(filename, "a"); fprintf(fp, "%02d,%02d,%02d,%02d,%02d,%02d,",RTC_UPAS.year, RTC_UPAS.month,RTC_UPAS.date,RTC_UPAS.hour,RTC_UPAS.minutes,RTC_UPAS.seconds); @@ -523,8 +529,7 @@ fprintf(fp, "%.1f,%.1f,%.1f,%.3f,%.3f,%.3f,%.1f,", angle_x,angle_y,angle_z,mag_x, mag_y, mag_z,compass); fprintf(fp, "%d,%d,%d,%d,%d,%d," ,uv,omronReading, vInReading, vBlowerReading, omronDiff,gasG.getAmps()); fprintf(fp, "%d,%d,%d,%1.3f,%1.3f,", gasG.getVolts(), gasG.getCharge(),digital_pot_set, deltaMflow, deltaVflow); - //fprintf(fp, "%f,%f,%06d,%06d\r\n", gps.lat, gps.lon, (long)gps.date, (long)gps.utc); // test and add in speed, etc that Josh added in to match the adafruit GPS - fprintf(fp, "%f,%f,%06d,%06d,%f,%d,%f\r\n", gps.lat, gps.lon, (long)gps.date, (long)gps.utc, gpsspeed, gpssatellites, gpsaltitude); // test and add in speed, etc that Josh added in to match the adafruit GPS + fprintf(fp, "%f,%f,%06d,%06d,%f,%d,%f,%d,%f\r\n", gps.lat, gps.lon, (long)gps.date, (long)gps.utc, gpsspeed, gpssatellites, gpsaltitude, gpsFix, gps.hdop); // test and add in speed, etc that Josh added in to match the adafruit GPS fclose(fp); free(fp); RGB_LED.set_led(0,1,0); @@ -592,15 +597,10 @@ //Main Function ////////////////////////////////////////////////////////////// int main(){ + + RGB_LED.set_led(0,0,1); - gpsEN = 1; - wait(1); - BT_SW = 1; - wait(1); - BT_IRST = 1; - wait(1); - - /* + /* //CODE ADDED TO TEST EEPROM ////////////////////////////////////////// uint8_t serialNumWriter [2] = {0x00,0x12}; @@ -611,8 +611,7 @@ if(putDataInMe[0] == 0x02)pumps=1; ////////////////////////////////////////// //END CODE ADDED TO TEST EEPROM - - + RGB_LED.set_led(0,0,1); STtime.tm_sec = 10; // 0-59 STtime.tm_min = 30; // 0-59 @@ -624,22 +623,24 @@ set_time(seconds); // Set RTC time to 16 December 2013 10:05:23 UTC wait(5); +*/ motor1.getFault(); - //wait(5); + wait(1); RGB_LED.set_led(0,0,0); motor2.getFault(); - //wait(5); - RGB_LED.set_led(1,0,0); + wait(1); + RGB_LED.set_led(0,1,0); motor3.getFault(); - wait(5); + wait(1); RGB_LED.set_led(0,0,0); motor4.getFault(); - //wait(5); - RGB_LED.set_led(1,0,0); + wait(1); + RGB_LED.set_led(0,1,0); +/* RGB_LED.set_led(1,0,0); motor1.drive(254); //closed = 253, open = 254 wait(10); @@ -665,6 +666,26 @@ */ + motor1.drive(254); //closed = 253, open = 254 + motor2.drive(254); //closed = 253, open = 254 + motor3.drive(254); //closed = 253, open = 254 + motor4.drive(254); //closed = 253, open = 254 + + + wait(10); + motor1.stop(); + motor2.stop(); + motor3.stop(); + motor4.stop(); + + + gpsEN = 1; + wait(1); + BT_SW = 1; + wait(1); + BT_IRST = 1; + wait(1); + pc.baud(115200); // set what you want here depending on your terminal program speed pc.printf("\f\n\r-------------Startup-------------\n\r"); @@ -765,7 +786,7 @@ DigPot.writeRegister(digital_pot_setpoint); wait(1); - pumps = 1; + //pumps = 1; uint8_t subjectLabelOriginal[8] = {0,}; E2PROM.read(0x00001, subjectLabelOriginal,8);