Project_2

Comment: I thought that this project would be easier then the first project, since we had our lcd, modules, and the majority of the code figured out. I was very wrong, compiling and getting all the modules integrated into the arduino was a night mare.  Calibrating the heartbeat sensor and alcohol sensor was the biggest problem that we faced on the project. A nice thing for the project is that we used functions, which we didn't used with the first project. After pulling an all nighter, Mathew and i finished the project, the only thing we couldn't get to work was the Bluetooth module. No matter how hard we tried we couldn't get the arduino to transmit data. 

#include <LiquidCrystal.h>
LiquidCrystal lcd(8,9,4,5,6,7);
/*---Create the square for the bar-----*/
byte p100[8] = {
 B11111,
 B11111,
 B11111,
 B11111,
 B11111,
 B11111,
 B11111,
 B11111,
};
/*-----Alcohol Sensor Constants------*/
const int alcohol_Pin = 1;
int alcohol_Reading;

double v = 0;
double PPM = 0;
double BAC = 0;

/*-----HeartBeat Sensor Constants------*/
int heart_sensor = A2;
int val = 0;
long BPM;
int i=0;
unsigned int raw;
unsigned long times=0;

/*-----Temperature Sensor Constants------*/
float temp_sensor = 0;

float voltage = 0; // setup some variables
float celsius = 0;
float farheint ;

/*-----Main Menu Constants------*/
int keypad_pin = A0;
int keypad_value = 0;
int keypad_value_old = 0;

char btn_push;

byte mainMenuPage = 1;
byte mainMenuPageOld = 1;
byte mainMenuTotal = 4;


