serieller monitor at Komandos

Hallo an alle :slight_smile:

Ich möchte über einfache AT Befehle mit meinem GSM Shield Kommunizieren.

Einfache Befehle sind zBsp. "AT" dann müsste das GSM Shield über den Seriellen Ausgang OK zurück geben.

Das ganze Projekt soll einfach zeigen was die AT Komandos am GSM Shield auslösen und als Quasi Kontrolle Fungieren.

Es gibt da ja Bsp. im Netzt die dies ja ganz gut Bewerkstelligen.

siehe diesen.

#include <SoftwareSerial.h>

SoftwareSerial mySerial(9,10);

void setup()
{
mySerial.begin(9600); // the GPRS baud rate
Serial.begin(9600); // the GPRS baud rate
}

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

}

Warum wird mir wenn ich den Code wie folgt ändere nichts über den Seriellen Monitor ausgegeben ?

#include <SoftwareSerial.h>
SoftwareSerial mySerial(9, 10);

int SMS=6;
int taster=7;
int tasterstatus=0;

void setup()
{
mySerial.begin(9600);
Serial.begin(9600);
delay(100);
pinMode(SMS, OUTPUT);
pinMode(taster, INPUT);

}
void loop()
{
tasterstatus=digitalRead(taster);
if (tasterstatus == HIGH)
{
digitalWrite(SMS, HIGH);

mySerial.print("AT\r") ;
Serial.println("AT\r");
delay(50);

if (mySerial.available())
Serial.write(mySerial.read());
if (Serial.available())
mySerial.write(Serial.read());

hier müsste doch zurückgegeben werden was das GSm Modul geantwortet hat ?

delay (5000)
digitalWrite(SMS, LOW);

}
else
{
digitalWrite(SMS, LOW);
}
}

Code bitte in Code Tags </> posten.

Wenn tasterstatus HIGH ist, wird ständig "AT" gesendet, und nur einmal auf eine Antwort gewartet. Stattdessen sollte gewartet werden, bis die komplette Antwort gelesen wurde.

Eric_der_RICK:
Ich möchte über einfache AT Befehle mit meinem GSM Shield Kommunizieren.

Einfache Befehle sind zBsp. "AT" dann müsste das GSM Shield über den Seriellen Ausgang OK zurück geben.

Warum tippst du die Befehle dann nicht einfach in den seriellen Monitor der IDE?
(Mit dem funktionierenden Programm.)

Ansonsten:

Du willst asynchrone Kommunikation mit zwei Partnern haben und Tasten abfragen.
In diesem Kontext darfst du keine delays benutzen, wenn du willst das es funktioniert.

Selbst ein harmlos erscheinendes delay(1) zwingt loop eine Frequenz unter 1000 Hz auf,
ein delay(5000) ist... nicht besonders clever.

Was soll das delay in setup?
(Hier sind delays ok um einen sauberen Start zu garantieren, sollten aber dennoch einen Sinn erfüllen)