我试图让我的 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;
}