GPS高度打印到LCD



我正试图让我的arduino uno在没有任何其他数据的情况下显示GPS模块的海拔高度。我仍在学习代码,但我遇到了一个问题,我似乎找不到从GPS字符串中提取海拔高度的命令。我知道它成功地提取了数据,因为我从http://learn.parallax.com/kickstart/28500它读取了字符串的第一位,尽管我继续尝试在滚动整个字符串之前获得海拔高度。我使用的是一个基本的16x2液晶显示器,我的显示器工作得很好。

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

这是我用来计算海拔高度的代码,我已经标出了我无法计算的部分。(可能只是错过了一个学期,或者我可能真的把事情搞砸了)

如有任何帮助,我们将不胜感激,祝您度过愉快的一天。

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

lcd.print(x,4)打印base-4。你想要这个,还是想要普通的10进制(十进制)?

其次,你认为_altitude来自哪里?它未初始化。还有一个未初始化的falt和一个奇怪的inline long altitude行,它没有任何意义。

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

最新更新