質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

解決済

ArduinoのGPSプログラムについて

kyousukelin
kyousukelin

総合スコア30

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

2回答

0評価

0クリップ

2756閲覧

投稿2017/11/17 06:51

###前提・実現したいこと
Arduinoのプログラムを用いてGPSモジュールから座標を取得するプログラムについてなのですが、このままだと永遠に座標を取得し続けてしまいます。一度だけ座標を取得させるにはどのように改良すればいいのでしょうか?

###Arduino

#include "SoftwareSerial.h" #define rxPin 10 #define txPin 11 SoftwareSerial GPSSerial(rxPin, txPin); byte index; char buf[200]; char *ptr_format_id; char *ptr_utc_time; char *ptr_latitude; // S <--> N char *ptr_latitude_sn; char *ptr_longitude; // E <--> W char *ptr_longitude_ew; void clear_buf() { for( byte index = 0 ; index < 200 ; index++ ) { buf[index] = 0; } } void setup() { Serial.begin(9600); Serial.println("GPS GET location"); clear_buf(); index = 0; GPSSerial.begin(9600); } void loop() { char chr; double latitude; double longitude; if( GPSSerial.available() ) { chr = GPSSerial.read(); if( (chr == 0x0d) || (chr == 0x0a) ) { ptr_format_id = strtok( buf, "," ); if( strncmp( ptr_format_id, "$GPGGA", 6 ) == 0 ) { ptr_utc_time = strtok( NULL, "," ); ptr_latitude = strtok( NULL, "," ); ptr_latitude_sn = strtok( NULL, "," ); ptr_longitude = strtok( NULL, "," ); ptr_longitude_ew = strtok( NULL, "," ); latitude = atoi( ptr_latitude ) / 100; latitude += (atof(ptr_latitude) - latitude * 100) / 60; longitude = atoi( ptr_longitude ) / 100; longitude += (atof(ptr_longitude) - longitude * 100) / 60; //Serial.print(ptr_latitude_sn); Serial.print(latitude,8); Serial.print(","); //Serial.print(ptr_longitude_ew); Serial.print(longitude,8); Serial.println(""); } clear_buf(); index = 0; } else { buf[index] = chr; index++; } } }

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。