
This circuit interfaces an Arduino UNO with a SIM900A GSM module. The Arduino communicates with the SIM900A via digital pins D9 and D10 for serial data transmission and reception, while both devices share a common ground.
The GSM SIM 900A is a versatile GSM/GPRS module designed for communication over mobile networks. It supports a wide range of communication protocols, including SMS, voice calls, and GPRS for internet connectivity. This module is widely used in IoT applications, remote monitoring systems, home automation, and other projects requiring wireless communication. Its compact size and reliable performance make it a popular choice for developers and engineers.

This circuit interfaces an Arduino UNO with a SIM900A GSM module. The Arduino communicates with the SIM900A via digital pins D9 and D10 for serial data transmission and reception, while both devices share a common ground.

This circuit interfaces an Arduino UNO with a SIM900A GSM module. The Arduino controls the SIM900A via digital pins D9 and D10 for serial communication, while both components share a common ground.

This circuit integrates an Arduino UNO with a SIM900A GSM module, powered by a 12V power supply. The Arduino communicates with the SIM900A via digital pins D4 and D5 for TX and RX respectively, enabling GSM communication capabilities.

This circuit connects an Arduino UNO microcontroller with a SIM900A GSM/GPRS module, enabling cellular communication capabilities. The Arduino's digital pins D7 and D8 are connected to the SIM900A's 5VT and 5VR pins, likely for serial communication. A separate 5V connector provides power to the SIM900A, with common ground connections established between all components.
Below are the key technical details of the GSM SIM 900A module:
| Parameter | Specification |
|---|---|
| Operating Voltage | 3.2V - 4.8V (Typical: 4.2V) |
| Operating Current | Idle: ~20mA, Active: ~200mA, Peak: ~2A |
| Frequency Bands | Dual-band GSM 900/1800 MHz |
| Communication Protocols | GSM, GPRS (Class 10) |
| Baud Rate | Configurable (Default: 9600 bps) |
| SIM Card Support | 1.8V and 3V SIM cards |
| Operating Temperature | -40°C to +85°C |
| Dimensions | 24mm x 24mm x 3mm |
The GSM SIM 900A module typically has the following pin configuration:
| Pin Name | Description |
|---|---|
| VCC | Power supply input (3.2V - 4.8V) |
| GND | Ground |
| TXD | Transmit data (UART communication) |
| RXD | Receive data (UART communication) |
| DTR | Data Terminal Ready (used for sleep mode control) |
| RST | Reset pin (active low) |
| MIC+ | Microphone input positive |
| MIC- | Microphone input negative |
| SPK+ | Speaker output positive |
| SPK- | Speaker output negative |
| NET | Network status indicator (blinking LED connection) |
Below is an example of how to send an SMS using the GSM SIM 900A module and Arduino UNO:
#include <SoftwareSerial.h>
// Define RX and TX pins for SoftwareSerial
SoftwareSerial gsm(10, 11); // RX = Pin 10, TX = Pin 11
void setup() {
// Initialize serial communication
Serial.begin(9600); // For debugging with PC
gsm.begin(9600); // For communication with GSM module
Serial.println("Initializing GSM module...");
delay(1000);
// Send AT command to check communication
gsm.println("AT");
delay(1000);
if (gsm.available()) {
Serial.println("GSM module is ready.");
} else {
Serial.println("Failed to communicate with GSM module.");
}
// Send SMS
sendSMS("+1234567890", "Hello from GSM SIM 900A!");
}
void loop() {
// Nothing to do in the loop
}
void sendSMS(String phoneNumber, String message) {
gsm.println("AT+CMGF=1"); // Set SMS mode to text
delay(1000);
gsm.print("AT+CMGS=\""); // Command to send SMS
gsm.print(phoneNumber); // Recipient's phone number
gsm.println("\"");
delay(1000);
gsm.print(message); // SMS content
delay(1000);
gsm.write(26); // ASCII code for CTRL+Z to send SMS
delay(5000);
Serial.println("SMS sent successfully!");
}
+1234567890 with the recipient's phone number.Module Not Responding to AT Commands:
Frequent Resets or Unstable Operation:
No Network Connection:
SMS Not Sending:
Q: Can the GSM SIM 900A module be used for internet connectivity?
A: Yes, the module supports GPRS for internet connectivity. You can use AT commands like AT+SAPBR and AT+HTTP to establish a GPRS connection and perform HTTP requests.
Q: Does the module support 4G networks?
A: No, the GSM SIM 900A is a 2G module and supports GSM 900/1800 MHz frequency bands.
Q: How can I reduce power consumption?
A: Use the DTR pin to enable sleep mode when the module is idle. This significantly reduces power consumption.
Q: Can I use the module with a 5V microcontroller?
A: Yes, but you need a logic level converter to interface the 5V microcontroller with the module's 3.3V UART pins.