日学一技003:玩UNO的时候,这是几点,我在哪里?

网友投稿 2019-10-25 13:17

你吃下了文刀君投喂的第11斤食物。你胖了,也变强了。



https://cdn.china-scratch.com/timg/191027/131G42540-0.jpg

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口,秒脉冲输出

https://cdn.china-scratch.com/timg/191027/131G55154-1.jpg

3.2.模块与UNO接线方法

  • VCC-3.3V

  • TXD-任意一个digital引脚,例如12

  • RXD-任意一个pwm引脚,例如11

  • GND-任意一个GND

  • PPS-不用接

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,,,,,,,······

--end--

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com