Нет данных от U-Blox Neo-6M
Я пытаюсь заставить модуль Neo-6M работать с Arduino Uno, но он просто не передает никаких данных. Он получает 3,3 В.
Я пытался измерить ампер и получил ноль, поэтому я боюсь, что модуль может сломаться.
Проводка Нео-6М:
Проводка Arduino (питание):
Проводка Arduino (данные):
Код Arduino:
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
/*
Этот образец скетча демонстрирует обычное использование объекта TinyGPS++ (TinyGPSPlus).
Он требует использования SoftwareSerial и предполагает, что у вас есть
Устройство GPS с последовательным интерфейсом 4800 бод, подключенное к контактам 4 (rx) и 3 (tx).
*/
static const int RXPin = 4, TXPin = 3;
static const uint32_t GPSBaud = 9600;
// Объект TinyGPS++
TinyGPSPlus gps;
// Последовательное соединение с устройством GPS
SoftwareSerial ss(RXPin, TXPin);
void setup()
{
Serial.begin(9600);
ss.begin(GPSBaud);
Serial.println(F("DeviceExample.ino"));
Serial.println(F("A simple demonstration of TinyGPS++ with an attached GPS module"));
Serial.print(F("Testing TinyGPS++ library v. ")); Serial.println(TinyGPSPlus::libraryVersion());
Serial.println(F("by Mikal Hart"));
Serial.println();
}
void loop()
{
// Этот скетч отображает информацию каждый раз, когда новое предложение правильно закодировано.
while (ss.available() > 0)
if (gps.encode(ss.read()))
displayInfo();
if (millis() > 5000 && gps.charsProcessed() < 10)
{
Serial.println(F("No GPS detected: check wiring."));
while(true);
}
}
void displayInfo()
{
Serial.print(F("Location: "));
if (gps.location.isValid())
{
Serial.print(gps.location.lat(), 6);
Serial.print(F(","));
Serial.print(gps.location.lng(), 6);
}
else
{
Serial.print(F("INVALID"));
}
Serial.print(F(" Date/Time: "));
if (gps.date.isValid())
{
Serial.print(gps.date.month());
Serial.print(F("/"));
Serial.print(gps.date.day());
Serial.print(F("/"));
Serial.print(gps.date.year());
}
else
{
Serial.print(F("INVALID"));
}
Serial.print(F(" "));
if (gps.time.isValid())
{
if (gps.time.hour() < 10) Serial.print(F("0"));
Serial.print(gps.time.hour());
Serial.print(F(":"));
if (gps.time.minute() < 10) Serial.print(F("0"));
Serial.print(gps.time.minute());
Serial.print(F(":"));
if (gps.time.second() < 10) Serial.print(F("0"));
Serial.print(gps.time.second());
Serial.print(F("."));
if (gps.time.centisecond() < 10) Serial.print(F("0"));
Serial.print(gps.time.centisecond());
}
else
{
Serial.print(F("INVALID"));
}
Serial.println();
}
@freemanovec, 👍1
Обсуждение2 ответа
Лучший ответ:
Я запускаю свою плату от разветвителя Arduino 5 В, так как на плате есть регулятор напряжения с низким падением напряжения 3,3 В. Поэтому я считаю, что вам также следует отключить питание 5 В платы Arduino.
Мой потребляет около 60 мА от платы Arduino. Устройство должно получить исправление, а затем начать передачу по линии tx. Обозначается светодиодным индикатором «Фиксированное положение» на плате, мигающим раз в секунду (при скорости 9600 бод).
Удачи, имейте в виду, что эти платы стоят всего около 7,50 долларов на Amazon, закажите пару для душевного спокойствия. :)
Недостаточно запитать модуль напряжением 3,3 В. Вы также должны сдвинуть уровень сигнала TX 5 В Arduino до 3,3 В, что приемлемо для контакта RX модуля GPS, используя делитель напряжения 1: 2.
Вы также должны знать, что вывод 3,3 В Arduino не может подавать ток более 50 мА; ток потребления вашего модуля может иногда превышать этот предел (макс. 67 мА). Вместо этого подключите 5-вольтовый контакт Arduino (который может выдавать до 500 мА) к VCC модуля GPS через стабилизатор LM1117T 3,3 В:
Вход идет на контакт Arduino 5V, а выход — на NEO-6M VCC. Соедините все GND вместе.
Затем запустите базовый скетч следующим образом:
#include "SoftwareSerial.h"
SoftwareSerial gps(4,3);
void setup(){
Serial.begin(9600);
gps.begin(9600);
}
void loop(){
while (gps.available())
Serial.write(gps.read());
}
Это в основном заставит Arduino захватывать любые данные NMEA, отправленные NEO-6M, и пересылать их на последовательный монитор вашего ПК. Если вы получаете четкие данные, это означает, что вы установили связь с модулем. Затем вы можете загрузить исходный скетч.
Согласно всем этим руководствам по этому модулю, достаточно использовать 3,3 В от Arduino. Проблема в том, что он не потребляет ток от Arduino. И мне не нужно передавать какие-либо данные в модуль., @freemanovec
@freemanovec Неважно, нужно ли вам передавать; пока вы подключили модуль RX к Arduino TX, напряжение IDLE линии составляет 5 В, поступающее в модуль. Вы можете просто отсоединить провод, так как считаете, что он вам не нужен. Кроме того, если вы не изучали код библиотеки, вы не знаете, как она выполняет свою задачу; возможно, он передает данные, даже если это только для инициализации модуля., @SoreDakeNoKoto
По умолчанию для модуля ublox используется вывод NMEA с частотой 1 Гц, вы должны получить что-то даже без сигнала GPS. Предполагая, что никто не изменил значения по умолчанию в модуле. Если у вас есть способ подключить модуль к ПК (например, TTL-232RG-VREG3V3-WE), то хорошей идеей будет попытка подключения с помощью программного обеспечения ublox U-Center, которое позволяет легко изменить поведение по умолчанию при включении питания., @Andrew
- GPS-модуль uBlox Neo 6M не отвечает
- Модуль SIM808 GSM работает нормально, GPS не работает (нет сообщения о готовности GPS при включении питания)
- Как отправить данные из Arduino Uno с SIM900 GPRS в Firebase
- Модуль SIM808: команда определения местоположения GSM (AT+CIPGSMLOC=1,1) дает неверное значение после выполнения команды отправки сообщения (AT+CMGS=+91xxxxxxxx)
- Какие компоненты мне нужны маленького GPS-трекера
- Расчет GPS на очень короткие расстояния
- Ошибка инициализации GPS DFRobot [Arduino Uno, SIM808]
- Arduino Mega + SIM808 GSM + модуль GPS + программа включается без нажатия кнопки?
Я попробовал несколько образцов данных GPS Ardiuno и не смог получить никаких данных, но Я только что использовал это программное обеспечение 10lines и получил данные., @user50549