نقل قول نوشته اصلی توسط hosein47 نمایش پست ها
سلام دوستان عزیز

من چون فقط اطلاعات ساعت رو نیاز دارم فیلد 1 به برنامه اضافه کردم #include <SoftwareSerial.h>

SoftwareSerial gpsSerial(10, 11); // RX, TX (TX not used)
const int sentenceSize = 80;
float a;

char sentence[sentenceSize];

void setup()
{
Serial.begin(9600);
gpsSerial.begin(9600);
}

void loop()
{
static int i = 0;
if (gpsSerial.available())
{
char ch = gpsSerial.read();
if (ch != '\n' && i < sentenceSize)
{
sentence[i] = ch;
i++;
}
else
{
sentence[i] = '\0';
i = 0;
displayGPS();
}
}
}

void displayGPS()
{
char field[20];
getField(field, 0);
if (strcmp(field, "$GPRMC") == 0)
{
//$GPRMC,002454,A,3553.5295,N,13938.6570,E,

Serial.print("Time is: ");
getField(field, 1); // Time

Serial.println(field);


/* Serial.print("Lat: ");
getField(field, 3); // number
Serial.print(field);
getField(field, 4); // N/S
Serial.print(field);

Serial.print(" Long: ");
getField(field, 5); // number
Serial.print(field);
getField(field, 6); // E/W
Serial.println(field);*/
}
}

void getField(char* buffer, int index)
{
int sentencePos = 0;
int fieldPos = 0;
int commaCount = 0;
while (sentencePos < sentenceSize)
{
if (sentence[sentencePos] == ',')
{
commaCount ++;
sentencePos ++;
}
if (commaCount == index)
{
buffer[fieldPos] = sentence[sentencePos];
fieldPos ++;
}
sentencePos ++;
}
buffer[fieldPos] = '\0';
}


دقیقا کدها مثل کد های بالایی است حال من میخوام اطلاعات ساعت دریافتی رو به وقت تهران دریافت کنم یعنی اطلاعات ساعت رو با +3:30 دقیقه جمع کنم لطفا راهنمایی کنید
ممنونم
شما متغیر field رو از نوع آرایه کاراکتری تعریف کردید اگر بخواید بهش یه عدد اضافه کنید اول باید داده رو تغییر متغیر بدید . ساعتش رو جدا کنید
دقیقه رو هم جدا کنید و به صورت جداگانه به هر کدومش مقدار 3 و 30 رو اضافه کنید.