2016-08-04 125 views
2

我是一位尝试硬件的程序员Arduino Uno R3 + SIM900

我试图连接我在网上购买的SIM900屏蔽。 所以我遵循了很多教程来将SIM屏蔽与Arduino UNO连接起来。

嗯,它不太好。

我已经把一个解锁的SIM卡放在里面,并且网络指示灯在3秒内闪烁3次,这意味着它找到了网络。

我也设置了针脚D7和D8,正如很多人所表示的。 我也使用1A电源的9v。

但是,当我尝试运行一个简单的基本示例代码时,它们不会像往常一样执行。

我运行这个例子的代码:

#include <SoftwareSerial.h> 

SoftwareSerial GPRS(7, 8); 

unsigned char buffer[64]; // buffer array for data receive over serial port 
int count=0;    // counter for buffer array 

void setup() 
{ 
    GPRS.begin(19200); 
    Serial.begin(19200); 
} 

void loop() 
{ 
    if (GPRS.available()) 
    { 
    while(GPRS.available()) 
    { 
     buffer[count++]=GPRS.read(); 
     if(count == 64)break; 
    } 
    Serial.write(buffer,count); 
    clearBufferArray(); 
    count = 0; 
    } 
    if (Serial.available()) 
    GPRS.write(Serial.read()); 
} 

void clearBufferArray() 
{ 
    for (int i=0; i<count;i++) 
    { 
    buffer[i]=NULL; 
    } 
} 

该I型

后AT

在串行监视器

与19200个波特选择 和它打印这个 enter image description here (Two ??)

好像不被发送的命令......

这里是我有东西建 enter image description here enter image description here

请帮助! 我在做什么错?

+0

你应该使用2 A的供应。但是你仍然很可能在模块上使用错误的波特率。尝试9600和115200,在'GPRS.begin()' – TisteAndii

+0

确保您在AT之后发送CR/LF。有时你的GSM模块被设置为特定的波特率,在这种情况下,你可以做AT \ r 2-3次,然后它会做自动波特率,你会收到OK响应。另外值得试试@TisteAndii的建议 – HallMark

回答

1

我修好了!

我进入了我的GSM库(位于库文件夹中),并在GSM.cpp中将rx和tx针脚相应地更改为7和8。 感谢您的帮助!

+0

这不是最好的解决方案,你在谈论哪个GSM库? sim900吗?如果是这样,它允许您为任何引脚创建一个适用于您的GSM模块的软件序列,无需更改源代码。 – Ouss4