void setup()
{
    lcd.begin(16,2);  //Initialize a 2x16 type LCD
    lcd.createChar(1, p100);
    Serial.begin(9600);
    MainMenuDisplay();
    delay(1000);
}
void loop()
{
    btn_push = ReadKeypad();
 
    MainMenuBtn();
 
    if(btn_push == 'S')//enter selected menu
    {
        WaitBtnRelease();
        switch (mainMenuPage)
        {
            case 1:
              MenuA();
              break;
            case 2:
              MenuB();
              break;
            case 3:
              MenuC();
              break;
            case 4:
              MenuD();
              break;
        }

          MainMenuDisplay();
          WaitBtnRelease();
    }
 


    delay(10);

}//--------------- End of loop() loop ---------------------
void MenuA()
 
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("Drunk Mode--Temp");
    lcd.setCursor(0,1);
    lcd.print("Mode--Beat Mode");
 
    while(ReadKeypad()!= 'L')
    {
        //Insert Task for Menu A here
     
    }
 
}
void MenuB()
   
 


    while(ReadKeypad()!= 'L')
    {
 
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print(BAC);
    lcd.print("% BAC");
    AlcoholSensor(); //Function for alcohol sensor value
   /*---- program for bargraph on lcd ---*/
    if(alcohol_Reading <= .02)
    {
     for(i=0;i<=1;i++);
      {
      lcd.setCursor(0,1);
      lcd.write(1);
      } 
    }

    else if(BAC > .02 && BAC < .03)
    {
       lcd.setCursor(0,1);
      lcd.write(1);
      lcd.setCursor(1,1);
      lcd.write(1);
    }

     else if(BAC > .03 && BAC < .04)
    {
     lcd.setCursor(0,1);
      lcd.write(1);
      lcd.setCursor(1,1);
      lcd.write(1);
      lcd.setCursor(2,1);
      lcd.write(1);
    }

     else if(BAC > .04 && BAC < .05)
    {
      lcd.setCursor(0,1);
      lcd.write(1);
      lcd.setCursor(1,1);
      lcd.write(1);
      lcd.setCursor(2,1);
      lcd.write(1);
      lcd.setCursor(3,1);
      lcd.write(1); 
    }

     else if(BAC > .05 && BAC < .06)
    {
       lcd.setCursor(0,1);
      lcd.write(1);
      lcd.setCursor(1,1);
      lcd.write(1);
      lcd.setCursor(2,1);
      lcd.write(1);
      lcd.setCursor(3,1);
      lcd.write(1);
      lcd.setCursor(4,1);
      lcd.write(1);
    }

     else if(BAC > .06 && BAC < .07)
    {
        lcd.setCursor(0,1);
      lcd.write(1);
      lcd.setCursor(1,1);
      lcd.write(1);
      lcd.setCursor(2,1);
      lcd.write(1);
      lcd.setCursor(3,1);
      lcd.write(1);
      lcd.setCursor(4,1);
      lcd.write(1);
      lcd.setCursor(5,1);
      lcd.write(1);
    }

     else if(BAC > .07 && BAC < .08)
    {
        lcd.setCursor(0,1);
      lcd.write(1);
      lcd.setCursor(1,1);
      lcd.write(1);
      lcd.setCursor(2,1);
      lcd.write(1);
      lcd.setCursor(3,1);
      lcd.write(1);
      lcd.setCursor(4,1);
      lcd.write(1);
      lcd.setCursor(5,1);
      lcd.write(1);
      lcd.setCursor(6,1);
      lcd.write(1);
    }

      else if(BAC > .08 && BAC < .09)
    {
     
      lcd.setCursor(0,1);
      lcd.write(1);
      lcd.setCursor(1,1);
      lcd.write(1);
      lcd.setCursor(2,1);
      lcd.write(1);
      lcd.setCursor(3,1);
      lcd.write(1);
      lcd.setCursor(4,1);
      lcd.write(1);
      lcd.setCursor(5,1);
      lcd.write(1);
      lcd.setCursor(6,1);
      lcd.write(1);
      lcd.setCursor(7,1);
      lcd.write(1);
       
    }

    else if(BAC > .09 && BAC < .10)
    {
        lcd.setCursor(0,1);
      lcd.write(1);
      lcd.setCursor(1,1);
      lcd.write(1);
      lcd.setCursor(2,1);
      lcd.write(1);
      lcd.setCursor(3,1);
      lcd.write(1);
      lcd.setCursor(4,1);
      lcd.write(1);
      lcd.setCursor(5,1);
      lcd.write(1);
      lcd.setCursor(6,1);
      lcd.write(1);
      lcd.setCursor(7,1);
      lcd.write(1);
      lcd.setCursor(8,1);
      lcd.write(1);
    }

    else if(BAC > .10 && BAC < .11)
    {
      lcd.setCursor(0,1);
      lcd.write(1);
      lcd.setCursor(1,1);
      lcd.write(1);
      lcd.setCursor(2,1);
      lcd.write(1);
      lcd.setCursor(3,1);
      lcd.write(1);
      lcd.setCursor(4,1);
      lcd.write(1);
      lcd.setCursor(5,1);
      lcd.write(1);
      lcd.setCursor(6,1);
      lcd.write(1);
      lcd.setCursor(7,1);
      lcd.write(1);
      lcd.setCursor(8,1);
      lcd.write(1);
      lcd.setCursor(9,1);
      lcd.write(1);
    }

    else if(BAC > .11 && BAC < .12)
    {
      lcd.setCursor(0,1);
      lcd.write(1);
      lcd.setCursor(1,1);
      lcd.write(1);
      lcd.setCursor(2,1);
      lcd.write(1);
      lcd.setCursor(3,1);
      lcd.write(1);
      lcd.setCursor(4,1);
      lcd.write(1);
      lcd.setCursor(5,1);
      lcd.write(1);
      lcd.setCursor(6,1);
      lcd.write(1);
      lcd.setCursor(7,1);
      lcd.write(1);
      lcd.setCursor(8,1);
      lcd.write(1);
      lcd.setCursor(9,1);
      lcd.write(1);
      lcd.setCursor(10,1);
      lcd.write(1);
    }
   

    else if(BAC > .12 && BAC < .13)
    {
     lcd.setCursor(0,1);
      lcd.write(1);
      lcd.setCursor(1,1);
      lcd.write(1);
      lcd.setCursor(2,1);
      lcd.write(1);
      lcd.setCursor(3,1);
      lcd.write(1);
      lcd.setCursor(4,1);
      lcd.write(1);
      lcd.setCursor(5,1);
      lcd.write(1);
      lcd.setCursor(6,1);
      lcd.write(1);
      lcd.setCursor(7,1);
      lcd.write(1);
      lcd.setCursor(8,1);
      lcd.write(1);
      lcd.setCursor(9,1);
      lcd.write(1);
      lcd.setCursor(10,1);
      lcd.write(1);
      lcd.setCursor(11,1);
      lcd.write(1);
    }

    else if(BAC > .13 && BAC < .14)
    {
       lcd.setCursor(0,1);
      lcd.write(1);
      lcd.setCursor(1,1);
      lcd.write(1);
      lcd.setCursor(2,1);
      lcd.write(1);
      lcd.setCursor(3,1);
      lcd.write(1);
      lcd.setCursor(4,1);
      lcd.write(1);
      lcd.setCursor(5,1);
      lcd.write(1);
      lcd.setCursor(6,1);
      lcd.write(1);
      lcd.setCursor(7,1);
      lcd.write(1);
      lcd.setCursor(8,1);
      lcd.write(1);
      lcd.setCursor(9,1);
      lcd.write(1);
      lcd.setCursor(10,1);
      lcd.write(1);
      lcd.setCursor(11,1);
      lcd.write(1);
      lcd.setCursor(12,1);
      lcd.write(1);
    }
   
    else if(BAC > .14 && BAC < .15)
    {
        lcd.setCursor(0,1);
      lcd.write(1);
      lcd.setCursor(1,1);
      lcd.write(1);
      lcd.setCursor(2,1);
      lcd.write(1);
      lcd.setCursor(3,1);
      lcd.write(1);
      lcd.setCursor(4,1);
      lcd.write(1);
      lcd.setCursor(5,1);
      lcd.write(1);
      lcd.setCursor(6,1);
      lcd.write(1);
      lcd.setCursor(7,1);
      lcd.write(1);
      lcd.setCursor(8,1);
      lcd.write(1);
      lcd.setCursor(9,1);
      lcd.write(1);
      lcd.setCursor(10,1);
      lcd.write(1);
      lcd.setCursor(11,1);
      lcd.write(1);
      lcd.setCursor(12,1);
      lcd.write(1);
      lcd.setCursor(13,1);
      lcd.write(1);
    }

    else if(BAC > .15 && BAC < .16)
    {
         lcd.setCursor(0,1);
      lcd.write(1);
      lcd.setCursor(1,1);
      lcd.write(1);
      lcd.setCursor(2,1);
      lcd.write(1);
      lcd.setCursor(3,1);
      lcd.write(1);
      lcd.setCursor(4,1);
      lcd.write(1);
      lcd.setCursor(5,1);
      lcd.write(1);
      lcd.setCursor(6,1);
      lcd.write(1);
      lcd.setCursor(7,1);
      lcd.write(1);
      lcd.setCursor(8,1);
      lcd.write(1);
      lcd.setCursor(9,1);
      lcd.write(1);
      lcd.setCursor(10,1);
      lcd.write(1);
      lcd.setCursor(11,1);
      lcd.write(1);
      lcd.setCursor(12,1);
      lcd.write(1);
      lcd.setCursor(13,1);
      lcd.write(1);
      lcd.setCursor(14,1);
      lcd.write(1); 
    }

     else if(BAC > .16 && BAC < .17)
    {
          lcd.setCursor(0,1);
      lcd.write(1);
      lcd.setCursor(1,1);
      lcd.write(1);
      lcd.setCursor(2,1);
      lcd.write(1);
      lcd.setCursor(3,1);
      lcd.write(1);
      lcd.setCursor(4,1);
      lcd.write(1);
      lcd.setCursor(5,1);
      lcd.write(1);
      lcd.setCursor(6,1);
      lcd.write(1);
      lcd.setCursor(7,1);
      lcd.write(1);
      lcd.setCursor(8,1);
      lcd.write(1);
      lcd.setCursor(9,1);
      lcd.write(1);
      lcd.setCursor(10,1);
      lcd.write(1);
      lcd.setCursor(11,1);
      lcd.write(1);
      lcd.setCursor(12,1);
      lcd.write(1);
      lcd.setCursor(13,1);
      lcd.write(1);
      lcd.setCursor(14,1);
      lcd.write(1);
      lcd.setCursor(15,1);
      lcd.write(1);
    }

     else if(BAC > .17 && BAC < .18)
    {
     lcd.setCursor(0,1);
      lcd.write(1);
      lcd.setCursor(1,1);
      lcd.write(1);
      lcd.setCursor(2,1);
      lcd.write(1);
      lcd.setCursor(3,1);
      lcd.write(1);
      lcd.setCursor(4,1);
      lcd.write(1);
      lcd.setCursor(5,1);
      lcd.write(1);
      lcd.setCursor(6,1);
      lcd.write(1);
      lcd.setCursor(7,1);
      lcd.write(1);
      lcd.setCursor(8,1);
      lcd.write(1);
      lcd.setCursor(9,1);
      lcd.write(1);
      lcd.setCursor(10,1);
      lcd.write(1);
      lcd.setCursor(11,1);
      lcd.write(1);
      lcd.setCursor(12,1);
      lcd.write(1);
      lcd.setCursor(13,1);
      lcd.write(1);
      lcd.setCursor(14,1);
      lcd.write(1);
      lcd.setCursor(15,1);
      lcd.write(1);
      lcd.setCursor(16,1);
      lcd.write(1);
    }
   
    else if(BAC >.18 && BAC < .19)
    {
      lcd.setCursor(0,1);
      lcd.write(1);
      lcd.setCursor(1,1);
      lcd.write(1);
      lcd.setCursor(2,1);
      lcd.write(1);
      lcd.setCursor(3,1);
      lcd.write(1);
      lcd.setCursor(4,1);
      lcd.write(1);
      lcd.setCursor(5,1);
      lcd.write(1);
      lcd.setCursor(6,1);
      lcd.write(1);
      lcd.setCursor(7,1);
      lcd.write(1);
      lcd.setCursor(8,1);
      lcd.write(1);
      lcd.setCursor(9,1);
      lcd.write(1);
      lcd.setCursor(10,1);
      lcd.write(1);
      lcd.setCursor(11,1);
      lcd.write(1);
      lcd.setCursor(12,1);
      lcd.write(1);
      lcd.setCursor(13,1);
      lcd.write(1);
      lcd.setCursor(14,1);
      lcd.write(1);
      lcd.setCursor(15,1);
      lcd.write(1);
      lcd.setCursor(16,1);
      lcd.write(1);
      lcd.setCursor(17,1);
      lcd.write(1);
    }
   
     else if(BAC > .19 && BAC < .20)
    {
      lcd.setCursor(0,1);
      lcd.write(1);
      lcd.setCursor(1,1);
      lcd.write(1);
      lcd.setCursor(2,1);
      lcd.write(1);
      lcd.setCursor(3,1);
      lcd.write(1);
      lcd.setCursor(4,1);
      lcd.write(1);
      lcd.setCursor(5,1);
      lcd.write(1);
      lcd.setCursor(6,1);
      lcd.write(1);
      lcd.setCursor(7,1);
      lcd.write(1);
      lcd.setCursor(8,1);
      lcd.write(1);
      lcd.setCursor(9,1);
      lcd.write(1);
      lcd.setCursor(10,1);
      lcd.write(1);
      lcd.setCursor(11,1);
      lcd.write(1);
      lcd.setCursor(12,1);
      lcd.write(1);
      lcd.setCursor(13,1);
      lcd.write(1);
      lcd.setCursor(14,1);
      lcd.write(1);
      lcd.setCursor(15,1);
      lcd.write(1);
      lcd.setCursor(16,1);
      lcd.write(1);
      lcd.setCursor(17,1);
      lcd.write(1);
      lcd.setCursor(18,1);
      lcd.write(1);
    }
    delay (500);
    }
 
   
}
void MenuC()

   Serial.print("calibrating...");
