Я пытаюсь получить мой arduino uno, чтобы отобразить высоту от модуля GPS, без каких-либо других данных. Я все еще изучаю код, но у меня возникла проблема, когда я не могу найти, какая команда используется для вытягивания высоты из строки GPS. Я знаю, что он извлекает данные успешно, так как я запускал пример кода от http://learn.parallax.com/kickstart/28500, и он читал первый бит строки, хотя я перешел на попытку получить высоту, прежде чем заставить ее прокрутить всю строку. Я использую базовый ЖК-дисплей 16x2, и дисплей у меня работает нормально.GPS высотой печати на ЖК-дисплей
Конечная цель этого проекта - высотомер GPS/гироскопа, который может записывать на SD-карту и записывать температуру, а также развертывать парашют у апогея (15 000 футов) и большой парашют на 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;
}
Я модифицировал информацию, используемую для вытягивания долготы и широты, и после нее они имели x, 4. есть, 10 означает базовую десятку, я бы скорее использовал это. в библиотеке tinygps.h я нашел бит «встроенной длинной высоты», и, пытаясь понять, как тянуть высоту, я переместил ее. как бы инициализировать «высоту» и связать ее со значением из строки GPS? Я надеюсь скоро изучить C++, и мне очень жаль, что куча моих ошибок проста. Есть ли место, которое вы бы рекомендовали изучить основы? – user2688631
Хорошо, вот чего я не понимаю. Как неинициализирован, но флан и флан? Откуда берутся эти ценности? – user2688631
@ user2688631: Ты, наверное, над головой. 'gps.f_get_position (& flat, &flon);' инициализирует два (предположительно, из строки GPS). Для основ C++ у нас есть [список книг] (http://stackoverflow.com/questions/388242/the-definitive-c- книга-гид-и-лист) – MSalters