0

他のデータなしで、Arduino uno に GPS モジュールからの高度を表示させようとしています。私はまだコードを学んでいますが、GPS 文字列から高度を取得するために使用されているコマンドが見つからないという問題に遭遇しました。http://learn.parallax.com/kickstart/28500からサンプルコードを実行し、文字列の最初のビットを読み取ったため、データを正常に取得していることがわかりますが、取得する前に高度を取得しようとしました文字列全体をスクロールします。基本的な 16x2 LCD ディスプレイを使用していますが、ディスプレイは正常に動作しています。

このプロジェクトの最終目標は、SD カードに記録して温度を記録し、遠地点 (15,000 フィート) でパラシュートを展開し、1,000 フィートでより大きなパラシュートを展開できる GPS/ジャイロスコープ高度計です。

これが私が高度に使用しているコードです。私が理解できないセクションをマークしました。(おそらく単に用語が抜けているか、本当に何かを台無しにしてしまったのかもしれません)

素晴らしい一日をお過ごしください。

#include <SoftwareSerial.h>
#include "./TinyGPS.h"                 // Special version for 1.0
#include <LiquidCrystal.h>

TinyGPS gps;
SoftwareSerial nss(0, 255);            // Yellow wire to pin 6
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
void gpsdump(TinyGPS &gps);
bool feedgps();

void setup() {
// set up the LCD's number of columns and rows: 
lcd.begin(16, 2);
// initialize the serial communications:
Serial.begin(9600);
Serial.begin(115200);
nss.begin(4800);
lcd.print("Reading GPS");
lcd.write(254); // move cursor to beginning of first line
lcd.write(128);

lcd.write("                "); // clear display
lcd.write("                ");
}

void loop() {
bool newdata = false;
unsigned long start = millis();
while (millis() - start < 5000) {  // Update every 5 seconds
if (feedgps())
newdata = true;
}
gpsdump(gps);
}

// Get and process GPS data
void gpsdump(TinyGPS &gps) {

// problem area
float falt, flat, flon;
unsigned long age;
gps.f_get_position(&flat, &flon);
inline long altitude (return _altitude);
long _altitude
;lcd.print(_altitude, 4);
}//end problem area

// Feed data as it becomes available 
bool feedgps() {
while (nss.available()) {
if (gps.encode(nss.read()))
return true;
}
return false;
}
4

1 に答える 1

0

lcd.print(x,4)base-4 を印刷します。それが欲しかったのですか、それとも通常の 10 進数 (10 進数) が欲しかったのですか?

第二に、どこ_altitudeから来ると思いますか? 初期化されていません。初期化されていない と、何の意味もないfalt奇妙な行もあります。inline long altitude

デスクトップ環境で、最初に C++ を学習する方がよい場合があります。組み込みデバイスのデバッグは非常に難しく、依然としてかなりの数のバグが発生しています。

于 2013-08-16T09:52:26.570 に答える