GPS-модуль Значение Serial.begin
Я разобрал дрон и нашел модуль GPS. Я хочу использовать его. Я не нашел никакой информации об архитектуре и значении Serial.begin
, которое мне нужно использовать. Смогу ли я сломать его, если попробую разные значения Serial.begin
, такие как 4800, 9600 и разные типы архитектуры, такие как NMEA, с TinyGPS?
Модуль: https://www.aliexpress.us/item/3256805691773977.html
Я попробовал этот скетч, и ss.available()
постоянно ложный, почему нет доступных символов?
#include <SoftwareSerial.h>
#include <TinyGPS.h>
/* Этот пример кода демонстрирует обычное использование объекта TinyGPS.
Для этого требуется использование SoftwareSerial и предполагается, что у вас есть
Устройство GPS с последовательным портом 4800 бод, подключенное к контактам 4(rx) и 3(tx).
*/
TinyGPS gps;
SoftwareSerial ss(4, 3);
void setup()
{
Serial.begin(115200);
ss.begin(4800);
Serial.print("Simple TinyGPS library v. "); Serial.println(TinyGPS::library_version());
Serial.println("by Mikal Hart");
Serial.println();
}
void loop()
{
bool newData = false;
unsigned long chars;
unsigned short sentences, failed;
// For one second we parse GPS data and report some key values
for (unsigned long start = millis(); millis() - start < 1000;)
{
while (ss.available())
{
char c = ss.read();
// Serial.write(c); // uncomment this line if you want to see the GPS data flowing
if (gps.encode(c)) // Did a new valid sentence come in?
newData = true;
}
}
if (newData)
{
float flat, flon;
unsigned long age;
gps.f_get_position(&flat, &flon, &age);
Serial.print("LAT=");
Serial.print(flat == TinyGPS::GPS_INVALID_F_ANGLE ? 0.0 : flat, 6);
Serial.print(" LON=");
Serial.print(flon == TinyGPS::GPS_INVALID_F_ANGLE ? 0.0 : flon, 6);
Serial.print(" SAT=");
Serial.print(gps.satellites() == TinyGPS::GPS_INVALID_SATELLITES ? 0 : gps.satellites());
Serial.print(" PREC=");
Serial.print(gps.hdop() == TinyGPS::GPS_INVALID_HDOP ? 0 : gps.hdop());
}
gps.stats(&chars, &sentences, &failed);
Serial.print(" CHARS=");
Serial.print(chars);
Serial.print(" SENTENCES=");
Serial.print(sentences);
Serial.print(" CSUM ERR=");
Serial.println(failed);
if (chars == 0)
Serial.println("** No characters received from GPS: check wiring **");
}
@drMAIN, 👍0
Обсуждение1 ответ
Модуль GPS, к которому вы подключаетесь, имеет двойной режим UART-I2C. Вы переключаетесь между этими двумя режимами путем (де)пайки резисторов. Сначала проверьте, в каком режиме находится модуль.
Большинство GPS в наши дни работают со скоростью 9600 бод в режиме UART. Попробуйте и это.
- GPS-модуль uBlox Neo 6M не отвечает
- TinyGPS не дает долготу, широту и другие данные
- последовательная передача данных на GPS-экране duinopeak
- GPS-модуль не работает с датчиком
- Могу ли я объединить ультразвуковой датчик и GPS вместе?
- Модуль GPS выводит вопросительные знаки в последовательном окне
- Neo 6m выводит что-то, что я как нуб не могу понять
- Получение «Открыть сбой питания GPS» на модуле SIM808
Нет, модуль не сломается из-за неправильной скорости передачи данных., @chrisl
спасибо, а что насчет протокола?, @drMAIN
Что ты имеешь в виду? Хотите получить объяснение протокола модулей? Мы также можем найти в Google только техническое описание модуля. Без номера детали это тоже невозможно. Хотя такие модули часто отправляют удобочитаемые данные (в формате ASCII) по последовательному порту. Таким образом, вы можете просмотреть данные в последовательном мониторе и проверить, как их читать. Это то, что вам нужно проверить самостоятельно (у нас нет вашего модуля), @chrisl
Вероятно, хорошее и четкое изображение этого GPS-модуля помогло бы. Кстати, модули GPS, с которыми я работал, начинают работать либо на 9600, либо на 15200. Если вы хотите узнать о GPS, возможно, лучше приобрести заведомо хороший GPS-модуль от таких компаний, как SparkFun или adafruit. Любой поставщик/производитель имеет хорошее присутствие в Интернете, поддержку и сообщество. Все хорошие ресурсы для людей с большим количеством вопросов., @st2000
Кстати, последовательные протоколы, такие как RS232, вероятно, существовали еще до вашего рождения (без обид). В те времена, когда несколько вещей должны были быть всем для всех. Его назвали «стандартом, которого нет». Тем не менее, основными регуляторами являются скорость, количество бит данных, количество стоповых битов и четность. Вы должны быть в состоянии возиться со всем этим, не беспокоясь о повреждении того, что подключено. О чем вам следует беспокоиться: истинное напряжение RS232 колеблется от -12 В до 12 В. Это, безусловно, станет поводом для тревоги. Но большинство Arduino выдают RS232 как импульсы с напряжением от 0 до 5 В или от 0 до 3 В., @st2000
ок, спасибо, последнее: модуль GPS подключен правильно, но в библиотеке **SoftwareSerial** нет данных, я изменил вопрос, почему это происходит, должен ли я передать некоторые данные на контакт tx модуля перед получением данные на приеме?, @drMAIN
Как вы подключили модуль? Обычно для последовательных соединений вы подключаете контакт RX Arduino к контакту TX модуля и наоборот., @StarCat
я сделал это, и это не сработало, возможно, мне нужно передать некоторые данные модулю, прежде чем он сможет запуститься, @drMAIN