Arduino Uno R3 + SIM900
问题描述:
我是一位尝试硬件的程序员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
好像不被发送的命令......
请帮助! 我在做什么错?
答
我修好了!
我进入了我的GSM库(位于库文件夹中),并在GSM.cpp中将rx和tx针脚相应地更改为7和8。 感谢您的帮助!
+0
这不是最好的解决方案,你在谈论哪个GSM库? sim900吗?如果是这样,它允许您为任何引脚创建一个适用于您的GSM模块的软件序列,无需更改源代码。 – Ouss4
你应该使用2 A的供应。但是你仍然很可能在模块上使用错误的波特率。尝试9600和115200,在'GPRS.begin()' – TisteAndii
确保您在AT之后发送CR/LF。有时你的GSM模块被设置为特定的波特率,在这种情况下,你可以做AT \ r 2-3次,然后它会做自动波特率,你会收到OK响应。另外值得试试@TisteAndii的建议 – HallMark