亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

如何在 Arduino 中使用 NMEA-0183

组件和用品

Arduino UNO
× 1
RS422 / RS485 屏蔽
× 1

关于这个项目

NMEA-0183 是一种电气标准,用于连接船舶和船只中的 GPS、SONAR、传感器、自动驾驶装置等。与较新的 NMEA 2000 标准(基于 CAN)不同,NMEA 0183 基于 EIA RS422(一些较旧和/或简单的系统使用 RS-232 或单线)。

我想向您展示如何将 Arduino UNO(或任何其他 Arduino)连接到任何具有差分输出的 NMEA-0183 设备。尽管标准要求隔离输入和输出,但使用具有隔离接口的 RS422/RS485 Arduino 扩展板很有用。

与 NMEA 0183 的连接

在下图中,您可以看到具有差分输出的典型设备。端子为 NMEA OUT+ 和 NMEA OUT- 或 TX+ 或 TX-。 NMEA IN+ 和 NMEA IN- 线是可选的。

如果您的设备只有一根传输线(很可能标有 TX 或 NMEA OUT 或类似的东西),那么您的设备使用 RS-232 协议。在这种情况下,您将需要一个简单的 RS232 转换器。

跳线设置

  • UART RX 到位置 2
  • UART TX 到位置 3
  • 电压到 5V 位置

拨码开关设置

固件

您可以为 Arduino 找到许多不同的 NMEA-0183 软件堆栈。一个很好的解决方案是 Justin R Cutler 的 NMEA 库

https://github.com/jrcutler/NMEA0183

需要将软件UART的引脚更改为引脚2和3! 关心 那个 波特率 评分 软件 串口 相同 作为 你的 NMEA 设备 - 典型 4800 波特率。

试运行

编译和上传后,程序将解码传入的 NMEA 协议。您可以打开串行监视器以查看解码的协议。

如果您家里没有 NMEA 设备,您也可以使用 PC 上的模拟器和一个简单的 USB 转 RS485 适配器而不是真正的设备。

代码

  • NMEA 0183 演示
NMEA 0183 演示Arduino
解析NMEA 0183协议
#include //匹配Zihatec RS422/RS485 shieldSoftwareSerial gps(2, 3);NMEA0183 nmea;void setup(){ while (!Serial); Serial.begin(115200); gps.begin(4800); Serial.println("NMEA0183 解析器测试");}void loop(){ if (gps.available()) { char c =gps.read(); if (nmea.update(c)) { Serial.print("NMEA0183 句被接受("); Serial.print(nmea.getFields()); Serial.print(" fields):"); Serial.write(nmea.getSentence()); Serial.println(); } }}

制造工艺

  1. C# 队列示例:什么是 C# 队列以及如何使用?
  2. 如何破解红外遥控器
  3. 使用 Arduino 和 Android 设备控制 Roomba 机器人
  4. 如何将 Arduino Mega 与 NEO-6M GPS 模块连接
  5. 如何使用 DHT11 在 Blynk 上读取温度和湿度
  6. 使用热敏电阻有多容易?!
  7. 如何用 Arduino 制作音乐
  8. 如何在 Arduino 中使用 Modbus
  9. 带有 Arduino 的自动设备测试仪
  10. HID-Compliant UPS with Arduino
  11. Arduino with IR Sensor
  12. 如何使用刀具磨床