3

我有一个 arduino GSM shield 位于 arduino uno 的顶部。我有下面的代码。屏蔽只是显示它正在连接,但它从未显示它已连接。我想知道它为什么没有连接。我将不胜感激任何帮助。我正在使用 arduino 1.0.5 IDE。

#include <GSM.h>

#define PINNUMBER ""
GSM gsmAccess(true);
GSM_SMS sms;

void setup() {
    // initialize serial communications and wait for port to open:
    Serial.begin(9600);
    char code = 'X';
    while(true) {
        Serial.println("try Access");
        code=gsmAccess.begin("",true,false);
        Serial.println("\nAfter Access");

        if(code==GSM_READY){
          Serial.println("connected");
          break;
        }
        if(code==CONNECTING) {
          Serial.println("code is CONNECTING");
        } else {
          Serial.println(code);
          delay(1000);
        } 
    }
}
4

3 回答 3

2

您正在以异步模式启动调制解调器:

code=gsmAccess.begin("",true,false);

查看 GSMBegin 文档,您将始终获得 0 的返回值,这与我认为 3 的 GSM_READY 枚举类型不对应。尝试:

code=gsmAccess.begin("",true);
于 2014-06-16T12:48:13.950 回答
2

尝试将 9v 电池连接到它。对我来说解决了这个问题。我遇到过同样的问题。显然,gsm 盾牌耗电很大。有些电脑可以提供足够的东西,有些则不能。

于 2015-05-27T09:43:10.613 回答
0

我有同样的问题。我通过在 5 V 和 GND 之间连接一个 680 μF 电容器解决了这个问题。这只是一个临时解决方案,因为它会在连接电源时产生巨大的电流尖峰。更好的解决方案是连接外部电源或功能更强大的 USB 电源。

于 2016-03-06T23:03:21.223 回答