Benutzer Diskussion:Bernhard p361

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Hallo alle zusammen!!

Ich habe eine Frage zum Thema GSM-Shield. Ich habe mir vor kurzem das GSM- Shield "GPRS Shield V1.4" bestellt, das problem ist nur dass das nicht wirklich kompatible mit meinem Arduino Mega ist, und ich es nun über Kabelbrücken anschließen muss, genauso verwende ich eine externe Spannungsversorgung(d.h. nicht die vom Arduino Mega), doch sobald ich jetzt die Jumper des Shield auf HWSerial stelle und ich die Pins 0 und 1 des Shields mit den Pins RX0 und TX0 des Arduinos verbinde, und jetzt irgendeinen Sketch von Arduino für GSM auf meinen Arduino hochlade kommt in meinem Seriellen Monitor immer nur die Meldung "SMS Messages Sender"(komt auf den Sketch drauf an). Empfang hab ich einen guten und einen Pin verwende ich auch nicht. Das shield besitzt einen SIM900. Ich hoffe irgendjeman kann mir bei meinem Problem schnell weiterhelfen, da ich nicht mehr weiß was ich ausprobieren sollte.

CODE:

  1. include <GSM.h>
  1. define PINNUMBER ""

// initialize the library instance GSM gsmAccess; // include a 'true' parameter for debug enabled GSM_SMS sms;

void setup() {

 // initialize serial communications
 Serial.begin(9600);
 Serial.println("SMS Messages Sender");
 // connection state
 boolean notConnected = true;
 // Start GSM shield
 // If your SIM has PIN, pass it as a parameter of begin() in quotes
 while(notConnected)
 {
   if(gsmAccess.begin(PINNUMBER)==GSM_READY)
     notConnected = false;
   else
   {
     Serial.println("Not connected");
     delay(1000);
   }
 }
 Serial.println("GSM initialized");

}

void loop() {

 Serial.print("Enter a mobile number: ");
 char remoteNumber[20];  // telephone number to send sms
 readSerial(remoteNumber);
 Serial.println(remoteNumber);
 // sms text
 Serial.print("Now, enter SMS content: ");
 char txtMsg[200];
 readSerial(txtMsg);
 Serial.println("SENDING");
 Serial.println();
 Serial.println("Message:");
 Serial.println(txtMsg);
 // send the message
 sms.beginSMS(remoteNumber);
 sms.print(txtMsg);
 sms.endSMS(); 
 Serial.println("\nCOMPLETE!\n");

}

/*

 Read input serial
*/

int readSerial(char result[]) {

 int i = 0;
 while(1)
 {
   while (Serial.available() > 0)
   {
     char inChar = Serial.read();
     if (inChar == '\n')
     {
       result[i] = '\0';
       Serial.flush();
       return 0;
     }
     if(inChar!='\r')
     {
       result[i] = inChar;
       i++;
     }
   }
 }

}


Euer Berni


Bitte stelle die Frage im Forum!--andreas (Diskussion) 17:35, 31. Jan. 2016 (CET)


Mike J. (linuxmint_user)

Da das Forum heute kaputt ist antworte ich einfach mal in der Artikelsammlung.

Du überträgst die neue Firmware ja über UART und der ATmega328 hat nur einen UART den du zeitgleich nutzt um mit dem GSM-Shield zu kommunizieren und die neue Firmware zu flashen (UART Bootloader). Du müsstest also die Verbindung zwischen USRT von GSM einfach trennen wenn du eine neue Firmware flashst.

Gruß Mike