3 термопары и tft дисплей SPI ILI9225 к шине SPI

Что бы поменять конфигурацию если надо …

В смысле прошить?
То есть при обычном использовании в качестве передатчика о местоположении для ардуино провод RX подключать безсмысленно правильно я понимаю.

Если не будете ничего передавать на модуль, то и подключать не надо …

если уж совсем придираться то и если не используется (а по умолчанию он не используется) Flow control (8 databit, no parity, 1 stop bit, no flow controll)

Нет, правильно “бессмысленно”.

Только, при этом, лучше указать это в конфигурации UART, чтобы он не думал, что там что-то подключено.

Извените я в общем всех понимаю но хотелось бы конкретно узнать по модулю gy-gps6mv2 ну и подобным.
Нужно ли подключать провод rx при подключении к Ардуино да или нет если да то зачем.

Правда Flow control что-то в этом есть но опять я нигде не нашел сктча с применением Flow control

Документация на модуль есть в свободном доступе. Через программу по полному uart с rx и tx можно перенастроить работу модуля КАРДИНАЛЬНО !!!

Элементарно, Ватсон!
Если лично Вам нужно - “да”.
Если лично Вам не нужно - “нет”.
Мы же не знаем, что Вам нужно.

В том случае, если блоха преднастроена через u-center, RX не нужен.

RX нужен при необходимости на ходу менять конфигурацию (как частный случай - подключать любую блоху без преконфигурирования), к примеру - изменить набор сентеций, вкл/выкл выходные протоколы, активировать jamming detection. Но, при этом, данную часть конфигурирования придётся писать вручную.


#include <TinyGPSPlus.h>     //Библиотека GPS модуля
#include <SoftwareSerial.h>  //Библиотека для подключения пинов RX TX к любым назначеным  контактам

static const int RXPin = 4, TXPin = 3;
static const uint32_t GPSBaud = 9600;

TinyGPSPlus gps;  //Создаём объект gps класса TinyGPSPlus.

// The serial connection to the GPS device
SoftwareSerial ss(RXPin, TXPin);
int hour;     // обЪявление переменной час
int GMT = 5;  // обЪявление переменной часовой пояс

//  Подключения дисплея
#include <Wire.h>                    // библиот для общения по I2C
#include <LiquidCrystal_I2C.h>       // библиот работы с символьным жк-дисплеем  по I2C
LiquidCrystal_I2C lcd(0x27, 20, 4);  // Устанавливаем характеристики дисплея

void setup() {
  Serial.begin(9600);  //задаем скорость общения по USB
  ss.begin(GPSBaud);   //задаем скорость c GPS модуллем

  lcd.init();       // инициализация ЖК дисплея
  lcd.backlight();  // Включаем подсветку дисплея
  // Печатаем оформление на  дисплее то что не меняется
  lcd.clear();  //
  lcd.print("Date");
  lcd.setCursor(0, 1);
  lcd.print("clock");
  lcd.setCursor(0, 2);
  lcd.print("spyt=");
  lcd.setCursor(9, 2);
  lcd.print("<=");
  lcd.setCursor(0, 3);
  lcd.print("H=");
  lcd.setCursor(9, 3);
  lcd.print("skor=");
  delay(1000);
}
void loop() {
  // This sketch displays information every time a new sentence is correctly encoded.

  while (ss.available() > 0)      // ПРОВЕРКА ЕСТЬ ЛИИ ДАННЫЕ в порте
    if (gps.encode(ss.read())) {  // ОБРАБОТКА ДАННЫХ ИЗВЛЕЧЕНИЕнужной информации

      if (gps.date.isValid()) {
        Serial.print(F("  Дата: "));
        if (gps.date.day() < 10) Serial.print(F("0"));
        Serial.print(gps.date.day());
        Serial.print(F("/"));
        if (gps.date.month() < 10) Serial.print(F("0"));
        Serial.print(gps.date.month());
        Serial.print(F("/"));
        Serial.print(gps.date.year());

        Serial.print(F(" время: "));
        if (gps.time.isValid())
          hour = gps.time.hour() + GMT;       // расчет переменной час с учетом часового пояса
        if (hour > 23) hour = hour - 24;      // Вычитаем 24 когда часы переходят за 23 часа
        if (hour < 10) Serial.print(F("0"));  //печать 0 перед часом если меньше 10
        Serial.print(hour);                   // печать скоректируемой переменной час
        Serial.print(F(":"));
        if (gps.time.minute() < 10) Serial.print(F("0"));
        Serial.print(gps.time.minute());

        Serial.print(F("   Спутники= "));
        Serial.print(gps.satellites.value());

        Serial.print(F("   Высота= "));
        Serial.print(gps.altitude.meters());

        Serial.print(F("   Угол направления="));
        Serial.print(gps.course.deg());

        Serial.print(F("   скорость="));
        Serial.println(gps.speed.kmph());



        lcd.setCursor(6, 0);                      // Устанавливаем курсор на 5 строку и 1.
        if (gps.date.day() < 10) lcd.print("0");  //печать 0 перед месяцом если меньше 10
        lcd.print(gps.date.day());                // месяц
        lcd.print(F("/"));
        if (gps.date.month() < 10) lcd.print(F("0"));  //печать 0 перед часом если меньше 10
        lcd.print(gps.date.month());                   // выводим дату
        lcd.print(F("/"));
        lcd.print(gps.date.year());  // год

        lcd.setCursor(7, 1);            // Устанавливаем курсор на 5 строку и 1.
        if (hour < 10) lcd.print("0");  //печать 0 перед месяцом если меньше 10
        lcd.print(hour);                // месяц
        lcd.print(F(":"));
        if (gps.time.minute() < 10) lcd.print(F("0"));  //печать 0 перед часом если меньше 10
        lcd.print(gps.time.minute());                   // выводим дату
        lcd.setCursor(6, 2);
        lcd.print(gps.satellites.value());  //кол-чество спутн
        lcd.setCursor(2, 3);
        lcd.print(gps.altitude.meters());  //Высота
        lcd.setCursor(12, 2);
        lcd.print(gps.course.deg());  //Угол направления
        lcd.setCursor(14, 3);
        lcd.print(gps.speed.kmph());  //Скорость
      }
    }
}

