code to control gas sensor array

Dependencies:   4DGL-uLCD-SE mbed

main.cpp

Committer:
nhardy6
Date:
2016-06-16
Revision:
0:bd3708b85a8b

File content as of revision 0:bd3708b85a8b:

#include "mbed.h"
#include "GasArray.h"
#include "string.h"

//base sensors' resistances
float baseR[] = {9000, 650000};

//number of sensors
int number = 2;

//input total voltage across divider
float pwrV = 3;

//corresponding divider resistances
float dividerR[] = {1000, 201000};

//corresponding sensor pins (analog in)
AnalogIn places[] = {A0, A1};

//sensitivity matrix (ONLY TAKES SQUARE MATRICES)
float ISensitivityM[] = {-0.5,-0.001,-1,-0.0024};

//sensor types
string type[] = {"p-type", "n-type"};

//gases
string gas[] = {"NO", "NO2"};

//tare button
DigitalIn tareButton(p5);

//initialize screen
uLCD_4DGL uLCD(p28, p27, p29);

//establish sensor array
GasArray Device(number, baseR, pwrV, dividerR, places, ISensitivityM, type, gas);

int main()
{
    //setup button
    tareButton.rise(&zero);
    //setup screen
    uLCD.display_control(PORTRAIT);
    uLCD.cls();
    uLCD.baudrate(BAUD_3000000);
    uLCD.background_color(BLACK);
    //include cool credit
    uLCD.printf("Georgia Tech \n\n Sensors and\n Catalysis Lab \n\n in collaboration  with \n\n Hardy\n Technologies");
    wait(.5);
    
    //display percentages
    Device.display_init(&uLCD);
    //continuously update
    while(1)
    {
        //read voltages
        Device.read();
        //display percentages
        Device.display_cont(&uLCD);
    }
}

void zero()
{
    //take voltage, use it to reform base resistances
}