2016-08-04 26 views
2

私はハードウェアを試しているプログラマーですArduino Uno R3 + SIM900

私はオンラインで購入したSIM900シールドを接続しようとしています。 私はSIMシールドとArduino UNOを接続するためのチュートリアルをたくさん行ってきました。

さて、それほどうまくいきません。

私はそれにロックされていないシムを入れて、netlight ledは3秒で3秒間点滅し、ネットワークが見つかったことを意味します。

多くの人が示しているように、ピンをD7とD8に設定しました。 また、9vの電源と1Aを使用しています。

しかし、単純な基本的なサンプルコードを実行しようとすると、正常に実行されません。

私は、このサンプルコードを実行します。

#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; 
    } 
} 

その後、私は を選択19200のボーシリアルモニタで

AT

を入力し、それがこの enter image description hereを印刷します (2つ?)

コマンドが送信されないように思える...ここ

は助けてください、私は enter image description here enter image description here

を構築しているかのものです! 私は何が間違っていますか?

+0

2 A電源を使用することになっています。しかし、あなたはモジュールで間違ったボーレートを使用している可能性が最も高いです。 GPRS.begin()の9600と115200を試してください – TisteAndii

+0

ATの後にCR/LFを送信していることを確認してください。ときには、あなたのGSMモジュールが特定のボーレートに設定されている場合は、AT&Tを2-3回実行することができます。自動ボーレートを実行し、同じ応答を受信します。また、@TisteAndii – HallMark

答えて

1

私はそれを修正しました!

私は私のGSMライブラリ(ライブラリフォルダにあります)に行きました。そして、GSM.cppでrxとtxピンを7と8に変更しました。 助けてくれてありがとう!

+0

からの提案を試してみる価値があります。これは最高の解決策ではなく、どのGSMライブラリで話していますか? sim900の1つ?もしそうなら、それはあなたが任意のピンのためのあなたのGSMモジュールのためのソフトウェアシリアルを作成することができます、ソースコードを変更する必要はありません。 – Ouss4

関連する問題