Qiitaに「コインサイズ Arduino互換機 Seeeduino XIAO を使ってみた」という記事があって、GPSからの情報の読み込みのための簡単なソースが掲載されていました。
void setup() {
Serial.begin(9600);
Serial1.begin(9600);
}
void loop() {
if (Serial.available()) {
char c = (char)Serial.read();
Serial1.write(c);
}
if (Serial1.available()) {
char c = (char)Serial1.read();
Serial.write(c);
}
}
動かすと、
$GPGGA,235948.800,,,,,0,0,,,M,,M,,*41
$GPGLL,,,,,235948.800,V,N*73
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,1,1,01,10,,,34*7E
$GPRMC,235948.800,V,,,,,0.00,0.00,050180,,,N*48
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
$GPZDA,235948.800,05,01,1980,,*5B
$GPGGA,235949.800,,,,,0,0,,,M,,M,,*40
$GPGLL,,,,,235949.800,V,N*72
なんて形でシリアルモニタに表示されます。ここで、
$GPGGA,225948.800,,,,,0,0,,,M,,M,,*41
の紫文字が、hhmmss.sssの形式で時・分・秒を示しています。
という事で、「$GPGGA,」の8文字を認識したら、そこから時刻の文字列を取り出して、時・分・秒に切り分ける事にします。秒は小数点下3桁が000になったら
digitalWrite(LED_BUILTIN, LOW); 黄色
digitalWrite(PIN_LED2, LOW); 青
の表面実装LEDのいずれかを点灯させることにします。そして、時・分・秒でRTCを補正することにします。
上へ |