GPS高度打印到LCD

时间:2013-08-16 08:13:54

标签: gps arduino lcd

我试图让我的arduino uno显示GPS模块的高度,没有任何其他数据。我还在学习代码,但是我遇到了一个问题,我似乎无法找到用于从GPS字符串拉高度的命令。我知道它正在成功地提取数据,因为我运行了来自http://learn.parallax.com/kickstart/28500的示例代码并且它读取了字符串的第一位,尽管我在尝试获取高度之后才开始滚动整个字符串。 我使用的是基本的16x2 LCD显示屏,显示器工作正常。

该项目的最终目标是GPS /陀螺仪高度计,可以记录到SD卡并记录温度,并在远地点(15,000英尺)和更大的降落伞部署一个降落伞在1,000英尺。

这是我用于海拔高度的代码,我已经标记了我无法弄清楚的部分。 (可能只是错过了一个术语,或者我可能真的搞砸了一些东西)

任何帮助都会受到赞赏,祝你有个美好的一天。

#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;
}

1 个答案:

答案 0 :(得分:0)

lcd.print(x,4)打印base-4。你想要那个,或者你想要普通的基数10(十进制)?

其次,您希望_altitude来自哪里?它没有初始化。还有一个未初始化的falt和一个奇怪的inline long altitude行并不代表任何内容。

在桌面环境中,您最好先学习C ++。调试嵌入式设备要困难得多,而且你仍然会产生很多错误。