delay(2000);
 
    while(ReadKeypad()!= 'L')
    {
    lcd.clear();
    lcd.setCursor(0,0);
    val=analogRead(heart_sensor);
    times= (millis()/1000);
    heartbeatfunction (val,times); //Function for heartbeat sensor value
    lcd.print(BPM);
    lcd.print("bpm");
    /*---- program for bargraph on lcd ---*/
 
    if(BPM<=60)
    {
      lcd.setCursor(0,0);
      lcd.print("Please put more pressure");
      lcd.setCursor(0,1);
      lcd.print("Pressure");
    }
   
    else if(BPM>60 && BPM<63)
    {
     lcd.setCursor(0,1);
     lcd.write(1); 
    }

     else if(BPM>=63 && BPM<=66)
    {
   lcd.setCursor(0,1);
     lcd.write(1);
     lcd.setCursor(1,1);
     lcd.write(1);
     lcd.setCursor(2,1);
     lcd.write(1);
    }

     else if(BPM>=69 && BPM<=72)
    {
   lcd.setCursor(0,1);
     lcd.write(1);
     lcd.setCursor(1,1);
     lcd.write(1);
     lcd.setCursor(2,1);
     lcd.write(1);
     lcd.setCursor(3,1);
     lcd.write(1);
     lcd.setCursor(4,1);
     lcd.write(1);
    }

     else if(BPM>=72 && BPM<=75)
    {
     lcd.setCursor(0,1);
     lcd.write(1);
     lcd.setCursor(1,1);
     lcd.write(1);
     lcd.setCursor(2,1);
     lcd.write(1);
     lcd.setCursor(3,1);
     lcd.write(1);
     lcd.setCursor(4,1);
     lcd.write(1);
     lcd.setCursor(5,1);
     lcd.write(1);
     lcd.setCursor(6,1);
     lcd.write(1);
    }

     else if(BPM>=75 && BPM<=78)
    {
      lcd.setCursor(0,1);
     lcd.write(1);
     lcd.setCursor(1,1);
     lcd.write(1);
     lcd.setCursor(2,1);
     lcd.write(1);
     lcd.setCursor(3,1);
     lcd.write(1);
     lcd.setCursor(4,1);
     lcd.write(1);
     lcd.setCursor(5,1);
     lcd.write(1);
     lcd.setCursor(6,1);
     lcd.write(1);
     lcd.setCursor(7,1);
     lcd.write(1);
     lcd.setCursor(8,1);
     lcd.write(1);
    }
   
     else if(BPM>=81 && BPM<=84)
    {
       lcd.setCursor(0,1);
     lcd.write(1);
     lcd.setCursor(1,1);
     lcd.write(1);
     lcd.setCursor(2,1);
     lcd.write(1);
     lcd.setCursor(3,1);
     lcd.write(1);
     lcd.setCursor(4,1);
     lcd.write(1);
     lcd.setCursor(5,1);
     lcd.write(1);
     lcd.setCursor(6,1);
     lcd.write(1);
     lcd.setCursor(7,1);
     lcd.write(1);
     lcd.setCursor(8,1);
     lcd.write(1);
     lcd.setCursor(9,1);
     lcd.write(1);
     lcd.setCursor(10,1);
     lcd.write(1);
    }

     else if(BPM>=84 && BPM<=87)
    {
      lcd.setCursor(0,1);
     lcd.write(1);
     lcd.setCursor(1,1);
     lcd.write(1);
     lcd.setCursor(2,1);
     lcd.write(1);
     lcd.setCursor(3,1);
     lcd.write(1);
     lcd.setCursor(4,1);
     lcd.write(1);
     lcd.setCursor(5,1);
     lcd.write(1);
     lcd.setCursor(6,1);
     lcd.write(1);
     lcd.setCursor(7,1);
     lcd.write(1);
     lcd.setCursor(8,1);
     lcd.write(1);
     lcd.setCursor(9,1);
     lcd.write(1);
     lcd.setCursor(10,1);
     lcd.write(1);
     lcd.setCursor(11,1);
     lcd.write(1);
     lcd.setCursor(12,1);
     lcd.write(1);
    }

     else if(BPM>=87 && BPM<=91)
    {
    lcd.setCursor(0,1);
     lcd.write(1);
     lcd.setCursor(1,1);
     lcd.write(1);
     lcd.setCursor(2,1);
     lcd.write(1);
     lcd.setCursor(3,1);
     lcd.write(1);
     lcd.setCursor(4,1);
     lcd.write(1);
     lcd.setCursor(5,1);
     lcd.write(1);
     lcd.setCursor(6,1);
     lcd.write(1);
     lcd.setCursor(7,1);
     lcd.write(1);
     lcd.setCursor(8,1);
     lcd.write(1);
     lcd.setCursor(9,1);
     lcd.write(1);
     lcd.setCursor(10,1);
     lcd.write(1);
     lcd.setCursor(11,1);
     lcd.write(1);
     lcd.setCursor(12,1);
     lcd.write(1);
     lcd.setCursor(13,1);
     lcd.write(1);
    }

     else if(BPM>=91 && BPM<=94)
    {
     lcd.setCursor(0,1);
     lcd.write(1);
     lcd.setCursor(1,1);
     lcd.write(1);
     lcd.setCursor(2,1);
     lcd.write(1);
     lcd.setCursor(3,1);
     lcd.write(1);
     lcd.setCursor(4,1);
     lcd.write(1);
     lcd.setCursor(5,1);
     lcd.write(1);
     lcd.setCursor(6,1);
     lcd.write(1);
     lcd.setCursor(7,1);
     lcd.write(1);
     lcd.setCursor(8,1);
     lcd.write(1);
     lcd.setCursor(9,1);
     lcd.write(1);
     lcd.setCursor(10,1);
     lcd.write(1);
     lcd.setCursor(11,1);
     lcd.write(1);
     lcd.setCursor(12,1);
     lcd.write(1);
     lcd.setCursor(13,1);
     lcd.write(1);
     lcd.setCursor(14,1);
     lcd.write(1);
     lcd.setCursor(15,1);
     lcd.write(1); 
     lcd.setCursor(16,1);
     lcd.write(1); 
    }
    else if(BPM>300)
    lcd.setCursor(0,0);
 
    delay(500);
    }
}
void MenuD()

    while(ReadKeypad()!= 'L')
    {
    lcd.clear();
    lcd.setCursor(0,0);
    temperature_function();
    lcd.print(celsius);
    lcd.print("C");
    lcd.print((char)223);
    lcd.setCursor(8,0);
    lcd.print(farheint);
    lcd.print("F");
    lcd.print((char)223);  //prints out special character degrees
   
     /*---- program for bargraph on lcd ---*/
    if(farheint<77) //if farheint is less then 10 then light up one box
    {
     lcd.setCursor(0,1);
     lcd.write(1);
    }

    else if(farheint>79 && farheint<80)
    {
     lcd.setCursor(0,1);
     lcd.write(1);
     lcd.setCursor(1,1);
     lcd.write(1);
    }

    else if(farheint>80 && farheint<81)
    {
     lcd.setCursor(0,1);
     lcd.write(1);
     lcd.setCursor(1,1);
     lcd.write(1);
     lcd.setCursor(2,1);
     lcd.write(1);
     lcd.setCursor(3,1);
     lcd.write(1);
    }

   else if(farheint>81 && farheint<82)
    {
     lcd.setCursor(0,1);
     lcd.write(1);
     lcd.setCursor(1,1);
     lcd.write(1);
     lcd.setCursor(2,1);
     lcd.write(1);
     lcd.setCursor(3,1);
     lcd.write(1);
     lcd.setCursor(4,1);
     lcd.write(1);
     lcd.setCursor(5,1);
     lcd.write(1);
    }
   
    else if(farheint>83 && farheint<84)
    {
    lcd.setCursor(0,1);
     lcd.write(1);
     lcd.setCursor(1,1);
     lcd.write(1);
     lcd.setCursor(2,1);
     lcd.write(1);
     lcd.setCursor(3,1);
     lcd.write(1);
     lcd.setCursor(4,1);
     lcd.write(1);
     lcd.setCursor(5,1);
     lcd.write(1);
     lcd.setCursor(6,1);
     lcd.write(1);
     lcd.setCursor(7,1);
     lcd.write(1);
    }
   
    else if(farheint>84 && farheint<85)
    {
   lcd.setCursor(0,1);
     lcd.write(1);
     lcd.setCursor(1,1);
     lcd.write(1);
     lcd.setCursor(2,1);
     lcd.write(1);
     lcd.setCursor(3,1);
     lcd.write(1);
     lcd.setCursor(4,1);
     lcd.write(1);
     lcd.setCursor(5,1);
     lcd.write(1);
     lcd.setCursor(6,1);
     lcd.write(1);
     lcd.setCursor(7,1);
     lcd.write(1);
     lcd.setCursor(8,1);
     lcd.write(1);
     lcd.setCursor(9,1);
     lcd.write(1);
    }

    else if(farheint>86 && farheint<87)
    {
     lcd.setCursor(0,1);
     lcd.write(1);
     lcd.setCursor(1,1);
     lcd.write(1);
     lcd.setCursor(2,1);
     lcd.write(1);
     lcd.setCursor(3,1);
     lcd.write(1);
     lcd.setCursor(4,1);
     lcd.write(1);
     lcd.setCursor(5,1);
     lcd.write(1);
     lcd.setCursor(6,1);
     lcd.write(1);
     lcd.setCursor(7,1);
     lcd.write(1);
     lcd.setCursor(8,1);
     lcd.write(1);
     lcd.setCursor(9,1);
     lcd.write(1);
     lcd.setCursor(10,1);
     lcd.write(1);
     lcd.setCursor(11,1);
     lcd.write(1);
    }

    else if(farheint>87 && farheint<88)
    {
     lcd.setCursor(0,1);
     lcd.write(1);
     lcd.setCursor(1,1);
     lcd.write(1);
     lcd.setCursor(2,1);
     lcd.write(1);
     lcd.setCursor(3,1);
     lcd.write(1);
     lcd.setCursor(4,1);
     lcd.write(1);
     lcd.setCursor(5,1);
     lcd.write(1);
     lcd.setCursor(6,1);
     lcd.write(1);
     lcd.setCursor(7,1);
     lcd.write(1);
     lcd.setCursor(8,1);
     lcd.write(1);
     lcd.setCursor(9,1);
     lcd.write(1);
     lcd.setCursor(10,1);
     lcd.write(1);
     lcd.setCursor(11,1);
     lcd.write(1);
     lcd.setCursor(12,1);
     lcd.write(1);
     lcd.setCursor(13,1);
     lcd.write(1);
    }
    delay (500);
    }
}

void MainMenuDisplay()
{
    lcd.clear();
    lcd.setCursor(0,0);
    switch (mainMenuPage)
    {
        case 1:
          lcd.print("BREATHALIZER");
          lcd.setCursor(0,1);
          lcd.print("");
          break;
        case 2:
          lcd.print("1.Alcohol Sensor");
          lcd.setCursor(0,1);
          lcd.print("");
          break;
        case 3:
          lcd.print("2.Heartbeat Snsr");
          lcd.setCursor(0,1);
          lcd.print("");
          break;
        case 4:
          lcd.print("3.Temp Sensor");
          lcd.setCursor(0,1);
          lcd.print("");
          break;
    }
}

void MainMenuBtn()
{
    WaitBtnRelease();
    if(btn_push == 'U')
    {
        mainMenuPage++;
        if(mainMenuPage > mainMenuTotal)
          mainMenuPage = 1;
    }
    else if(btn_push == 'D')
    {
        mainMenuPage--;
        if(mainMenuPage == 0)
          mainMenuPage = mainMenuTotal;   
    }
 
    if(mainMenuPage != mainMenuPageOld) //only update display when page change
    {
        MainMenuDisplay();
        mainMenuPageOld = mainMenuPage;
    }
}

char ReadKeypad()
{
 
  keypad_value = analogRead(keypad_pin);

  if(keypad_value < 100)
    return 'R';
  else if(keypad_value < 200)
    return 'U';
  else if(keypad_value < 400)
    return 'D';
  else if(keypad_value < 600)
    return 'L';
  else if(keypad_value < 800)
    return 'S';
  else
    return 'N';

}

