Neil Hardy / Mbed 2 deprecated Gas_Sensor_Array

Dependencies:   4DGL-uLCD-SE mbed

Fork of Gas_Sensor_best_copy by Neil Hardy

Committer:
nhardy6
Date:
Thu Jun 16 21:59:31 2016 +0000
Revision:
0:bd3708b85a8b
Child:
1:fec4764e82cb
updated as of 6/16/16

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nhardy6 0:bd3708b85a8b 1 #include "mbed.h"
nhardy6 0:bd3708b85a8b 2 #include "GasArray.h"
nhardy6 0:bd3708b85a8b 3 #include "string.h"
nhardy6 0:bd3708b85a8b 4
nhardy6 0:bd3708b85a8b 5 //base sensors' resistances
nhardy6 0:bd3708b85a8b 6 float baseR[] = {9000, 650000};
nhardy6 0:bd3708b85a8b 7
nhardy6 0:bd3708b85a8b 8 //number of sensors
nhardy6 0:bd3708b85a8b 9 int number = 2;
nhardy6 0:bd3708b85a8b 10
nhardy6 0:bd3708b85a8b 11 //input total voltage across divider
nhardy6 0:bd3708b85a8b 12 float pwrV = 3;
nhardy6 0:bd3708b85a8b 13
nhardy6 0:bd3708b85a8b 14 //corresponding divider resistances
nhardy6 0:bd3708b85a8b 15 float dividerR[] = {1000, 201000};
nhardy6 0:bd3708b85a8b 16
nhardy6 0:bd3708b85a8b 17 //corresponding sensor pins (analog in)
nhardy6 0:bd3708b85a8b 18 AnalogIn places[] = {A0, A1};
nhardy6 0:bd3708b85a8b 19
nhardy6 0:bd3708b85a8b 20 //sensitivity matrix (ONLY TAKES SQUARE MATRICES)
nhardy6 0:bd3708b85a8b 21 float ISensitivityM[] = {-0.5,-0.001,-1,-0.0024};
nhardy6 0:bd3708b85a8b 22
nhardy6 0:bd3708b85a8b 23 //sensor types
nhardy6 0:bd3708b85a8b 24 string type[] = {"p-type", "n-type"};
nhardy6 0:bd3708b85a8b 25
nhardy6 0:bd3708b85a8b 26 //gases
nhardy6 0:bd3708b85a8b 27 string gas[] = {"NO", "NO2"};
nhardy6 0:bd3708b85a8b 28
nhardy6 0:bd3708b85a8b 29 //tare button
nhardy6 0:bd3708b85a8b 30 DigitalIn tareButton(p5);
nhardy6 0:bd3708b85a8b 31
nhardy6 0:bd3708b85a8b 32 //initialize screen
nhardy6 0:bd3708b85a8b 33 uLCD_4DGL uLCD(p28, p27, p29);
nhardy6 0:bd3708b85a8b 34
nhardy6 0:bd3708b85a8b 35 //establish sensor array
nhardy6 0:bd3708b85a8b 36 GasArray Device(number, baseR, pwrV, dividerR, places, ISensitivityM, type, gas);
nhardy6 0:bd3708b85a8b 37
nhardy6 0:bd3708b85a8b 38 int main()
nhardy6 0:bd3708b85a8b 39 {
nhardy6 0:bd3708b85a8b 40 //setup button
nhardy6 0:bd3708b85a8b 41 tareButton.rise(&zero);
nhardy6 0:bd3708b85a8b 42 //setup screen
nhardy6 0:bd3708b85a8b 43 uLCD.display_control(PORTRAIT);
nhardy6 0:bd3708b85a8b 44 uLCD.cls();
nhardy6 0:bd3708b85a8b 45 uLCD.baudrate(BAUD_3000000);
nhardy6 0:bd3708b85a8b 46 uLCD.background_color(BLACK);
nhardy6 0:bd3708b85a8b 47 //include cool credit
nhardy6 0:bd3708b85a8b 48 uLCD.printf("Georgia Tech \n\n Sensors and\n Catalysis Lab \n\n in collaboration with \n\n Hardy\n Technologies");
nhardy6 0:bd3708b85a8b 49 wait(.5);
nhardy6 0:bd3708b85a8b 50
nhardy6 0:bd3708b85a8b 51 //display percentages
nhardy6 0:bd3708b85a8b 52 Device.display_init(&uLCD);
nhardy6 0:bd3708b85a8b 53 //continuously update
nhardy6 0:bd3708b85a8b 54 while(1)
nhardy6 0:bd3708b85a8b 55 {
nhardy6 0:bd3708b85a8b 56 //read voltages
nhardy6 0:bd3708b85a8b 57 Device.read();
nhardy6 0:bd3708b85a8b 58 //display percentages
nhardy6 0:bd3708b85a8b 59 Device.display_cont(&uLCD);
nhardy6 0:bd3708b85a8b 60 }
nhardy6 0:bd3708b85a8b 61 }
nhardy6 0:bd3708b85a8b 62
nhardy6 0:bd3708b85a8b 63 void zero()
nhardy6 0:bd3708b85a8b 64 {
nhardy6 0:bd3708b85a8b 65 //take voltage, use it to reform base resistances
nhardy6 0:bd3708b85a8b 66 }