現在、arduino uno で 2 つの異なるシリアル ポート (gsm 用 (2,3) と gps 用 (8,9)) を使用しようとしています。このリンクの両方を試しました。
1) arduino-uno-with-multiple-software-serial-devices
2) Arduinoでソフトウェアシリアルを使用して2ポート受信。
しかし、何も機能していないようです。シリアルモニターには何も表示されませんでした。
アップデート
gps とシリアル ポートのライブラリを AltSoftSerial と NeoSWSerial に変更しました。例で使用すると、どちらも問題なく動作しますが。しかし、両方のライブラリを実装してコードを実行すると、シリアル モニターに結果が表示されません。
#include <NMEAGPS.h>
#include <GPSport.h>
#include <AltSoftSerial.h>
AltSoftSerial sim900a;
NMEAGPS gps; // This parses the GPS characters
gps_fix fix;
void setup()
{
Serial.begin(9600);
sim900a.begin(9600);
gpsPort.begin(9600);
}
void loop()
{
while (gps.available(gpsPort))
{
fix = gps.read();
if (fix.valid.location)
{
Serial.println();
Serial.print("Latitude= ");
Serial.print(fix.latitude(), 6);
Serial.print(" Longitude= ");
Serial.println(fix.longitude(), 6);
sendData = 1;
}
else
{
sendData = 0;
}
}
if(sendData == 1)
{
//do stuffs
delay(5000);
}
}
P/S: listen() メソッドを使用して各ポートのオンとオフを既に試しましたが、意図したとおりに機能していないようです。どんな助けでも大歓迎です。ありがとうございました。