Написал скетч отображения Gps даты, времени, кол-ва спутников, высоты ,скорости и угла направления на lsd дисплее. Но почему то данные скорости и угла очень редко обновляются при движении. Сможет ли кто подсказать в чем причина?

А по мне так - не редко, нормально для такого случая.

Переходите на протокол UBX…

Объясните подробнее что значит для токого случая ? много показателей выводится поэтому тормозит?

Да с чего вы взяли, что тормозит?

когда едешь на авто спутников больше 8 штук а скорость не меняется или меняется раз в 5 минут а то и реже .

удалил все кроме скорости и угла . Вечером на авто поеду посмотрю есть ли разница.

Нутк… Подключите к ноутбуку, через u-center проверьте как там скорость ловит блоха. Ардуина не виновата, если апдейты редко идут.

Удалил со сетча почти все . оставил лишь количество спутников и скорость. Проехал с этим на машине, а скорость все равно очень редко меняется. Подскажите пожалуйста может я какую то команду не прописал или купленный GY-NEO6MV2 не годится в роли спидометра?


#include <TinyGPSPlus.h>     //Библиотека GPS модуля
#include <SoftwareSerial.h>  //Библиотека для подключения пинов RX TX к любым назначеным  контактам

static const int RXPin = 4, TXPin = 3;
static const uint32_t GPSBaud = 9600;

TinyGPSPlus gps;  //Создаём объект gps класса TinyGPSPlus.

// The serial connection to the GPS device
SoftwareSerial ss(RXPin, TXPin);
int hour;     // обЪявление переменной час
int GMT = 5;  // обЪявление переменной часовой пояс

//  Подключения дисплея
#include <Wire.h>                    // библиот для общения по I2C
#include <LiquidCrystal_I2C.h>       // библиот работы с символьным жк-дисплеем  по I2C
LiquidCrystal_I2C lcd(0x27, 20, 4);  // Устанавливаем характеристики дисплея

void setup() {
  Serial.begin(9600);  //задаем скорость общения по USB
  ss.begin(GPSBaud);   //задаем скорость c GPS модуллем

  lcd.init();       // инициализация ЖК дисплея
  lcd.backlight();  // Включаем подсветку дисплея
  // Печатаем оформление на  дисплее то что не меняется
  lcd.clear();  //
  lcd.print("Date");
  lcd.setCursor(0, 1);
  lcd.print("clock");
  lcd.setCursor(0, 2);
  lcd.print("spyt=");
  lcd.setCursor(9, 2);
  lcd.print("<=");
  lcd.setCursor(0, 3);
  lcd.print("H=");
  lcd.setCursor(9, 3);
  lcd.print("skor=");
  delay(1000);
}
void loop() {
  // This sketch displays information every time a new sentence is correctly encoded.

  while (ss.available() > 0) {    // ПРОВЕРКА ЕСТЬ ЛИИ ДАННЫЕ в порте
    if (gps.encode(ss.read())) {  // команда библиотеки TinyGPSPlus.h ОБРАБОТКА ДАННЫХ ИЗВЛЕЧЕНИЕ нужной информации

      if (gps.speed.isValid() && gps.satellites.isValid()) {
        Serial.print(F("   скорость="));
        Serial.print(gps.speed.kmph());
        Serial.print(F("   Спутники= "));
        Serial.println(gps.satellites.value());

        lcd.setCursor(14, 3);
        lcd.print(gps.speed.kmph());

        lcd.setCursor(6, 2);
        lcd.print(gps.satellites.value());  //кол-чество спутн
      }
    }
  }
}


ну вообще любой GPS слабо подходит к роли спидометра именно из-за задержек. Но так чтобы раз в пять минут обновлялось - это ненормально.

Может у вас чтение постоянно с ошибками идет, поэтому крайне редко собираются валидные данные? Или модуль реально ничего не ловит?