【发布时间】:2015-07-12 10:39:28
【问题描述】:
我一直在尝试用 arduino 制作一个使用两个 gps 模块的设备。因此,一个发送 gps 线,另一个接收并将其当前位置与发送者的位置进行比较,一旦接收者距离发送者几米,一个 LED 指示灯将亮起,指示发送就在附近,如果您要离开发件人 LED 将关闭。所以我的问题是我无法弄清楚如何比较电线的接收值和当前值以准确工作。这就是我一直在努力的工作我不知道我是否会以错误的方式完成这个我不知道你是否可以做某种半径并使用它如果有人可以帮助我解决这个问题我将不胜感激。从发送方接收到的示例数据 Lat:12.76433041 Lon:-54.74539143 从接收方 Lat:12.76433854 Lon:-54.74539435。
int destLat;
int currLat;
int destLon;
int currLng;
currLat = gps.location.lat();
destLat = Lat;
currLng = gps.location.lng();
destLon = Lon;
bool AreSame(float currLat, float destLat)
if fabs(currLat - destLat) < EPSILON;
{
if fabs(currLng - destLon) < EPSILON;
digitalWrite (4, HIGH);
}
【问题讨论】:
-
您尚未描述您所看到的实际行为。此外,我认为您的 GPS 接收器无法可靠地解析“距离发送者几米”。
-
我已经看到 gps 可以在距离发件人几米的地方解析它。我收到的数据有 8 个小数点的精度,例如来自发送方 Lat:12.76433041 Lon:-54.74539143 来自接收方 Lat:12.76433854 Lon:-54.74539435
标签: gps arduino compare double floating-accuracy