如何将连接GPS模块(NEO-6m)与Arduino
在这个示例中,我将展示如何将GPS模块与Arduino UNO接口,并在LCD上显示经度和纬度数据。 需要的元件 Arduino mega 2560 u-blox NEO-6M GPS模块 Adafruit RGB背光LCD1602 Arduino IDE 原理及流程 1.有关GPS的信息 什么是GPS 全球定位系统(GPS)是由至少24颗卫星组成的基于卫星的导航系统。GPS在全球任何地方的任何天气条件下,一天24小时均可工作,无需支付订阅费或安装费。 GPS如何运作 GPS卫星每天在精确的轨道上绕地球一周两次。每颗卫星都传输唯一的信号和轨道参数,从而使GPS设备能够解码和计算卫星的精确位置。GPS接收器使用此信息和三边测量来计算用户的确切位置。本质上,GPS接收器通过接收发射信号所花费的时间来测量到每个卫星的距离。通过再测量几颗卫星的距离,接收器可以确定用户的位置并显示它。 要计算您的二维位置(经度和纬度)和轨迹运动,必须将GPS接收器锁定到至少3颗卫星的信号上。看到4个或更多卫星时,接收器可以确定您的3-D位置(纬度,经度和高度)。通常,GPS接收机将跟踪8颗或更多的卫星,但这取决于一天中的时间以及您在地球上的位置。 确定您的位置后,GPS单元可以计算其他信息,例如: 速度 轴承座 跟踪 旅行距离 到目的地的距离 GPS信号是什么信号? GPS卫星至少发送2个低功率无线电信号。信号按视线传播,这意味着它们将穿过云,玻璃和塑料,但不会穿过大多数固体物体,例如建筑物和山脉。但是,现代接收器更加敏感,通常可以在房屋中进行跟踪。 GPS信号包含3种不同类型的信息: 伪随机码是标识哪个卫星正在发送信息的ID码。您可以在设备的卫星页面上查看正在接收信号的卫星。 利用星历数据来确定卫星的位置,并提供有关卫星健康状况,当前日期和时间的重要信息。 年历数据会告诉GPS接收器一天中任何时候每个GPS卫星应该在哪里,并显示该卫星和系统中其他所有卫星的轨道信息。 2.下载并安装必需的库,以使GPS在Arduino IDE中正常工作 (i)SoftwareSerial库 (ii)TinyGPS库 你可以在下载区找到它。 3. NEO-6M GPS模块 NEO-6M GPS模块如下图所示。它带有一个外部天线,不带有插头。因此,您将需要焊接它。 NEO-6M GPS模块概述 NEO-6M GPS芯片 该模块的核心是u-blox的NEO-6M GPS芯片。它可以在50个频道上跟踪多达22颗卫星,并达到业界最高水平的灵敏度,即-161 dB跟踪,同时仅消耗45mA的电源电流。u-blox 6定位引擎还拥有不到1秒的首次定位时间(TTFF)。芯片提供的最佳功能之一是省电模式(PSM)。通过有选择地打开和关闭接收机的各个部分,可以降低系统功耗。这极大地降低了模块的功耗至11mA,使其适合于GPS手表等对功耗敏感的应用。NEO-6M GPS芯片的必要数据引脚被分拆为“ 0.1”间距接头,其中包括通过UART与微控制器通信所需的引脚。 注意:该模块支持从4800bps到230400bps的波特率,默认波特率为9600。 位置固定的LED指示灯 NEO-6M GPS模块上有一个LED,指示位置固定的状态。它会以不同的速率闪烁,具体取决于它所处的状态 无闪烁==>表示正在搜索卫星 每1秒闪烁一次-表示找到定位 3.3V LDO稳压器 NEO-6M芯片的工作电压为2.7至3.6V。但是,该模块带有MICREL的MIC5205超低压降3V3稳压器。逻辑引脚也可以承受5伏电压,因此我们可以轻松地将其连接到Arduino或任何5V逻辑微控制器,而无需使用任何逻辑电平转换器。 电池和EEPROM 该模块配有HK24C32两线串行EEPROM。它的大小为4KB,并通过I2C连接到NEO-6M芯片。该模块还包含一个可充电纽扣电池,可以用作超级电容器。 EEPROM和电池一起有助于保留电池支持的RAM(BBR)。BBR包含时钟数据,最新位置数据(GNSS或位数据)和模块配置。但这并不意味着永久数据存储。 由于电池保持时钟和最后位置,因此首次修复时间(TTFF)大大减少了1s。这允许更快的位置锁定。 没有电池,GPS总是冷启动,因此初始GPS锁定需要更多时间。接通电源后,电池会自动充电,并且在没有电源的情况下最多可以保留两周的数据。 引脚排列 GND是接地引脚,需要连接到Arduino的GND引脚。 TxD(发送器)引脚用于串行通信。 RxD(接收器)引脚用于串行通信。 VCC为模块供电。您可以将其直接连接到Arduino的5V引脚。 Arduino Uno Arduino是一个基于易于使用的硬件和软件的开源电子平台。Arduino开发板能够读取输入-传感器上的灯,按钮上的手指或Twitter消息-并将其转换为输出-激活电动机,打开LED并在线发布内容。您可以通过向板上的微控制器发送一组指令来告诉您该怎么做。为此,您可以使用Arduino编程语言(基于Wiring)和Arduino软件(IDE)(基于Processing)。 引脚排列 引脚说明 Arduino Uno是基于8位ATmega328P微控制器的微控制器板。与ATmega328P一起,它还包含其他组件,例如晶体振荡器,串行通信,稳压器等,以支持微控制器。Arduino Uno有14个数字输入/输出引脚(其中6个可用作PWM输出),6个模拟输入引脚,USB连接,电源桶插孔,ICSP插头和复位按钮。 通过使用Arduino编程中的pinMode(),digitalRead()和digitalWrite()函数,可以将14个数字输入/输出引脚用作输入或输出引脚。每个引脚均以5V工作,可提供或接收最大40mA电流,并具有一个20-50 KOhms的内部上拉电阻,默认情况下已断开连接。在这14个引脚中,有些引脚具有以下特定功能 串行引脚0(Rx)和1(Tx)==> Rx和Tx引脚用于接收和发送TTL串行数据。它们与相应的ATmega328P USB至TTL串行芯片连接。 外部中断引脚2和3 ==>这些引脚可以配置为在低值,上升沿或下降沿或值变化时触发中断。 PWM引脚3、5、6、9和11 ==>这些引脚通过使用AnalogWrite()函数提供8位PWM输出。 SPI引脚10(SS),11(MOSI),12(MISO)和13(SCK)==>这些引脚用于SPI通信。 内置LED引脚13 ==>此引脚与内置LED连接,当引脚13为高电平时– LED点亮,而当引脚13为低电平时,其熄灭。 有6个模拟输入引脚,每个引脚提供10位分辨率,即1024个不同的值。它们的电压范围为0至5伏,但可以通过将AREF引脚与模拟Reference()函数配合使用来提高此极限。 模拟引脚4(SDA )和引脚5(SCA )也用于通过Wire库进行TWI通信。 AREF ==>用于为具有AnalogReference()函数的模拟输入提供参考电压。 复位引脚==>使该引脚为低电平,可复位微控制器。 4. Arduino UNO和GPS模块的连接 如下所示将UBLOX的四个引脚连接到Arduino: GPS模块==> Arduino 接地==> GND TX ==>数字引脚(D3) RX ==>数字引脚(D4) Vcc ==> 3.3 V 在这里,我建议您使用外部电源为GPS模块供电,因为GPS模块正常工作的最低电源要求为3.3 V,而Arduino无法提供这么大的电压。 要提供电压,请使用USB TTL。 USB驱动(下载区可下载) 我在使用GPS天线随附的模块时发现的另一件事是,它无法在室内接收信号,因此我使用了该天线。 https://linxtechnologies.com/wp/product/sh-series-gps-antenna/ 要连接此天线,必须使用连接器: 5. JHD162a液晶屏 接地==> LCD模块的接地引脚。 Pin2(Vcc)==> LCD模块的电源(此引脚提供了+ 5V电源) **Pin3(VEE)==>**对比度调整引脚。这是通过将10K电位计的两端连接到+ 5V并接地,然后将滑块引脚连接到VEE引脚来完成的。VEE引脚上的电压定义了对比度。正常设置在0.4至0.9V之间。 **Pin4(RS)==>**寄存器选择引脚。JHD162A有两个寄存器,分别是命令寄存器和数据寄存器。RS引脚的逻辑高电平选择数据寄存器,RS引脚的逻辑低电平选择命令寄存器。如果我们将RS引脚设置为高电平并将输入输入到数据线(DB0至DB7),则该输入将被视为要在LCD屏幕上显示的数据。如果我们将RS引脚设为低电平并将输入信号馈送到数据线,则该命令将被视为命令(要写入LCD控制器的命令-如定位光标或清除屏幕或滚动)。 **Pin5(R / W)==>**读/写模式。该引脚用于在读写模式之间进行选择。该引脚上的逻辑高电平激活读取模式,而该引脚上的逻辑低电平激活写入模式。 **Pin6(E)==>**此引脚用于使能LCD模块。此引脚上的高电平到低电平信号将使能模块。 **Pin7(DB0)至Pin14(DB7)==>**这些是数据引脚。通过这些引脚将命令和数据馈送到LCD模块。 **Pin15(LED +)==>**背光LED的阳极。在5V电压下工作时,应将此引脚串联560欧姆电阻。在基于arduino的项目中,可以通过arduino板上的3.3V电源为背光LED供电。 **Pin16(LED-)==>**背光LED的阴极。 6. Arduino UNO和JHD162a LCD的连接 最好给GSM连接12V电源。 LCD Arduino VSS 地 VCC 5伏 VEE 10K电阻器 RS A0(模拟引脚) I/0 GND E A1 D4 A2 D5 A3 D6 A4 D7 A5 LED + VCC LED- 接地 7.代码 8.结果 最后 所有需要的文件在下载区均可找到。 via:https://create.arduino.cc/projecthub/ruchir1674/how-to-interface-gps-module-neo-6m-with-arduino-8f90ad?ref=platform&ref_id=424_popular___&offset=8