2013-08-16 3 views
0

Я пытаюсь получить мой 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; 
} 

ответ

0

lcd.print(x,4) принт основы-4. Вы хотели этого, или хотите обычную базу-10 (десятичную)?

Во-вторых, где вы ожидаете, _altitude? Он неинициализирован. Также есть неинициализированный falt и странная линия inline long altitude, которая ничего не значит.

Возможно, вам лучше изучить C++ сначала в среде рабочего стола. Отладка встроенного устройства намного сложнее, и вы все еще производят довольно много ошибок.

+0

Я модифицировал информацию, используемую для вытягивания долготы и широты, и после нее они имели x, 4. есть, 10 означает базовую десятку, я бы скорее использовал это. в библиотеке tinygps.h я нашел бит «встроенной длинной высоты», и, пытаясь понять, как тянуть высоту, я переместил ее. как бы инициализировать «высоту» и связать ее со значением из строки GPS? Я надеюсь скоро изучить C++, и мне очень жаль, что куча моих ошибок проста. Есть ли место, которое вы бы рекомендовали изучить основы? – user2688631

+0

Хорошо, вот чего я не понимаю. Как неинициализирован, но флан и флан? Откуда берутся эти ценности? – user2688631

+0

@ user2688631: Ты, наверное, над головой. 'gps.f_get_position (& flat, &flon);' инициализирует два (предположительно, из строки GPS). Для основ C++ у нас есть [список книг] (http://stackoverflow.com/questions/388242/the-definitive-c- книга-гид-и-лист) – MSalters

 Смежные вопросы

  • Нет связанных вопросов^_^