IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Relevé de température perturbé par le déclenchement d'autres capteurs


Sujet :

Arduino

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2010
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : retraité
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Septembre 2010
    Messages : 116
    Par défaut Relevé de température perturbé par le déclenchement d'autres capteurs
    Salut à tous,

    Je propose à votre sagacité le problème suivant :
    Le projet est de lier en Bluetooth et dans les 2 sens (1 PC et 1 Arduino UNO R3).
    Dans le sens PC --> Arduino:
    - Commander 3 relais (3 leds pour l'essai)
    Dans le sens Arduino --> PC:
    - Obtenir une température sur le moniteur série
    - Lire le retour d'un capteur PIR (envoi d'un signal HIGH)
    - Lire le retour d'un autre capteur (indéterminé pour l'instant) mais susceptible d'envoyer un signal LOW

    Le code fonctionne mais les relevés de température sont perturbés dès que les Leds sont allumées.
    Les relevés redeviennent corrects quelque temps après l'extinction des Leds.
    Le fait d'alimenter le LM35 par une source externe n'améliore pas.
    A part le problème de valeur de température, le système avec ou sans le XBee Bluetooth HC-06 est fonctionnel dans les 2 sens.

    Ci-joint le schéma Fritzing, le code et copie d'écran du moniteur.

    Je sèche.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
     
    char saisie;
    boolean capteur_1_state = 1; // cas capteur PULL_UP au repos
    boolean capteur_2_state = 0; // cas capteur PULL_DOWN au repos
    float tension = 5.0; // tension de service pour LM35 capteur temperature
    float temperature;
    void setup() {
     pinMode(10,OUTPUT); pinMode(11,OUTPUT);  pinMode(12,OUTPUT); // inter
     pinMode(7,INPUT_PULLUP); // cas capteur PULL_UP
     pinMode(5,INPUT);        // cas capteur PULL_DOWN
     Serial.begin(9600);
    //capteursState();
    }
     
    void loop() {
      float LM35value = analogRead(A0);
      temperature = (LM35value / 1023) * tension * 100;
      //temperature =  LM35value * tension / 1023.0 * 100.0;
      delay(10);
     
      if (digitalRead(7) != capteur_1_state  ) { // cas capteur PULL_UP
        capteur_1_state = digitalRead(7);
        capteursState();
        delay(10);
      }
       if (digitalRead(5) != capteur_2_state  ) { // cas capteur PULL_DOWN
        capteur_2_state = digitalRead(5);
        capteursState();
        delay(10);
      }  
     saisie=Serial.read();
     if (saisie == 'r')  capteursState(); // interrogation sans modif
      if (saisie == 'a' || saisie == 'b' || saisie == 'c') { 
          digitalWrite(int(saisie)-87,abs(digitalRead(int(saisie)-87)-1)); 
          // la ligne ci-dessus inverse l'etat du pin concerné.
          Serial.print(" Capteur en Pin "); Serial.print(int(saisie)-87); 
          Serial.print(" ( "); Serial.print(char(saisie));
          Serial.print(" ) "); Serial.print(" passe sur "); 
            if (digitalRead(int(saisie)-87)==1) Serial.println(" ON ");
            else Serial.println(" OFF ");
          delay(10);
          capteursState();
        }
      while(Serial.available()) Serial.read();// vide le buffer
      delay(500);
    }
     
    void relais(){
      /* le code ASCII de 'a' est 97, 'b' 98 et 'c' 99 donc
       * le code ASCII moins 87 donne le N° pin concerné.
       */
           digitalWrite(int(saisie)-87,HIGH); 
            delay(25); 
          digitalWrite(int(saisie)-87,LOW); 
            delay(25); }
    void capteursState(){
      Serial.println("  Etat des capteurs: ('r' pour relire)");
        Serial.print("    Interrupteur a := ");
        Serial.println((digitalRead(10)==1)?"ON":"OFF");
        Serial.print("    Interrupteur b := ");
        Serial.println((digitalRead(11)==1)?"ON":"OFF");
        Serial.print("    Interrupteur c := ");
        Serial.println((digitalRead(12)==1)?"ON":"OFF");
        Serial.print("    Capteur Digital d  := ");
        Serial.println(digitalRead(7));    
        Serial.print("    Capteur Digital e  := ");
        Serial.println(digitalRead(5)); 
        Serial.print(" temperature en degres := ");
        Serial.println(temperature);
     //       Serial.println(analogRead(A0)); // pour controle
            Serial.println();
      }
    Nom : Capture_2.JPG
Affichages : 1676
Taille : 46,7 Ko
    XBeeBluetooth_temp.zip
    Images attachées Images attachées  

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 17/04/2013, 18h44
  2. Ping sur routeur perturbé par un matériel connecté
    Par Pasokoniidesuka dans le forum Dépannage et Assistance
    Réponses: 8
    Dernier message: 15/05/2012, 01h09
  3. [Info] Database control perturbé par glogin.sql
    Par Pomalaix dans le forum Entreprise Manager
    Réponses: 1
    Dernier message: 19/08/2008, 15h41
  4. Dimensions cellules Mozilla perturbées par javascript
    Par speedev dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 07/06/2006, 10h46
  5. Température processeur par le code
    Par XioN dans le forum Delphi
    Réponses: 3
    Dernier message: 29/05/2006, 21h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo