Pages: [1]   Go Down
Author Topic: Hilo GPRS en arduino mega  (Read 698 times)
0 Members and 1 Guest are viewing this topic.
Zaragoza
Offline Offline
Newbie
*
Karma: 0
Posts: 38
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Buenas, he puesto el modulo de GPRS de Cooking-hacks en el arduino Mega, he sacado los pines RX y TX al puerto serie 3 del arduino, para poder debugear el codigo bien.

No he conseguido transmitir las respuestas del serial 3 (ue deberia responder OK al comando AT) a serial de arduino, el modulo funciona correctamente cunaod lo alimento con una fuente externa y lo uso en modo gateway en un arduino UNO.
Desde el arduino mega tampoco hace correctamente el ATD.

Por lo que parece Serial3.available() nunca devuelve un valor mayor que 0.

Os dejo el codigo a ver is podeis echarme una mano:

int led = 13;
   int onModulePin = 2;        // the pin to switch on the module (without press on button)

   int timesToSend = 5;        // Numbers of calls to make
   int count = 0;
   
   char inData[20]={'\0'}; // Allocate some space for the string
   char inChar=-1; // Where to store the character read
   byte index = 0; // Index into array; where to store the character

   void testModule(){
   Serial.flush();
   Serial3.flush();
   }

   void switchModule(){
   Serial.println("Encendiendo el modulo");
   digitalWrite(onModulePin,HIGH);
   delay(2000);
   digitalWrite(onModulePin,LOW);
   }

char * serial_read(void) {
  Serial.println("entrando en serial_read");
 
    inData[0]=0;
    index=0;
   
    while (Serial3.available() > 0) // Don't read unless
                                   // there you know there is data
    {
      Serial.println("Serial3.available > 0");
        if(index < 19) // One less than the size of the array
        {
            inChar = Serial3.read(); // Read a character
            inData[index] = inChar; // Store it
            index++; // Increment where to write next
            inData[index] = '\0'; // Null terminate the string
        }
    }

    return inData;

}

   void setup(){

   Serial.begin(9600);                // the GPRS baud rate
   Serial3.begin(9600);
   Serial.println("Entrando en el setup");
   delay(2000);
   pinMode(led, OUTPUT);
   pinMode(onModulePin, OUTPUT);
   switchModule();                    // swith the module ON

   for (int i=0;i<5;i++){
      delay(5000);
   }
  Serial.println("Saliendo del setup");
   }

   void loop(){
   
   while (count < timesToSend){
      delay(1500);
      Serial.println("AT");
      Serial3.println(serial_read());
      Serial.println("Mandando AT+CREG");
      Serial3.println("AT+CREG?");
      Serial.println(serial_read());
      Serial.println("Mandando ATD666666666;");      // ********* is the number to call
      Serial3.println("ATD666666666;");      // ********* is the number to call
      delay(12000);
      Serial.println("Mandando ATH");              // disconnect the call
      Serial3.println("ATH");              // disconnect the call
         
      delay(5000);

      count++;
   }
   }
Logged

Pages: [1]   Go Up
Jump to: