Arduino:Icomsat 1.1 GSM和Adafruit GPS,当我用软件串口连接GPS时,GSM关闭的原因是什么?

时间:2014-03-19 02:25:24

标签: gps arduino gsm

我试图用我的Arduino 1 R3连接两个盾牌。

盾牌是:    

  • 使用ICOMSAT 1.1屏蔽的GSM(http://imall.iteadstudio.com/im120417009.html
  •  
  • 带Adafruit GPS盾牌的GPS(adafruit产品:1272)
  • 如果我将这些模块分开使用它们很有效,当我将它们放在一起时,GSM模块无法启动,状态指示灯会关闭,并且仅启动电源。

    我阅读了很多论坛,似乎问题是softwareSerial,所以我尝试了这些解决方案:http://forums.adafruit.com/viewtopic.php?f=25&t=38764&hilit=gsm+gps&start=15

    =>使用AltSoftSerial,在GPS Shield的引脚9和RX之间建立桥接,并从TX切割引脚7.

    但它不起作用。

    这是一段代码

    #include <Adafruit_GPS.h>
    #include <GSM.h>
    #include <AltSoftSerial.h>
    
    
    #define PINNUMBER ""
    #define PMTK_SET_NMEA_OUTPUT_RMCONLY "$PMTK314,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0*29"
    #define PMTK_Q_RELEASE "$PMTK605*31"
    #define PMTK_SET_NMEA_UPDATE_1HZ  "$PMTK220,1000*1F"
    
    //GPS
    AltSoftSerial gpsSerial;  //rx, tx (softwareSerial is called in GSM.H)
    Adafruit_GPS GPS(&gpsSerial);
    
    //GSM
    GSM gsmAccess;
    GSM_SMS sms;
    
    void setup(){
       Serial.begin(9600);
       GPS.begin(9600);
       ...
    }
    
    void loop(){
    ...
    }
    

    如果我把GPS Shield的开关置于“Direct”,GSM开机,但我无法读取GPS数据。

    2 个答案:

    答案 0 :(得分:1)

    首先,您需要知道您不能同时使用两个软件序列。其次,icomsat使用D8和D9作为软件电源控制和复位,你不应该使用D9作为软件串行引脚。

    最好的方法是使用iteaduino mega 2560和iteaduino gps shield。

    http://imall.iteadstudio.com/development-platform/arduino/arduino-compatible-mainboard/im120410003.html

    http://imall.iteadstudio.com/im120417017.html

    将icomsat连接到UART1,并将gps连接到UART2。

    你可以用sim900的tinygps库和gsm库,你可以在icomsat网站的有用链接下找到gsm库。

    最诚挚的问候!


    Stan Lee

    硬件工程师

    Lizq@iteadstudio.com

    答案 1 :(得分:0)

    您可以使用AltSoftSerial和TinyGPSPlus在Arduino R3上创建一个可用的GPS和GSM系统。 这是一个项目链接 http://www.mallinson-electrical.com/shop/gpsgsm 希望这有帮助