【问题标题】:GPS altitude print to LCDGPS 高度打印到 LCD
【发布时间】:2013-08-16 08:13:54
【问题描述】:

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

【问题讨论】:

    标签: gps arduino lcd


    【解决方案1】:

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

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

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

    【讨论】:

    • 我正在修改用于拉经度和纬度的信息,它们后面有 x,4。是 ,10 表示以十为底,我更愿意使用它。在 tinygps.h 库中,我找到了“内联长海拔”位,在试图弄清楚如何拉高海拔时,我把它移了过来。我将如何初始化“高度”并将其与 GPS 字符串中的值相关联?我希望尽快学习 C++,我真的很抱歉我的一堆错误很简单。有没有推荐学习基础的地方?
    • 好的,这就是我不明白的。 falt 如何未初始化,但 flan 和 flon 是?这些价值从何而来?
    • @user2688631:你可能已经搞砸了。 gps.f_get_position(&amp;flat, &amp;flon); 初始化两者(大概来自 GPS 字符串)。对于 C++ 基础知识,我们有一个 book list
    猜你喜欢
    • 1970-01-01
    • 2020-09-20
    • 2021-09-10
    • 1970-01-01
    • 1970-01-01
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多