Hola comunidad tengo un problema con una Shield GPRS Icomsat, resulta que no puedo controlar el enc/apa de un led, ya la he probado para enviar sms y llamar y anda perfecto, pero para controlar, nose si le estoy errando en el programa o me falta algun jumper o algo para la recepcion de sms.
El siguiente codigo es el que envia el sms y anda bien:
#include <SoftwareSerial.h>
SoftwareSerial SIM900 (0 , 1 ) ;
void setup ( )
{
SIM900 . begin ( 19200 ) ;
delay ( 20000 ) ;
}
void sendSMS ( )
{
SIM900 . print ( "AT+CMGF=1\r" ) ;
delay ( 100 ) ;
SIM900 . println ( "AT + CMGS = \"+000000000000\"" ) ; //Numero donde envia el sms
delay ( 100 ) ;
SIM900 . println ( "Mensaje enviado desde arduino." ) ;
delay ( 100 ) ;
SIM900 . println ( ( char ) 26 ) ;
delay ( 100 ) ;
SIM900 . println ( ) ;
delay ( 5000 ) ;
SIM900power ( ) ;
}
void loop ( )
{
sendSMS ( ) ;
do { } while ( 1 ) ;
}
Y el siguiente codigo es el que controla el led el cual no funciona:
#include <SoftwareSerial.h>
char inchar ;
SoftwareSerial SIM900 (0 , 1 ) ;
int led1 = 13 ;
void setup ( )
{
Serial . begin ( 19200 ) ;
pinMode ( led1 , OUTPUT ) ;
digitalWrite ( led1 , LOW ) ;
SIM900 . begin ( 19200 ) ;
delay ( 20000 ) ;
SIM900 . print ( "AT+CMGF=1\r" ) ;
delay ( 100 ) ;
SIM900 . print ( "AT+CNMI=2,2,0,0,0\r" ) ;
delay ( 100 ) ;
Serial . println ( "Ready..." ) ;
}
void loop ( )
{
if ( SIM900 . available ( ) > 0 )
{
inchar = SIM900 . read ( ) ;
if ( inchar == '#' )
{
delay ( 10 ) ;
inchar = SIM900 . read ( ) ;
if ( inchar == 'a' )
{
delay ( 10 ) ;
inchar = SIM900 . read ( ) ;
if ( inchar == '0' )
{
digitalWrite ( led1 , LOW ) ;
}
else if ( inchar == '1' )
{
digitalWrite ( led1 , HIGH ) ;
}
SIM900 . println ( "AT+CMGD=1,4" ) ;
}
}
}
}
Solo apararece en el monitor Ready.. y cuando envio el sms #a1 o #a0 no hace nada tambien he pobrado con otros pines aparte del 13 y no ay caso, si me podrian dar una mano se los agradeceria, muchas gracias