2016-08-04 161 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