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:
Tue Jun 28 18:58:40 2016 +0000
Revision:
1:fec4764e82cb
Parent:
0:bd3708b85a8b
finished tare button

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 1:fec4764e82cb 30 InterruptIn 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 1:fec4764e82cb 38 void zero()
nhardy6 1:fec4764e82cb 39 {
nhardy6 1:fec4764e82cb 40 Device.tare();
nhardy6 1:fec4764e82cb 41 }
nhardy6 1:fec4764e82cb 42
nhardy6 0:bd3708b85a8b 43 int main()
nhardy6 0:bd3708b85a8b 44 {
nhardy6 0:bd3708b85a8b 45 //setup button
nhardy6 0:bd3708b85a8b 46 tareButton.rise(&zero);
nhardy6 0:bd3708b85a8b 47 //setup screen
nhardy6 0:bd3708b85a8b 48 uLCD.display_control(PORTRAIT);
nhardy6 0:bd3708b85a8b 49 uLCD.cls();
nhardy6 0:bd3708b85a8b 50 uLCD.baudrate(BAUD_3000000);
nhardy6 0:bd3708b85a8b 51 uLCD.background_color(BLACK);
nhardy6 0:bd3708b85a8b 52 //include cool credit
nhardy6 0:bd3708b85a8b 53 uLCD.printf("Georgia Tech \n\n Sensors and\n Catalysis Lab \n\n in collaboration with \n\n Hardy\n Technologies");
nhardy6 0:bd3708b85a8b 54 wait(.5);
nhardy6 0:bd3708b85a8b 55
nhardy6 0:bd3708b85a8b 56 //display percentages
nhardy6 0:bd3708b85a8b 57 Device.display_init(&uLCD);
nhardy6 0:bd3708b85a8b 58 //continuously update
nhardy6 0:bd3708b85a8b 59 while(1)
nhardy6 0:bd3708b85a8b 60 {
nhardy6 0:bd3708b85a8b 61 //read voltages
nhardy6 0:bd3708b85a8b 62 Device.read();
nhardy6 0:bd3708b85a8b 63 //display percentages
nhardy6 0:bd3708b85a8b 64 Device.display_cont(&uLCD);
nhardy6 0:bd3708b85a8b 65 }
nhardy6 0:bd3708b85a8b 66 }