Помогите, пожалуйста, с выводом gps данных на экран
- Войдите на сайт для отправки комментариев
Чт, 14/01/2021 - 19:00
Не могу вывести координаты на экран.
Экран - ssd1306 i2c 128x32
Gps - Radiolink TS100 Mini
При запуске программы ничего не выводится, просто ничего
Вот сам код:
#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <TroykaGPS.h>
#include <SoftwareSerial.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 32 // OLED display height, in pixels
SoftwareSerial mySerial(4, 5); //TX, RX
#define GPS_SERIAL mySerial
GPS gps(GPS_SERIAL);
#define MAX_SIZE_MASS 16
// массив для хранения широты в градусах, минутах и секундах
char latitudeBase60[MAX_SIZE_MASS];
// массив для хранения долготы в градусах, минутах и секундах
char longitudeBase60[MAX_SIZE_MASS];
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
#define OLED_RESET 4 // Reset pin # (or -1 if sharing Arduino reset pin)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
void setup() {
Serial.begin(9600);
// ждём, пока не откроется монитор последовательного порта
// для того, чтобы отследить все события в программе
while (!Serial) {
}
Serial.print("Serial init OK\r\n");
// открываем Serial-соединение с GPS-модулем на скорости 115200 бод
GPS_SERIAL.begin(115200);
Serial.println("GPS init is OK on speed 115200");
// изменяем скорость обещение GPS-модуля с управляющей платой на 9600 бод
// используем NMEA-команду «$PMTK251,9600*17\r\n»
GPS_SERIAL.write("$PMTK251,9600*17\r\n");
// закрываем Serial-соединение с GPS-модулем
GPS_SERIAL.end();
// открываем Serial-соединение с GPS-модулем на скорости 9600 бод
GPS_SERIAL.begin(9600);
// печатаем строку
Serial.print("GPS init is OK on speed 9600");
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println("SSD1306 allocation failed");
for(;;);
}
}
void loop() {
if (gps.available()) {
// считываем данные и парсим
gps.readParsing();
// проверяем состояние GPS-модуля
switch(gps.getState()) {
// всё OK
case GPS_OK:
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0,0);
display.print("GPS is OK:");
display.display();
gps.getLatitudeBase60(latitudeBase60, MAX_SIZE_MASS);
gps.getLongitudeBase60(longitudeBase60, MAX_SIZE_MASS);
display.print("Latitude\t");
display.display();
display.println(latitudeBase60);
display.display();
display.print("Longitude\t");
display.display();
display.println(longitudeBase60);
display.display();
break;
// ошибка данных
case GPS_ERROR_DATA:
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0,0);
display.println("GPS error data");
break;
// нет соединение со спутниками
case GPS_ERROR_SAT:
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0,0);
display.println("GPS no connect to satellites!!!");
break;
}
http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii
Не могу вывести координаты на экран.
Экран - ssd1306 i2c 128x32
Gps - Radiolink TS100 Mini
При запуске программы ничего не выводится, просто ничего
Принято к сведению.
Когда и если у Вас появится какой-то вопрос, не стесняйтесь его задать.