void WaitBtnRelease()
{
    while( analogRead(keypad_pin) < 800){}
}


void AlcoholSensor()
{
  alcohol_Reading = analogRead(alcohol_Pin);
 

 v = (.00488759)*alcohol_Reading;
 
  PPM = 150.4351049*v*v*v*v*v - 2244.75988*v*v*v*v + 13308.5139*v*v*v -39136.08594*v*v + 57082.6258*v - 32982.05333;
 
  BAC = (double)PPM/2600;
  if (alcohol_Reading < 410)
  {
    PPM = 0;
    BAC = 0;
    Serial.println("You are sober\t");
  }
  else if (alcohol_Reading < 610)
  {
    PPM = 0;
    BAC = 0;
    Serial.println("You are OK\t");
  }
  else if (alcohol_Reading > 859)
  {
    PPM = 0;
    BAC = 0;
    Serial.println("Error: Above Range\t");
  }
  else
    Serial.println("You are drunk");

 
  Serial.print(BAC);
  Serial.print("% BAC\t");

  Serial.print(PPM);
  Serial.print("ppm \t");
}


void heartbeatfunction(int raw, int times)
{

Serial.print("times:");
Serial.println(times);

Serial.print("value:");
Serial.println(val);
Serial.println(i);
if(val>100)
{
i++;
}
raw=60*i;
BPM=(raw/times);

if(BPM<100)
{
Serial.print("BPM:");
Serial.println(BPM);
}
else if(BPM>100)
{
Serial.println("please put more pressure");
}
else if(BPM<60)
{
 Serial.println("Too much pressure");
}
//delay(100);
}


void temperature_function()
{
 temp_sensor = analogRead(A3);
  voltage = (temp_sensor*5000)/1024; // convert  sensor value to millivolts

  voltage = voltage-500;        // remove voltage offset
  celsius = voltage/10;         // convert millivolts to Celsius
  farheint= ((celsius*1.8)+32);
  Serial.print("Temperature: ");  // these four lines send the temp to the port
  Serial.print(celsius);
  Serial.println(" degrees C");
  Serial.print("farheint");
  Serial.println(farheint);
 

}

 


Comments

Popular posts from this blog

Day_13

Day 18 WH