Корзина пуста
Описание:
Модуль GPS ATGM336H — GPS-модуль, позволяющий получать координаты устройств с помощью системы глобального позиционирования. AT6558 – это многомодовый спутниковый навигационный модуль с 32 каналами отслеживания, которые могут одновременно принимать до шести спутников используемые для навигационных систем. Данный модуль обладает высокой чувствительность и низким энергопотреблением. Подходит для автомобильной и переносной навигации.
Характеристики:
- Приём сигнала: BDS/GPS/GLONASS/GALILEO/QZSS/SBAS
- Время холодного старта: ≤35сек;
- Время горячего старта: ≤1сек;
- Точность позиционирования: <2м;
- Частота обновления: 1ГГц(по умолчанию),10ГГц максимально;
- Скорость порта:4800~115200бод;
- Формат данных: 8 бит,без проверки, 1 стоп-бит;
- Протокол: NMEA0183;
- Максимальная высота: 18000м;
- Интерфейс: UART;
- Питание: 5В;
- Питание резервной батареи:
- Ток потребления: <25мА (3.3В);
- Рабочая температура: -40 ~ +85℃;
- Размеры: 10.1мм×9.7мм×2.4мм;
- Вес: 0.6г;
Примечание:
Модуль имеет 5 выводов:
- VCC — 5В;
- GND — GND
- TX — RX
- RX — TX
- PPS — вывод с резервной батарейки для получения времени — цифровой вывод
Прошивка для модуля Arduino IDE
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <string.h>
#include <ctype.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
int rxPin = 0; // RX pin
int txPin = 1; // TX pin
int byteGPS=-1;
char cmd[7] = "$GPZDA";
int counter1 = 0;
int counter2 = 0;
int offsets[13];
char buf[300] = "";
//Настройка дисплея и модуля GPS
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
pinMode(rxPin, INPUT);
pinMode(txPin, OUTPUT);
Serial.begin(9600);
lcd.begin();
lcd.backlight();
lcd.print("waiting for gps");
offsets[0] = 0;
reset();
}
void reset() {
counter1 = 0;
counter2 = 0;
}
int get_size(int offset) {
return offsets[offset+1] - offsets[offset] - 1;
}
int handle_byte(int byteGPS) {
buf[counter1] = byteGPS;
if (counter1 == 300) {
return 0;
}
if (byteGPS == ',') {
counter2++;
offsets[counter2] = counter1;
if (counter2 == 13) {
return 0;
}
}
if (byteGPS == '*') {
offsets[12] = counter1;
}
if (byteGPS == 10) {
if (counter2 != 12 || (get_size(0) != 6)) {
return 0;
}
// Данные с NMEA кода $GNZDA
for (int j=0; j<6; j++) {
if (buf[j] != cmd[j]) {
return 0;
}
}
// Настройка отброжжения времени
if (get_size(1) != 10) {
return 0;
}
if (get_size(9) != 6) {
return 0;
}
//Вывод времени
lcd.clear();
for (int j=0; j<6; j++) {
lcd.print(buf[offsets[1]+j]);
if (j==1) {
lcd.print("h");
}
else if (j==6) {
lcd.print("m");
}
else if (j==5) {
lcd.print("EKB");
}
}
// Вывод даты
lcd.setCursor(0, 1);
for (int j=0; j<6; j++) {
lcd.print(buf[offsets[9]+j]);
if (j==1 || j==3) {
lcd.print(".");
}
}
return 0;
}
return 1;
}
//Основной цмкл программы
void loop() {
byteGPS=Serial.read(); //Чтение информации с порта
if (byteGPS == -1) { // Проверка данных NMEA
delay(100);
}
else {
if (!handle_byte(byteGPS)) {
reset();
}}}
Обзор на канале SupplierSparepart Alatberat
Полезные ссылки:
Datasheet:
https://iarduino.ru/lib/de7339c80a0826b3d6ddf08035e29f72.pdf
Сообщения не найдены