je suis passé de l'adruino uno à l'arduino méga. Sur le UNO j'avais mis une communication par gsm (ça marchait), je souhaite conserver cette communication sur la nouvelle carte. Le problème c'est que l'arduino mega m'envoie bien des messages mais quand je lui envois des #R1 par sms (ce qui actionne des relais) j'ai juste le "lu" sur le message du téléphone et pas de relais se colle. de quoi peux provenir le problème ?
j'ai copié exactement le même code en modifiant la carte dans type de carte et le 18 et 19 pour TX et RX
L' as-tu testé? ( tu peux simplement l' actionner en mettant directement le +5V sur la bobine en ayant pris soin de le déconnecter de la broche de sortie de l' Arduino).
weetoz:
L' as-tu testé? ( tu peux simplement l' actionner en mettant directement le +5V sur la bobine en ayant pris soin de le déconnecter de la broche de sortie de l' Arduino).
char inchar; //Will hold the incoming character from the Serial Port.
#include <SoftwareSerial.h>
char inchar;
SoftwareSerial SIM900(7, 8);
boolean sms;
int led1 = 9;
int led2 = 10;
int led3 = 11;
int led4 = 12;
void setup()
{
// prepare the digital output pins
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
//Initialize GSM module serial port for communication.
Serial.begin(9600);
delay(3000); // give time for GSM module to register on network etc.
Serial.println("AT+CMGF=1"); // set SMS mode to text
delay(200);
Serial.println("AT+CNMI=3,3,0,0"); // set module to send SMS data to serial out upon receipt
delay(200);
}
void loop()
{
//If #a1b1c1d1 comes as sms, all LEDs should light up.
if(Serial.available() >0)
{
inchar=Serial.read();
if (inchar=='#')
{
delay(10);
inchar=Serial.read();
//first led
if (inchar=='a')
{
delay(10);
inchar=Serial.read();
if (inchar=='0')
{
digitalWrite(led1, LOW);
}
else if (inchar=='1')
{
digitalWrite(led1, HIGH);
}
delay(10);
//Second led
inchar=Serial.read();
if (inchar=='b')
{
inchar=Serial.read();
if (inchar=='0')
{
digitalWrite(led2, LOW);
}
else if (inchar=='1')
{
digitalWrite(led2, HIGH);
}
delay(10);
// Third led
inchar=Serial.read();
if (inchar=='c')
{
inchar=Serial.read();
if (inchar=='0')
{
digitalWrite(led3, LOW);
}
else if (inchar=='1')
{
digitalWrite(led3, HIGH);
}
delay(10);
//Fourth led
inchar=Serial.read();
if (inchar=='d')
{
delay(10);
inchar=Serial.read();
if (inchar=='0')
{
digitalWrite(led4, LOW);
}
else if (inchar=='1')
{
digitalWrite(led4, HIGH);
}
delay(10);
}
}
Serial.println("AT+CMGD=1,4"); // delete all SMS
}
}
}
}
}
Merci a vous tous de m'avoir aidé, j'ai enfin trouvé la solution !!!!!!
Sur la méga on ne déclare pas les broches ( 7,8) mais le serial1,serial2,serial3.
Serial: 0 and 1; Serial 1: 19 (RX) and 18 (TX); Serial 2: 17 (RX) and 16 (TX); Serial 3: 15 (RX) and 14 (TX). Used to receive (RX) and transmit (TX) TTL serial data. Pins 0 and 1 are also connected to the corresponding pins of the ATmega16U2 USB-to-TTL Serial chip.
Bonne continuation et encore un grand merci à ceux qui on pu m'aider