This is the beginning of the loop, the part that controls the GPS functions.
void loop()
{
//LED Condition
sentences = (gps.sentencesWithFix());
//Digital Inputs
durationHigh = pulseIn(PulsePin, HIGH , 500000);
durationLow = pulseIn(PulsePin, LOW, 500000);
timer = millis();
//Analog Inputs
FanTemp = analogRead(0);
AirTemp = analogRead(1);
value_x = analogRead(2);
value_y = analogRead(3);
value_z = analogRead(4);
//Acceleration Manipulation
xv = (value_x/analog_resolution*ADC_ref-zero_x)/sensitivity_x;
yv = (value_y/analog_resolution*ADC_ref-zero_y)/sensitivity_y;
zv = (value_z/analog_resolution*ADC_ref-zero_z)/sensitivity_z;
//Tilt Angle
angle_x = atan2(-yv,-zv)*RAD_TO_DEG;
angle_y = atan2(-xv,-zv)*RAD_TO_DEG;
angle_z = atan2(-yv,-xv)*RAD_TO_DEG;
//GPS
while (Serial3.available() > 0)
{
gps.encode(Serial3.read());
}
if (gps.location.isUpdated())
{
latitude = (gps.location.lat() , 8);
longitude = (gps.location.lng(), 8);
}
else if (gps.speed.isUpdated())
{
vel = (gps.speed.mph());
}
else if (gps.time.isUpdated())
{
hourdata =(gps.time.hour());
mindata = (gps.time.minute());
secdata = (gps.time.second());
}
else if (gps.date.isUpdated());
{
monthdata = (gps.date.month());
daydata = (gps.date.day());
}