码迷,mamicode.com
首页 > 其他好文 > 详细

Arduino 3G shield using SoftwareSerial to control

时间:2015-08-30 00:42:45      阅读:264      评论:0      收藏:0      [点我收藏+]

标签:

 

On the 3G shield, by default the power pin is on D8 and reset pin is on D9. Make it HIGH then it works.

 

if you want to play this 3G shield using SoftwareSerial on Arduino, 

Try this code:

/*

Change UART control ports from Tx0 / Rx1 to Tx2 / Rx3  using SoftwareSerial
And reserve Tx0 / Rx1 for debugging

*/

#include <SoftwareSerial.h>


#define rxPin 6
#define txPin 7

#define power_pin 8
#define reset_pin 9

SoftwareSerial mySerial(rxPin, txPin); // RX, TX

char AtCommand[] = "ATI\r";
void setup()  
{
 // Open serial communications and wait for port to open:
 Serial.begin(115200);
 while (!Serial) {
   ; // wait for serial port to connect. Needed for Leonardo only
 }
  pinMode(rxPin, INPUT);
  pinMode(txPin, OUTPUT);
  
   // power on 3G module automatically
  pinMode(power_pin, OUTPUT);
  digitalWrite(power_pin, HIGH);  
  
  delay(5000);
  
  Serial.println(AtCommand);

 
  // set the data rate for the SoftwareSerial port
  mySerial.begin(115200);
  mySerial.println(AtCommand);
  //mySerial.write(AtCommand);
}



void loop() // run over and over
{
  if (mySerial.available())
  {
    Serial.write(mySerial.read());
  }
  if (Serial.available())
  {
    mySerial.write(Serial.read());
  }
}

 

 

if you play with this 3G shield, and you want to enable power at the setup, and change the baud rate from 115200 to 9600 on your arduino when communicating with chip SIM5126E.

 

Try this code:

/*

Change UART control ports from Tx0 / Rx1 to Tx2 / Rx3  using SoftwareSerial
And reserve Tx0 / Rx1 for debugging

*/
#include <SoftwareSerial.h>

#define rxPin 6
#define txPin 7
#define baudrate 9600

#define power_pin 8
#define reset_pin 9


SoftwareSerial mySerial(rxPin, txPin); // RX, TX

char AtCommand[] = "ATI\r";
void setup()  
{
  // Open serial communications and wait for port to open:
  Serial.begin(baudrate);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }
  pinMode(rxPin, INPUT);
  pinMode(txPin, OUTPUT);
  
  Serial.println(AtCommand);

  // set the data rate for the SoftwareSerial port
  Serial.println("wait 5s for modem to wake up");
  
  // power on 3G module automatically
  pinMode(power_pin, OUTPUT);
  digitalWrite(power_pin, HIGH);
  
  delay(5000);
  mySerial.begin(115200);
  mySerial.println("AT+IPR=9600\r\n"); // chnage baudrate to 9600 baud
  
  Serial.println("Changing baudrate");
  mySerial.begin(baudrate);
  mySerial.println(AtCommand);
}

void loop() // run over and over
{
  if (mySerial.available())
  {
    Serial.write(mySerial.read());
  }
  if (Serial.available())
  {
    mySerial.write(Serial.read());
  }
}

 

Arduino 3G shield using SoftwareSerial to control

标签:

原文地址:http://www.cnblogs.com/spaceship9/p/4770196.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!