Code used for order of the arrow stem fest
Dependencies: ADXL362 TSL2561 mbed
main.cpp@1:30b301d09229, 2018-07-24 (annotated)
- Committer:
- bhimebau
- Date:
- Tue Jul 24 18:49:42 2018 +0000
- Revision:
- 1:30b301d09229
- Parent:
- 0:81d75634beee
Done. ;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
bhimebau | 0:81d75634beee | 1 | #include "mbed.h" |
bhimebau | 0:81d75634beee | 2 | |
bhimebau | 0:81d75634beee | 3 | /*------------------------------------------------------------------------------ |
bhimebau | 0:81d75634beee | 4 | Before to use this example, ensure that you an hyperterminal installed on your |
bhimebau | 0:81d75634beee | 5 | computer. More info here: https://developer.mbed.org/handbook/Terminals |
bhimebau | 0:81d75634beee | 6 | |
bhimebau | 0:81d75634beee | 7 | The default serial comm port uses the SERIAL_TX and SERIAL_RX pins (see their |
bhimebau | 0:81d75634beee | 8 | definition in the PinNames.h file). |
bhimebau | 0:81d75634beee | 9 | |
bhimebau | 0:81d75634beee | 10 | The default serial configuration in this case is 9600 bauds, 8-bit data, no parity |
bhimebau | 0:81d75634beee | 11 | |
bhimebau | 0:81d75634beee | 12 | If you want to change the baudrate for example, you have to redeclare the |
bhimebau | 0:81d75634beee | 13 | serial object in your code: |
bhimebau | 0:81d75634beee | 14 | |
bhimebau | 0:81d75634beee | 15 | Serial pc(SERIAL_TX, SERIAL_RX); |
bhimebau | 0:81d75634beee | 16 | |
bhimebau | 0:81d75634beee | 17 | Then, you can modify the baudrate and print like this: |
bhimebau | 0:81d75634beee | 18 | |
bhimebau | 0:81d75634beee | 19 | pc.baud(115200); |
bhimebau | 0:81d75634beee | 20 | pc.printf("Hello World !\n"); |
bhimebau | 0:81d75634beee | 21 | ------------------------------------------------------------------------------*/ |
bhimebau | 0:81d75634beee | 22 | |
bhimebau | 0:81d75634beee | 23 | DigitalOut led(LED1); |
bhimebau | 0:81d75634beee | 24 | |
bhimebau | 0:81d75634beee | 25 | int main() |
bhimebau | 0:81d75634beee | 26 | { |
bhimebau | 0:81d75634beee | 27 | int i = 1; |
bhimebau | 0:81d75634beee | 28 | |
bhimebau | 0:81d75634beee | 29 | printf("Hello World !\n"); |
bhimebau | 0:81d75634beee | 30 | |
bhimebau | 0:81d75634beee | 31 | while(1) { |
bhimebau | 0:81d75634beee | 32 | wait(1); // 1 second |
bhimebau | 0:81d75634beee | 33 | led = !led; // Toggle LED |
bhimebau | 0:81d75634beee | 34 | printf("This program runs since %d seconds.\n", i++); |
bhimebau | 0:81d75634beee | 35 | } |
bhimebau | 0:81d75634beee | 36 | } |
bhimebau | 0:81d75634beee | 37 | |
bhimebau | 0:81d75634beee | 38 | |
bhimebau | 0:81d75634beee | 39 | /* #include "mbed.h" |
bhimebau | 0:81d75634beee | 40 | #include "ADXL362.h" |
bhimebau | 0:81d75634beee | 41 | |
bhimebau | 0:81d75634beee | 42 | ADXL362 adxl362(D9); |
bhimebau | 0:81d75634beee | 43 | |
bhimebau | 0:81d75634beee | 44 | int main() { |
bhimebau | 0:81d75634beee | 45 | |
bhimebau | 0:81d75634beee | 46 | adxl362.reset(); |
bhimebau | 0:81d75634beee | 47 | wait_ms(600); // we need to wait at least 500ms after ADXL362 reset |
bhimebau | 0:81d75634beee | 48 | adxl362.set_mode(ADXL362::MEASUREMENT); |
bhimebau | 0:81d75634beee | 49 | uint8_t x,y,z; |
bhimebau | 0:81d75634beee | 50 | while(1) { |
bhimebau | 0:81d75634beee | 51 | x=adxl362.scanx_u8(); |
bhimebau | 0:81d75634beee | 52 | y=adxl362.scany_u8(); |
bhimebau | 0:81d75634beee | 53 | z=adxl362.scanz_u8(); |
bhimebau | 0:81d75634beee | 54 | printf("x = %x y = %x z = %x\r\n",x,y,z); |
bhimebau | 0:81d75634beee | 55 | wait_ms(100); |
bhimebau | 0:81d75634beee | 56 | } |
bhimebau | 0:81d75634beee | 57 | } |
bhimebau | 0:81d75634beee | 58 | |
bhimebau | 0:81d75634beee | 59 | #include "mbed.h" |
bhimebau | 0:81d75634beee | 60 | #include "TSL2561.h" |
bhimebau | 0:81d75634beee | 61 | |
bhimebau | 0:81d75634beee | 62 | Serial PC(USBTX, USBRX); |
bhimebau | 0:81d75634beee | 63 | |
bhimebau | 0:81d75634beee | 64 | #define PC_PRINTX(z,x) if(z==1) PC.printf(x); |
bhimebau | 0:81d75634beee | 65 | #define PC_PRINTLNX(z,x) if(z==1) {PC.printf(x); PC.printf("\r\n");} |
bhimebau | 0:81d75634beee | 66 | #define PC_PRINTXY(z,x, y) if(z==1) PC.printf(x, y); |
bhimebau | 0:81d75634beee | 67 | #define PC_PRINTLNXY(z,x, y) if(z==1) {PC.printf(x, y); PC.printf("\r\n");} |
bhimebau | 0:81d75634beee | 68 | |
bhimebau | 0:81d75634beee | 69 | DigitalOut myled(LED1); |
bhimebau | 0:81d75634beee | 70 | TSL2561 tsl2561(TSL2561_ADDR_FLOAT); |
bhimebau | 0:81d75634beee | 71 | |
bhimebau | 0:81d75634beee | 72 | Timer setuptimer; |
bhimebau | 0:81d75634beee | 73 | Timer executetimer; |
bhimebau | 0:81d75634beee | 74 | |
bhimebau | 0:81d75634beee | 75 | void setup(void){ |
bhimebau | 0:81d75634beee | 76 | |
bhimebau | 0:81d75634beee | 77 | if (tsl2561.begin()) { |
bhimebau | 0:81d75634beee | 78 | PC_PRINTLNX(1,"TSL2561 Sensor Found"); |
bhimebau | 0:81d75634beee | 79 | } else { |
bhimebau | 0:81d75634beee | 80 | PC_PRINTLNX(1,"TSL2561 Sensor not Found"); |
bhimebau | 0:81d75634beee | 81 | } |
bhimebau | 0:81d75634beee | 82 | |
bhimebau | 0:81d75634beee | 83 | // You can change the gain on the fly, to adapt to brighter/dimmer tsl2561 situations |
bhimebau | 0:81d75634beee | 84 | tsl2561.setGain(TSL2561_GAIN_0X); // set no gain (for bright situtations) |
bhimebau | 0:81d75634beee | 85 | //tsl2561.setGain(TSL2561_GAIN_16X); // set 16x gain (for dim situations) |
bhimebau | 0:81d75634beee | 86 | |
bhimebau | 0:81d75634beee | 87 | // Changing the integration time gives you a longer time over which to sense tsl2561 |
bhimebau | 0:81d75634beee | 88 | // longer timelines are slower, but are good in very low tsl2561 situtations! |
bhimebau | 0:81d75634beee | 89 | //tsl2561.setTiming(TSL2561_INTEGRATIONTIME_13MS); // shortest integration time (bright tsl2561) |
bhimebau | 0:81d75634beee | 90 | //tsl2561.setTiming(TSL2561_INTEGRATIONTIME_101MS); // medium integration time (medium tsl2561) |
bhimebau | 0:81d75634beee | 91 | tsl2561.setTiming(TSL2561_INTEGRATIONTIME_402MS); // longest integration time (dim tsl2561) |
bhimebau | 0:81d75634beee | 92 | |
bhimebau | 0:81d75634beee | 93 | // Now we're ready to get readings! |
bhimebau | 0:81d75634beee | 94 | } |
bhimebau | 0:81d75634beee | 95 | |
bhimebau | 0:81d75634beee | 96 | int main() { |
bhimebau | 0:81d75634beee | 97 | |
bhimebau | 0:81d75634beee | 98 | PC_PRINTLNX(1,"----------START-------------"); |
bhimebau | 0:81d75634beee | 99 | setuptimer.start(); |
bhimebau | 0:81d75634beee | 100 | setup(); |
bhimebau | 0:81d75634beee | 101 | setuptimer.stop(); |
bhimebau | 0:81d75634beee | 102 | PC_PRINTLNXY(1,"Setup time: %f",setuptimer.read()); |
bhimebau | 0:81d75634beee | 103 | setuptimer.reset(); |
bhimebau | 0:81d75634beee | 104 | |
bhimebau | 0:81d75634beee | 105 | uint16_t x,y,z; |
bhimebau | 0:81d75634beee | 106 | |
bhimebau | 0:81d75634beee | 107 | while(1) { |
bhimebau | 0:81d75634beee | 108 | |
bhimebau | 0:81d75634beee | 109 | |
bhimebau | 0:81d75634beee | 110 | // Simple data read example. Just read the infrared, fullspecrtrum diode |
bhimebau | 0:81d75634beee | 111 | // or 'visible' (difference between the two) channels. |
bhimebau | 0:81d75634beee | 112 | // This can take 13-402 milliseconds! Uncomment whichever of the following you want to read |
bhimebau | 0:81d75634beee | 113 | |
bhimebau | 0:81d75634beee | 114 | executetimer.start(); |
bhimebau | 0:81d75634beee | 115 | x = tsl2561.getLuminosity(TSL2561_VISIBLE); |
bhimebau | 0:81d75634beee | 116 | y = tsl2561.getLuminosity(TSL2561_FULLSPECTRUM); |
bhimebau | 0:81d75634beee | 117 | z = tsl2561.getLuminosity(TSL2561_INFRARED); |
bhimebau | 0:81d75634beee | 118 | executetimer.stop(); |
bhimebau | 0:81d75634beee | 119 | |
bhimebau | 0:81d75634beee | 120 | PC_PRINTLNXY(1,"Visible: %d",x); |
bhimebau | 0:81d75634beee | 121 | PC_PRINTLNXY(1,"Full Spectrum: %d",y); |
bhimebau | 0:81d75634beee | 122 | PC_PRINTLNXY(1,"Infrared: %d",z); |
bhimebau | 0:81d75634beee | 123 | PC_PRINTLNXY(1,"Execution Time: %f",executetimer.read()); |
bhimebau | 0:81d75634beee | 124 | executetimer.reset(); |
bhimebau | 0:81d75634beee | 125 | |
bhimebau | 0:81d75634beee | 126 | //More advanced data read example. Read 32 bits with top 16 bits IR, bottom 16 bits full spectrum |
bhimebau | 0:81d75634beee | 127 | //That way you can do whatever math and comparisons you want! |
bhimebau | 0:81d75634beee | 128 | // uint32_t lum = tsl2561.getFullLuminosity(); |
bhimebau | 0:81d75634beee | 129 | // uint16_t ir, full; |
bhimebau | 0:81d75634beee | 130 | // ir = lum >> 16; |
bhimebau | 0:81d75634beee | 131 | // full = lum & 0xFFFF; |
bhimebau | 0:81d75634beee | 132 | |
bhimebau | 0:81d75634beee | 133 | // PC_PRINTLNXY(1,"Visible: %d",full - ir); |
bhimebau | 0:81d75634beee | 134 | // PC_PRINTLNXY(1,"Full Spectrum: %d",full); |
bhimebau | 0:81d75634beee | 135 | // PC_PRINTLNXY(1,"Infrared: %d",ir); |
bhimebau | 0:81d75634beee | 136 | |
bhimebau | 0:81d75634beee | 137 | // wait(1); |
bhimebau | 0:81d75634beee | 138 | PC_PRINTLNX(1,"----------COMPLETE-------------"); |
bhimebau | 0:81d75634beee | 139 | } |
bhimebau | 0:81d75634beee | 140 | } |
bhimebau | 0:81d75634beee | 141 | |
bhimebau | 0:81d75634beee | 142 | */ |
bhimebau | 0:81d75634beee | 143 | |
bhimebau | 0:81d75634beee | 144 |