sin9000 beantwortet einen Anruf

Hallo, ich kann einen Anruf mit meinem Arduino und meinem Sim9000 nicht annehmen

#include <SoftwareSerial.h>

SoftwareSerial SIM900(7, 8);
char message=0;

void setup() {
  SIM900.begin(19200);
  delay(25000);
  Serial.begin(19200);
  Serial.println("OK");
  digitalWrite(9, HIGH);
  delay(1000);
}

void Get_Call() {
 int incoming_char=0;
  incoming_char=SIM900.read();
  if(incoming_char==252)
  {
      SIM900.println("ATA\r\n");

      delay(5000000);
      SIM900.println("ATH");
  }
}

void loop() {
 if (SIM900.available()>0) {
   Get_Call();
   }
}

Ich würde gerne antworten, wenn ich einen Anruf bekomme

im voraus danke

Und wie willst du antworten ?

Hi

delay(5.000.000) ist Dein Ernst?
(die Punkte sind zur Verdeutlichung, wie groß diese Zahl wohl ist ... knappe zwei Monate Warten ...)

MfG

Es ist lang, aber so lang nun auch wieder nicht.

delay mit 5.000.000 Millisekunden sind 5000 Sekunden und das sind 83,33 Minuten und nicht 2 Monate.

Gruß Tommy

delay(5000000); Dies ist ein Beispiel
Ich kann warten, um ein Signal zu senden, um den Telefonanruf abzuschließen

void Get_Call() {
 int incoming_char=0;
  incoming_char=SIM900.read();
  if(incoming_char==252)
  {
   Serial.println("Phone");
   SIM900.println("ATA\r\n");

   while(Serial.read() != 'i') {
     delay(1000);
   }
   SIM900.println("ATH");
  }
}

Ich habe ein Problem, einen Anruf in meinem Code zu erkennen

 int incoming_char=0;
  incoming_char=SIM900.read();
  if(incoming_char==252)
  {

Hi

Achherje ... klar, Millisekunden, nicht SEKUNDEN (Kopf <-> Wand) ... sorry, war echt blöd :wink:

MfG

baldouine:
delay(5000000); Dies ist ein Beispiel
Ich kann warten, um ein Signal zu senden.....

Richtig, da kannst du warten.
Während dieser Zeit macht auch dein Controller nix außer WARTEN.

Und warum beantwortest du meine Frage in Post #1 nicht ?

HotSystems so möchte ich antworten:

if(incoming_char==252)
{
SIM900.println("ATA\r\n");

wenn meine Karte einen Anruf erhält => if(incoming_char==252)

Ich antworte mit diesem Befehl => SIM900.println("ATA\r\n");

Hi

Was für Zeichen bekommst Du denn aktuell?
Denke, da wird nicht nur dieses eine Zeichen kommen und/oder Du prüfst das falsche Zeichen auf Gleichheit.
Hast Du Dir die empfangenen Zeichen ausgeben lassen?

MfG

baldouine:
HotSystems so möchte ich antworten:

if(incoming_char==252)
{
SIM900.println("ATA\r\n");

wenn meine Karte einen Anruf erhält => if(incoming_char==252)

Ich antworte mit diesem Befehl => SIM900.println("ATA\r\n");

Ok, du möchtest also mit einer SMS auf eine empfangene SMS antworten ?
Wie kommst du darauf, dass du 252 empfängst ?
Hast du dir den Inhalt von incoming_char mal mit dem serial Monitor angesehen ?

Nein, ich möchte keine SMS, sondern einen Anruf erhalten!

Ja, ich habe beobachtet was ich mit incoming_char bekomme, Ich habe nichts ...
Am seriellen Ausgang habe ich die Meldung "ring"

Dann funktioniert das so auch nicht.
Du kannst nicht auf einen Wert vergleichen, wenn da keiner vorhanden ist.
Lies dir mal das Datenblatt deines SIM900 durch, wie du einen einfachen Anruf mit dem Arduino auswerten kannst.
Ich habe das bisher nicht gemacht, außer am normalen Handy. :wink:
Im Datenblatt steht da bestimmt was.

Und du möchtest dann auf den Anruf mit Sprache reagieren ?

Und in welcher Variablen steht denn "ring" ?