UNO+ATGM336H: Arduino实现gps信号采集

1.结果预期

在串口监视器中看到NMEA1083形式的实时gps数据

2.用到的设备

  • Arduino UNO开发板
  • 中科微电子ATGM336H模块
  • 天线G275(直接用焊接、机械扣等方式接到ATGM336H上)

3.接线方法

3.1.gps模块引脚简介

  • VCC:I口,模块电源输入,支持2.7~3.6V,峰值小于100mA的电源输入
  • TXD:O口,NMEA1083的导航数据输出
  • RXD:I口,交互命令输入,接收配置命令
  • GND:I口,不必解释
  • PPS:O口,秒脉冲输出

UNO+ATGM336H: Arduino实现gps信号采集_第1张图片

3.2.模块与UNO接线方法

  • VCC-3.3V
  • TXD-任意一个digital引脚,例如12
  • RXD-任意一个pwm引脚,例如11
  • GND-任意一个GND
  • PPS-不用接
    UNO+ATGM336H: Arduino实现gps信号采集_第2张图片

4.Arduino程序代码

非常简单,直接写出接收到的数据即可。注意byte gpsData = ss.read()取值为0~255,而Serial.write(gpsData);输出ASCII码对应的字符。

#include  
SoftwareSerial ss(12, 11); 

void setup()
{   
  Serial.begin(9600); 
  ss.begin(9600);   
} 

void loop()
{  while (ss.available() > 0)
  { 
    byte gpsData = ss.read(); 
   Serial.write(gpsData); 
  }
}

5.运行结果

打开串口监视器,会收到NMEA1083格式下的数据。每秒发送一个数据包,相邻字符发送间隔由波特率决定。以$打头的大写字母作为标志,代表之后跟着的数据含义。煮个栗子:$GNGGA,之后的前六个数据表示时间:

$GNGGA,104007······

其含义为:UTC时间(本初子午线时间)为10:40:07。接收不到信号的时候(例如在室内),会表现为:

$GNGGA,······

看懂了就给个赞呗~

你可能感兴趣的:(Arduino)