2012-04-26 13 views
2

ArduinoでATコマンドの出力をキャプチャするにはどうすればよいですか?ArduinoでATコマンドの出力を読み取るにはどうすればよいですか?

私はArduino Uno R3にGSMシールドを使用しています。私はすべてのATコマンド(they can be seen here)を持っており、端末を使用して出力を取得すれば、それらを入力することができます。しかし、結果の出力をコードでどのようにキャプチャできますか?以下のコードは私が試したことを示していますが、うまくいきません。特に私がアナログ入力を取得してその結果を印刷しようとするところでは。

#include <SoftwareSerial.h> 

SoftwareSerial mySerial(7, 8); 

void setup() 
{ 
    char sensorValue[32] =""; 
    Serial.begin(9600); 
    mySerial.begin(9600); 
    Serial.println("\r"); 

    //Wait for a second while the modem sends an "OK" 
    delay(1000);      

    //Because we want to send the SMS in text mode 
    Serial.println("AT+CMGF=1\r");  
    delay(1000); 

    mySerial.println("AT+CADC?");  //Query the analog input for data 
    Serial.println(Serial.available());  
    Serial.println(Serial.read()); //Print out result??? 

    //Start accepting the text for the message 
    //to be sent to the number specified. 
    //Replace this number with the target mobile number. 
    Serial.println("AT+CMGS=\"+MSISDN\"\r");  


    delay(1000); 
    Serial.println("!"); //The text for the message 
    delay(1000); 
    Serial.write(26); //Equivalent to sending Ctrl+Z 
} 

void loop() 
{ 
    /* 
    if (mySerial.available()) 
    Serial.write(mySerial.read()); 
    if (Serial.available()) 
    mySerial.write(Serial.read()); 
    */ 
} 

私は出力を得る:+ CADC AT = 1

+ CMGF AT

? 21 13

または+ CADC AT + CMGF = 1

AT

? 18 65

かかわらず、私のアナログソースの変更の

答えて

2

はSoftwareSerial read機能hereのドキュメントを見てみましょう。

GSMデバイスのシリアルインターフェイスから読み込むと、バッファに読み込まれるバイトがあることは間違いありません。

mySerial.read()-1(バイトが利用できません)を返す可能性があります.ArduinoはGSMデバイスがシリアルポートで何かを提供する前にそのコードを実行するためです。

受信バイトのシリアルインターフェイスをテストするには、available関数(ドキュメントhere)を使用する必要があります。無限の待機を避けるために、タイムアウトとともに使用することができます。

シリアル操作(読み取り、書き込み、タイムアウト、遅延など)を処理するために、別のclassを書くことをお勧めします。

また、私はArduinoのGPRSドライバを一度書きました。 GPRSデバイスに余分のコンデンサを取り付け、出力電流が2Aを超える電源を使用する必要がある電源装置に問題がありました。

+0

私はちょっと違った方法でコードを作り直して読み込みましたが、ちょうど入力したコマンドが戻ってきましたが、コマンドが返す結果を得るにはどうしたらいいですか? – BOMEz

+0

あなたは可用性をテストし、myserialから読んでください。 –

関連する問題