problème gsm et IR [Résolu]

bonjour tout le monde,
ayant recu le module gsm gprs http://www.seeedstudio.com/depot/gprs-shield-p-779.html?cPath=132_134
je m’amuse un peu pour faire une alarme.
tout fonctionne bien, sms nickel, appel sortant entrant aussi.
par contre si je connecte en plus le récepteur IR http://www.zartronic.fr/kit-télécommande-infrarouge-p-181.html
et bine on dirait que le lib ne se charge pas ou qu’il y a conflit.
même en restant appuyé sur un bouton pendant 10s, rien ne se passe, aucune réception
si je mets un script que j’avais écrit pour l’IR, tout fonctionne au quart de tour.

#include <NewSoftSerial.h>
#include <LiquidCrystal.h>
#include <IRremote.h>
#define RECV_PIN A0
IRrecv irrecv(RECV_PIN);
decode_results results;
LiquidCrystal lcd(10, 6, 5, 4, 3, 2);
void setup()
{
  irrecv.enableIRIn(); // Start the receiver
  mySerial.begin(19200); 
  Serial.begin(19200);  
}

void loop() {
  if (irrecv.decode(&results)) {
    testlolo = results.value;
    Serial.println(testlolo);
}
    irrecv.resume(); // Receive the next value
}

je mets pas tout le code, trop long et pas intéressant.
donc je n’ai rien en retour sur Serial.println(testlolo);

si vous avez une idée je prends de suite, j’ai eu beau tourner et retourner les infos dans le setup, rien :frowning:
merci d’avance

As tu fait la liste des pins utilisées par les uns et les autres. Je ne vois pas dans ton message ni le code les pins utilisées par le shield GSM.

autant pour moi, j'avais pas tout copié :(

NewSoftSerial mySerial(7,8);

en mettant le detecteur de mouvement sur A0 ca fonctionne, mais pas l'IR. d'ou la raison de mon incompréhension.

Sans le shield GSM, le capteur IR marche sur la pin A0 ?

avec le shield gsm dessus, mais avec un autre script que j’avais fait pour l’IR, ca fonctionne pour l’IR.
avec le detecteur de mouvement sur la même pin, le detecteur fonctionne
avec un interrupteur sur la même pin ca fonctionne
avec le script et l’IR toujours sur la même pin, niet

y a un blem chef :grin: mais ou?

Donc la lib IRemote marche sur une pin Analogique. C'est ce que je voulais savoir.

Tu peux poster le script qui marche ?

PS: Tu n'as pas du recopier ton script comme il faut, il manque la définition de testlolo

PPS: En fait tun'as pas posté tout ton script. Est-ce que le script dans l'état où tu l'a posté fonctionne ?

Parce qu'on cherche peut être quelque chose qui est dans la partie non postée.

script qui fonctionne même avec le shield gsm dessus

#include <IRremote.h>
#define RECV_PIN A0
int testlolo = 0;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // Start the receiver
}

void loop() {
  if (irrecv.decode(&results)) {
    testlolo = results.value;
    Serial.println(testlolo);
    irrecv.resume(); // Receive the next value
}

donc j’ai repris exactement la même chose en l’intégrant dans l’autre script et c’est comme si la lib IRremote.h ne se chargeait pas ou que irrecv.enableIRIn(); dans le setup ne démarrait pas.

alors chose étrange, j'ai remplacé mon interrupteur par l'IR sans mettre la lib remote. si j'appuye sur la telecommande, l'état change bien.

je mets la lib et tout ce qui va avec et plus rien ne fonctionne.

Semble manquer une accolade.

Si je comprend bien ce que je lis, la différence entre "ca marche" et "ca marche pas" tient dans : - la déclaration de l'écran LCD LiquidCrystal - la déclaration et l'initialisation de mySerial (SoftwareSerial).

Je tiens le pari pour Liquidcrystal.

alors, nouveau test et toujours avec le shield gsm

#include <IRremote.h>
#include <LiquidCrystal.h>
#define RECV_PIN A0
int testlolo = 0;
IRrecv irrecv(RECV_PIN);
decode_results results;
LiquidCrystal lcd(10, 6, 5, 4, 3, 2);
void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // Start the receiver
    lcd.begin(16, 2);
    lcd.clear();
}

void loop() {
  if (irrecv.decode(&results)) {
    testlolo = results.value;
    Serial.println(testlolo);
    lcd.clear();
        lcd.println(testlolo);
    irrecv.resume(); // Receive the next value
}
}

ca fonctionne

#include <NewSoftSerial.h>
#include <IRremote.h>
#include <LiquidCrystal.h>
#define RECV_PIN A0
int testlolo = 0;
IRrecv irrecv(RECV_PIN);
decode_results results;
LiquidCrystal lcd(10, 6, 5, 4, 3, 2);
NewSoftSerial mySerial(7,8);

void setup()
{
  Serial.begin(19200);
  irrecv.enableIRIn(); // Start the receiver
    lcd.begin(16, 2);
    lcd.clear();
      mySerial.begin(19200); 
}

void loop() {
  if (irrecv.decode(&results)) {
    testlolo = results.value;
    Serial.println(testlolo);
    lcd.clear();
        lcd.println(testlolo);
    irrecv.resume(); // Receive the next value
}
}

fonctionne aussi
je vais testé avec les commandes AT du début et regarder là ou ca cloche.

bonjour, je pense avoir cerné le problème. c'est lorsque je mets dans mon loop

    mySerial.println("ATA");

que ca bloque le script. faut que je trouve le moyen de lire ce que recoit comme instruction le shield pour ne déclencher le "ATA" que s'il y a un appel. et déconnecter s'il y a un "lost carrier".

infobarquee: bonjour, je pense avoir cerné le problème. c'est lorsque je mets dans mon loop

    mySerial.println("ATA");

que ca bloque le script. faut que je trouve le moyen de lire ce que recoit comme instruction le shield pour ne déclencher le "ATA" que s'il y a un appel. et déconnecter s'il y a un "lost carrier".

bonjour infobarquee si le "hayes" est suporté il faut attendre "RING"(en court=2) avant d'envoyer l'ATA, le lost c'est surement "NO CARRIER" (en court=3)

un lien vers le manual de ton modem ?

trouvé là http://garden.seeedstudio.com/images/a/a0/SIM900_ATC_V1_00.pdf à lire + tard 8)

merci Artouste, bon problème réglé :) j'ai rajouté l'écoute du serial dans mon loop et viré le "ATA", du coup, ca fonctionne archement mieux. je passe pas en résolu avant d'avoir testé plusieurs dizaine de fois l'usine a gaz :)

Perso je comprend toujours pas.

Je comprend que dès que tu cause au module GSM, la fonction IR ne marche plus. Pour l'instant je ne vois aucune explication.

barbudor: Perso je comprend toujours pas.

Je comprend que dès que tu cause au module GSM, la fonction IR ne marche plus. Pour l'instant je ne vois aucune explication.

bonjour barbudor intuitivement ça devait rester dans une boucle d'attente de reponse du modem "GSM" et plus du tout aller voir si il y avait de l'IR à voir :grin:

infobarquee fera un retour exhaustif du pourquoi c'est finalement tombé en marche :grin:

tu as bien compris Artouste. dès que l'on met cette ligne dans le loop, ca ne fait rien d'autre. 2 solutions soit ca part en boucle soit la mémoire et le traitement ne sont pas assez puissants sur le nono pour tout traiter maintenant j'attaque les ordres par impulsions via un autre téléphone. je sens que je vais bien m'amuser un petit moment la dessus.