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
Post a Comment