Давайте соберем пользовательский блок для GPS NEO6 вместе.
Давайте соберем пользовательский блок для GPS NEO6 вместе.
Приветствую всех, не давно наткнулся на сей занимательный проект, и выражаю благодарность его создателю за столь удачную программу.
Посидев вечер я разобрался в основных функциях, в создании пользовательского блока я потерпел фиаско несмотря на то что читал и смотрел гайд автора.
Цель заставить работать GPS NEO-6 в рамках FLProg.
Я решил пойти от простого к сложному. Для начал просто получит с GPS широту и отправить ее по UART.
Подработав напильником пример из библиоткеи у меня получилось так:
[spoiler=Спойлер]#include <TinyGPS++.h>
#include <SoftwareSerial.h>
static const int RXPin = 4, TXPin = 3; // подключение GPS достаточно RXpin
static const uint32_t GPSBaud = 9600;
// The TinyGPS++ object
TinyGPSPlus gps;
// The serial connection to the GPS device
SoftwareSerial ss(RXPin, TXPin);
TinyGPSCustom latitude(gps, "GPGGA", 2); // Широта
TinyGPSCustom latitudeNS(gps, "GPGGA", 3); // Широта буква (север или юг)
TinyGPSCustom longitude(gps, "GPGGA", 4); // Долгота
TinyGPSCustom longitudeWE(gps, "GPGGA", 5); // Долгота буква (запад или восток)
void setup()
{
Serial.begin(9600);
ss.begin(GPSBaud);
}
void loop()
{
// Every time anything is updated, print everything.
if (
latitude.isUpdated()|| latitudeNS.isUpdated()|| longitude.isUpdated() )
{
Serial.print(F(" Latitude=")); Serial.print(latitude.value()); Serial.println(latitudeNS.value());
Serial.print(F(" Longitude=")); Serial.print(longitude.value()); Serial.println(longitudeWE.value());
delay (5000); // тестовая задержка
}
//
while (ss.available() > 0)
gps.encode(ss.read());
}[/spoiler]
тут уже и широта и долгота выводится, можно конечно сразу обрезать и оставить широту но пока оставлю так для наглядности.
Пользуясь руководством автора я на собрал блок, в итоге при компиляции непосредственно в ардуиновской апликашке пишут кучу ошибок.
Танцы с бубном не возымели действия, прошу помощи аксакалов .
Мой черновик блока и базовый скетч прилагаю.
Посидев вечер я разобрался в основных функциях, в создании пользовательского блока я потерпел фиаско несмотря на то что читал и смотрел гайд автора.
Цель заставить работать GPS NEO-6 в рамках FLProg.
Я решил пойти от простого к сложному. Для начал просто получит с GPS широту и отправить ее по UART.
Подработав напильником пример из библиоткеи у меня получилось так:
[spoiler=Спойлер]#include <TinyGPS++.h>
#include <SoftwareSerial.h>
static const int RXPin = 4, TXPin = 3; // подключение GPS достаточно RXpin
static const uint32_t GPSBaud = 9600;
// The TinyGPS++ object
TinyGPSPlus gps;
// The serial connection to the GPS device
SoftwareSerial ss(RXPin, TXPin);
TinyGPSCustom latitude(gps, "GPGGA", 2); // Широта
TinyGPSCustom latitudeNS(gps, "GPGGA", 3); // Широта буква (север или юг)
TinyGPSCustom longitude(gps, "GPGGA", 4); // Долгота
TinyGPSCustom longitudeWE(gps, "GPGGA", 5); // Долгота буква (запад или восток)
void setup()
{
Serial.begin(9600);
ss.begin(GPSBaud);
}
void loop()
{
// Every time anything is updated, print everything.
if (
latitude.isUpdated()|| latitudeNS.isUpdated()|| longitude.isUpdated() )
{
Serial.print(F(" Latitude=")); Serial.print(latitude.value()); Serial.println(latitudeNS.value());
Serial.print(F(" Longitude=")); Serial.print(longitude.value()); Serial.println(longitudeWE.value());
delay (5000); // тестовая задержка
}
//
while (ss.available() > 0)
gps.encode(ss.read());
}[/spoiler]
тут уже и широта и долгота выводится, можно конечно сразу обрезать и оставить широту но пока оставлю так для наглядности.
Пользуясь руководством автора я на собрал блок, в итоге при компиляции непосредственно в ардуиновской апликашке пишут кучу ошибок.
Танцы с бубном не возымели действия, прошу помощи аксакалов .
Мой черновик блока и базовый скетч прилагаю.
Давайте соберем пользовательский блок для GPS NEO6 вместе.
Поставьте галку "использовать один раз".
Последний раз редактировалось slavas 11 сен 2016, 13:38, всего редактировалось 1 раз.
Давайте соберем пользовательский блок для GPS NEO6 вместе.
А еще лучше, выложите сам ваш блок сюда. Тогда проще понять, что у вас не так происходит.
Давайте соберем пользовательский блок для GPS NEO6 вместе.
Очень странно что файлы вложения не сохранились, добавлю опять
Добавлено (12.09.2016, 08:49)
---------------------------------------------
по библиотеке почитать тут http://arduiniana.org/libraries/tinygpsplus/
Добавлено (12.09.2016, 09:42)
---------------------------------------------
Постарался по максимуму упростить код который должен работать в блоке.
[spoiler=Спойлер]#include <TinyGPS++.h>
#include <SoftwareSerial.h>
static const int RXPin = 4, TXPin = 3;
static const uint32_t GPSBaud = 9600;
// The TinyGPS++ object
TinyGPSPlus gps;
// The serial connection to the GPS device
SoftwareSerial ss(RXPin, TXPin);
// For stats that happen every 5 seconds
unsigned long last = 0UL;
void setup()
{
Serial.begin(9600);
ss.begin(GPSBaud);
}
void loop()
{
// Dispatch incoming characters
while (ss.available() > 0)
gps.encode(ss.read());
if (gps.location.isUpdated())
{
Serial.print(F(" Lat="));
Serial.print(gps.location.lat(), 6);
Serial.print(F(" Long="));
Serial.println(gps.location.lng(), 6);
}
else if (millis() - last > 1000) // задержка разрыва вывода данных
{
Serial.println();
if (gps.charsProcessed() < 10)
Serial.println(F("WARNING: No GPS data. Check wiring."));
last = millis();
}
}[/spoiler]
Добавлено (12.09.2016, 08:49)
---------------------------------------------
по библиотеке почитать тут http://arduiniana.org/libraries/tinygpsplus/
Добавлено (12.09.2016, 09:42)
---------------------------------------------
Постарался по максимуму упростить код который должен работать в блоке.
[spoiler=Спойлер]#include <TinyGPS++.h>
#include <SoftwareSerial.h>
static const int RXPin = 4, TXPin = 3;
static const uint32_t GPSBaud = 9600;
// The TinyGPS++ object
TinyGPSPlus gps;
// The serial connection to the GPS device
SoftwareSerial ss(RXPin, TXPin);
// For stats that happen every 5 seconds
unsigned long last = 0UL;
void setup()
{
Serial.begin(9600);
ss.begin(GPSBaud);
}
void loop()
{
// Dispatch incoming characters
while (ss.available() > 0)
gps.encode(ss.read());
if (gps.location.isUpdated())
{
Serial.print(F(" Lat="));
Serial.print(gps.location.lat(), 6);
Serial.print(F(" Long="));
Serial.println(gps.location.lng(), 6);
}
else if (millis() - last > 1000) // задержка разрыва вывода данных
{
Serial.println();
if (gps.charsProcessed() < 10)
Serial.println(F("WARNING: No GPS data. Check wiring."));
last = millis();
}
}[/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Ernesto 12 сен 2016, 08:45, всего редактировалось 1 раз.
Давайте соберем пользовательский блок для GPS NEO6 вместе.
Приложил Новый вариант, в старом было множество ошибок.Ernesto писал(а):Постарался по максимуму упростить код который должен работать в блоке.
1. в нескольких местах объявлялось latitude(переменная, выход, объект одновременно ).
2. Секции Loop Лишний знак "}"
3. Вызов несуществующего объекта
Это я чисто по описанию библиотеки дела, может тоже, что не так понял
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Давайте соберем пользовательский блок для GPS NEO6 вместе.
Сейчас по кручу ваш вариант, спасибо. 
Добавлено (12.09.2016, 11:21)
---------------------------------------------
Проверил с компиляцией все хорошо вот только при отсыле любой переменной в UART на порту тишина.
В обоих примерах что есть на этом сайте автор настраивал поле FunctionSection, в Вашем примере там пусто, чисто интуитивно предполагаю что в этом проблем.
Как подключил блок UART добавил вложением.
Добавлено (12.09.2016, 11:21)
---------------------------------------------
Проверил с компиляцией все хорошо вот только при отсыле любой переменной в UART на порту тишина.
В обоих примерах что есть на этом сайте автор настраивал поле FunctionSection, в Вашем примере там пусто, чисто интуитивно предполагаю что в этом проблем.
Как подключил блок UART добавил вложением.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Ernesto 12 сен 2016, 11:24, всего редактировалось 1 раз.
Давайте соберем пользовательский блок для GPS NEO6 вместе.
Ну проблема точно не в этом. Любая область может быть пустой.Ernesto писал(а):В обоих примерах что есть на этом сайте автор настраивал поле FunctionSection, в Вашем примере там пусто, чисто интуитивно предполагаю что в этом проблем.
А для начал вы лучше напрямую из Arduino IDE загрузите примеры из библиотеки работы с модулем (например BasicExample) и попробуйте.
Может у вас проблема вообще в подключении или спутники не ловит.
Да и простого мониторинга в терминале, лучше использовать просто "Отправка в UART"
Давайте соберем пользовательский блок для GPS NEO6 вместе.
Вот что я еще заметил в блоке
void setup()
отсутствует ss.begin(GPSBaud); хотя эта строка есть в SetupSection
Добавлено (12.09.2016, 11:43)
---------------------------------------------
Вот этот код прямо сейчас крутится в ардуине выдает координаты в UART
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
static const int RXPin = 4, TXPin = 3;
static const uint32_t GPSBaud = 9600;
// The TinyGPS++ object
TinyGPSPlus gps;
// The serial connection to the GPS device
SoftwareSerial ss(RXPin, TXPin);
// For stats that happen every 5 seconds
unsigned long last = 0UL;
void setup()
{
Serial.begin(9600);
ss.begin(GPSBaud);
}
void loop()
{
// Dispatch incoming characters
while (ss.available() > 0)
gps.encode(ss.read());
if (gps.location.isUpdated())
{
Serial.print(F(" Lat="));
Serial.print(gps.location.lat(), 6);
Serial.print(F(" Long="));
Serial.println(gps.location.lng(), 6);
}
else if (millis() - last > 1000) // задержка разрыва вывода данных
{
Serial.println();
if (gps.charsProcessed() < 10)
Serial.println(F("WARNING: No GPS data. Check wiring."));
last = millis();
}
}
Так что дело не в железе.
Добавлено (12.09.2016, 11:48)
---------------------------------------------
Вот что скомпилировалось у меня с вашим блоком
[spoiler=Спойлер]#include <SoftwareSerial.h>
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
SoftwareSerial Serial100(4, 3);
float LAT;
float LNT;
int hour_;
int minute_;
int second_;
TinyGPSPlus gps;
SoftwareSerial ss(4, 3);
void setup()
{
Serial100.begin(9600);
ss.begin(9600);
}
void loop()
{
if (gps.location.isValid())
{
LAT =gps.location.lat();
LNT = gps.location.lng();
}
if (gps.time.isValid())
{
hour_ =gps.time.hour();
minute_ = gps.time.minute();
second_ =gps.time.second();
}
while (ss.available() > 0)
gps.encode(ss.read());
if (!(0)){Serial100.print(LAT);}
}[/spoiler]
Добавлено (12.09.2016, 11:50)
---------------------------------------------
Кстате в коде фигурирует 2 SoftwareSerial, один от блока UART FLprog второй из исходного кода GPS может тут конфликт ?
Добавлено (12.09.2016, 11:52)
---------------------------------------------
про ss.begin(GPSBaud); проехали у видел что вы его вынесли в параметры пользователя
void setup()
отсутствует ss.begin(GPSBaud); хотя эта строка есть в SetupSection
Добавлено (12.09.2016, 11:43)
---------------------------------------------
Вот этот код прямо сейчас крутится в ардуине выдает координаты в UART
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
static const int RXPin = 4, TXPin = 3;
static const uint32_t GPSBaud = 9600;
// The TinyGPS++ object
TinyGPSPlus gps;
// The serial connection to the GPS device
SoftwareSerial ss(RXPin, TXPin);
// For stats that happen every 5 seconds
unsigned long last = 0UL;
void setup()
{
Serial.begin(9600);
ss.begin(GPSBaud);
}
void loop()
{
// Dispatch incoming characters
while (ss.available() > 0)
gps.encode(ss.read());
if (gps.location.isUpdated())
{
Serial.print(F(" Lat="));
Serial.print(gps.location.lat(), 6);
Serial.print(F(" Long="));
Serial.println(gps.location.lng(), 6);
}
else if (millis() - last > 1000) // задержка разрыва вывода данных
{
Serial.println();
if (gps.charsProcessed() < 10)
Serial.println(F("WARNING: No GPS data. Check wiring."));
last = millis();
}
}
Так что дело не в железе.
Добавлено (12.09.2016, 11:48)
---------------------------------------------
Вот что скомпилировалось у меня с вашим блоком
[spoiler=Спойлер]#include <SoftwareSerial.h>
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
SoftwareSerial Serial100(4, 3);
float LAT;
float LNT;
int hour_;
int minute_;
int second_;
TinyGPSPlus gps;
SoftwareSerial ss(4, 3);
void setup()
{
Serial100.begin(9600);
ss.begin(9600);
}
void loop()
{
if (gps.location.isValid())
{
LAT =gps.location.lat();
LNT = gps.location.lng();
}
if (gps.time.isValid())
{
hour_ =gps.time.hour();
minute_ = gps.time.minute();
second_ =gps.time.second();
}
while (ss.available() > 0)
gps.encode(ss.read());
if (!(0)){Serial100.print(LAT);}
}[/spoiler]
Добавлено (12.09.2016, 11:50)
---------------------------------------------
Кстате в коде фигурирует 2 SoftwareSerial, один от блока UART FLprog второй из исходного кода GPS может тут конфликт ?
Добавлено (12.09.2016, 11:52)
---------------------------------------------
про ss.begin(GPSBaud); проехали у видел что вы его вынесли в параметры пользователя
Последний раз редактировалось Ernesto 12 сен 2016, 11:44, всего редактировалось 1 раз.
Давайте соберем пользовательский блок для GPS NEO6 вместе.
Однозначно, та делать нельзя , с SoftwareSerial может быть только один, для передачи в монитор COM , надо использовать аппаратный порт.Ernesto писал(а):Кстате в коде фигурирует 2 SoftwareSerial, один от блока UART FLprog второй из исходного кода GPS может тут конфликт ?
Давайте соберем пользовательский блок для GPS NEO6 вместе.
Получил первые данные (пока криво), ошибка была что в блоке UART нужно было выбирать ComPort 0.
Получаю переменную LAT в UART приходит только 2 цифры после запятой
Получаю переменную LAT в UART приходит только 2 цифры после запятой
Последний раз редактировалось Ernesto 12 сен 2016, 12:08, всего редактировалось 1 раз.
Давайте соберем пользовательский блок для GPS NEO6 вместе.
Судя по коду вы отправляли данные не на компьютер, а модулю GPS
Давайте соберем пользовательский блок для GPS NEO6 вместе.
все дело в команде в коде - (gps.location.lat(), 6); цифра отвечает за количество знаков, в коде что я привел выше все работает
в коде FLprog если прописать LAT =gps.location.lat(), 6; не работает.
Куда копать?
Добавлено (12.09.2016, 12:18)
---------------------------------------------
Добавлено (12.09.2016, 12:19)
---------------------------------------------
Код FLprog целиком
[spoiler=Спойлер]#include <TinyGPS++.h>
#include <SoftwareSerial.h>
float LAT;
float LNT;
int hour_;
int minute_;
int second_;
TinyGPSPlus gps;
SoftwareSerial ss(4, 3);
float _SV1CP0 = 0.00;
bool _SV1CP0needSend = 0;
unsigned long _SV1CP0Time = 0UL;
void setup()
{
Serial.begin(9600);
_SV1CP0Time = millis();
ss.begin(9600);
}
void loop()
{
if (gps.location.isValid())
{
LAT =gps.location.lat(), 6;
LNT = gps.location.lng();
}
if (gps.time.isValid())
{
hour_ =gps.time.hour();
minute_ = gps.time.minute();
second_ =gps.time.second();
}
while (ss.available() > 0)
gps.encode(ss.read());
if (_isTimer(_SV1CP0Time, 1000 )) {_SV1CP0 = LAT; _SV1CP0needSend = 1; _SV1CP0Time = millis();}
if(_SV1CP0needSend) {
_SV1CP0needSend = 0;
Serial.write (1);
Serial.print (1);
Serial.write (2);
Serial.print (_SV1CP0);
Serial.write (3);}
}
bool _isTimer(unsigned long startTime, unsigned long period )
{
unsigned long currentTime;
currentTime = millis();
if (currentTime>= startTime) {return (currentTime>=(startTime + period));} else {return (currentTime >=(4294967295-startTime+period));}
}[/spoiler]
Добавлено (12.09.2016, 12:27)
---------------------------------------------
Прописал LAT =gps.location.lat(), 6; и выполнил преобразование из Float в строку оставиви 6 знаков после запятой все залетело как надо.
Хотя все равно странно почему flprog обрезает после 2 знаков
Добавлено (12.09.2016, 12:46)
---------------------------------------------
Завтра пропишу остальные переменные GPS, спасибо за помощь!
в коде FLprog если прописать LAT =gps.location.lat(), 6; не работает.
Куда копать?
Добавлено (12.09.2016, 12:18)
---------------------------------------------
Вот сейчас я как раз данные считываю с GPS и вижу их через монитор порта.Слимпер писал(а):Судя по коду вы отправляли данные не на компьютер, а модулю GPS
Добавлено (12.09.2016, 12:19)
---------------------------------------------
Код FLprog целиком
[spoiler=Спойлер]#include <TinyGPS++.h>
#include <SoftwareSerial.h>
float LAT;
float LNT;
int hour_;
int minute_;
int second_;
TinyGPSPlus gps;
SoftwareSerial ss(4, 3);
float _SV1CP0 = 0.00;
bool _SV1CP0needSend = 0;
unsigned long _SV1CP0Time = 0UL;
void setup()
{
Serial.begin(9600);
_SV1CP0Time = millis();
ss.begin(9600);
}
void loop()
{
if (gps.location.isValid())
{
LAT =gps.location.lat(), 6;
LNT = gps.location.lng();
}
if (gps.time.isValid())
{
hour_ =gps.time.hour();
minute_ = gps.time.minute();
second_ =gps.time.second();
}
while (ss.available() > 0)
gps.encode(ss.read());
if (_isTimer(_SV1CP0Time, 1000 )) {_SV1CP0 = LAT; _SV1CP0needSend = 1; _SV1CP0Time = millis();}
if(_SV1CP0needSend) {
_SV1CP0needSend = 0;
Serial.write (1);
Serial.print (1);
Serial.write (2);
Serial.print (_SV1CP0);
Serial.write (3);}
}
bool _isTimer(unsigned long startTime, unsigned long period )
{
unsigned long currentTime;
currentTime = millis();
if (currentTime>= startTime) {return (currentTime>=(startTime + period));} else {return (currentTime >=(4294967295-startTime+period));}
}[/spoiler]
Добавлено (12.09.2016, 12:27)
---------------------------------------------
Прописал LAT =gps.location.lat(), 6; и выполнил преобразование из Float в строку оставиви 6 знаков после запятой все залетело как надо.
Хотя все равно странно почему flprog обрезает после 2 знаков
Добавлено (12.09.2016, 12:46)
---------------------------------------------
Завтра пропишу остальные переменные GPS, спасибо за помощь!
Последний раз редактировалось Ernesto 12 сен 2016, 12:19, всего редактировалось 1 раз.
Давайте соберем пользовательский блок для GPS NEO6 вместе.
В блок конвертации в строку, при подключении типа Float, в настройках блока появляется параметр сколько знаков после запятой оставлять (по умолчанию 2).Ernesto писал(а):Прописал LAT =gps.location.lat(), 6; и выполнил преобразование из Float в строку оставиви 6 знаков после запятой все залетело как надо.Хотя все равно странно почему flprog обрезает после 2 знаков
Давайте соберем пользовательский блок для GPS NEO6 вместе.
ту понятно,Слимпер писал(а):В блок конвертации в строку, при подключении типа Float, в настройках блока появляется параметр сколько знаков после запятой оставлять (по умолчанию 2).
не понятно почему когда я отправляю в UART на прямую переменную типа float в мониторе порта показывает только 2 знака после запятой.
Последний раз редактировалось Ernesto 13 сен 2016, 05:55, всего редактировалось 1 раз.
Давайте соберем пользовательский блок для GPS NEO6 вместе.
print()Ernesto писал(а):не понятно почему когда я отправляю в UART на прямую переменную типа float в монеторе порта показывает только 2 знака после запятой.
Так команда работает.
Давайте соберем пользовательский блок для GPS NEO6 вместе.
собрал блок
несколько раз перепроверил код но переменные altitude, satellites, course приходят нулями
хотя код примера показывает данные по этим параметрам
несколько раз перепроверил код но переменные altitude, satellites, course приходят нулями
хотя код примера показывает данные по этим параметрам
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Давайте соберем пользовательский блок для GPS NEO6 вместе.
А что такие записи работают?
LAT =gps.location.lat(), 6;
minute_ = gps.time.minute(), 7;
Добавлено (13.09.2016, 11:39)
---------------------------------------------
Если работает такое преобразование
то попробуй сделать так :
altitude_ =gps.altitude.meters(), 6;
satellites_ =gps.satellites.value(), 6;
course_ =gps.course.deg(), 6;
А в каком коде satellites работает?
LAT =gps.location.lat(), 6;
minute_ = gps.time.minute(), 7;
Добавлено (13.09.2016, 11:39)
---------------------------------------------
Если работает такое преобразование
то попробуй сделать так :
altitude_ =gps.altitude.meters(), 6;
satellites_ =gps.satellites.value(), 6;
course_ =gps.course.deg(), 6;
А в каком коде satellites работает?
Последний раз редактировалось Слимпер 13 сен 2016, 11:49, всего редактировалось 1 раз.
Давайте соберем пользовательский блок для GPS NEO6 вместе.
честно говоря что satellites_ =gps.satellites.value(), 6; что так satellites_ =gps.satellites.value();
для отладки упростил по максимуму блок
см. вложение. в порт выдает ноль,
а вот такой код нормально выдает количество спутников
[spoiler=Спойлер]#include <TinyGPS++.h>
#include <SoftwareSerial.h>
static const int RXPin = 4, TXPin = 3;
static const uint32_t GPSBaud = 9600;
// The TinyGPS++ object
TinyGPSPlus gps;
// The serial connection to the GPS device
SoftwareSerial ss(RXPin, TXPin);
// For stats that happen every 5 seconds
unsigned long last = 0UL;
void setup()
{
Serial.begin(9600);
ss.begin(GPSBaud);
}
void loop()
{
// Dispatch incoming characters
while (ss.available() > 0)
gps.encode(ss.read());
if (gps.satellites.isValid())
{
Serial.print(F("Value="));
Serial.println(gps.satellites.value());
}
else if (millis() - last > 1000)
{
Serial.println();
last = millis();
}
}[/spoiler] возможно загвоздка в типе переменных , в самой библе они хитро объявляются например satellites это uint32_t
я понимаю что так типы объявляют в нормальном С, но вот куда копать?
для отладки упростил по максимуму блок
см. вложение. в порт выдает ноль,
а вот такой код нормально выдает количество спутников
[spoiler=Спойлер]#include <TinyGPS++.h>
#include <SoftwareSerial.h>
static const int RXPin = 4, TXPin = 3;
static const uint32_t GPSBaud = 9600;
// The TinyGPS++ object
TinyGPSPlus gps;
// The serial connection to the GPS device
SoftwareSerial ss(RXPin, TXPin);
// For stats that happen every 5 seconds
unsigned long last = 0UL;
void setup()
{
Serial.begin(9600);
ss.begin(GPSBaud);
}
void loop()
{
// Dispatch incoming characters
while (ss.available() > 0)
gps.encode(ss.read());
if (gps.satellites.isValid())
{
Serial.print(F("Value="));
Serial.println(gps.satellites.value());
}
else if (millis() - last > 1000)
{
Serial.println();
last = millis();
}
}[/spoiler] возможно загвоздка в типе переменных , в самой библе они хитро объявляются например satellites это uint32_t
я понимаю что так типы объявляют в нормальном С, но вот куда копать?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Ernesto 13 сен 2016, 11:54, всего редактировалось 1 раз.
Давайте соберем пользовательский блок для GPS NEO6 вместе.
Попробуй для переменной satellites_ поменять тип с Integer на Uunsigned Long Integer
Давайте соберем пользовательский блок для GPS NEO6 вместе.
не помоглоСлимпер писал(а):Попробуй для переменной satellites_ поменять тип с Integer на Uunsigned Long Integer
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя