Projet de Terminale STI2D sur un éclairage intelligent.
Répondre à la discussion
Affichage des résultats 1 à 2 sur 2

Projet de Terminale STI2D sur un éclairage intelligent.



  1. #1
    AntoPrime

    Projet de Terminale STI2D sur un éclairage intelligent.


    ------

    Bonsoir,

    Je suis actuellement en Terminale STI2D spé SIN (Systèmes d'Informations et Numériques). Le but de mon projet consiste à réaliser un éclairage intelligent qui prend en charge la lumière extérieure arrivant par les fenêtres de la salle étudiée. Nous appliquons ça sur une maquette.

    J'ouvre cette discussion pour que vous me dite ce que vous pensez de mon programme. Car selon mes professeurs, il y aurait "plus simple" et "plus compréhensible". Ne sachant pas m'expliquer correctement, je dois me débrouiller seul.

    Donc voici le programme :

    Code:
    /*
    Matériel utilisé:
    -3 transistors.
    -3 lampes.
    -3 photorésistances.
    -Un capteur de présence.
    -Un afficheur à cristaux liquides.
    
    La lampe 1 est au niveau de la porte, la lampe 2 au centre, et
    la lampe 3 au niveau de la fenêtre.
    
    Il y a une photorésistance aux fenêtres pour moduler, et deux autres
    pour vérifier les résultats en-dessous de la lampe 2 et 1. 
    */
    
    /* L'afficheur à cristaux liquides (Grove-LCD) permet d'afficher
    la valeur de la photorésistance à la fenêtre. */
    #include<Wire.h>
    #include "rgb_lcd.h"
    rgb_lcd lcd;
    // De couleur vert.
    const int colorR = 0;
    const int colorG = 128;
    const int colorB = 64;
    
    int lampe1 = 3; // Broche de la lampe 1.
    int lampe2 = 5; // Broche de la lampe 2.
    int lampe3 = 6; // Broche de la lampe 3.
    /* Variables des lampes à 64 soit 25% de cycle de service 
    (pour ne pas avoir une puissance d'éclairement trop important. */
    int i1 = 64; // Lampe 1.
    int i2 = 64; // Lampe 2.
    int i3 = 64; // Lampe 3.
    /* A, B et C permettent d'indiquer la valeur de chaque lampe sur
    le moniteur série. */
    float A; // Lampe 1.
    float B; // Lampe 2.
    float C; // Lampe 3.
    
    // La photorésistance principal (pour moduler).
    int port1 = A0;   
    int valeur1 = 0; 
    float v1 = 0;
    
    // La photorésistance vérifiant la luminosité au centre de la salle.
    int port2 = A2;   
    int valeur2 = 0; 
    float v2 = 0;
    
    // La photorésistance vérifiant la luminosité au niveau de la porte.
    int port3 = A3;   
    int valeur3 = 0; 
    float v3 = 0;
    
    // Le capteur de présence.
    int analogPin = A1;
    int p = 0;
    
    void setup()
    {
      lcd.begin(16,2);
      lcd.setRGB(colorR,colorG,colorB);
      
      Serial.begin(9600);
      
      // Les lampes sont configuées en sortie.
      pinMode(lampe1, OUTPUT); 
      pinMode(lampe2, OUTPUT);
      pinMode(lampe3, OUTPUT);
    }
    
    void loop()
    {
      valeur1 = analogRead(port1); // Lit l’entrée analogique A0.
      v1 = valeur1 / 4; // La valeur de la photorésistance (0 à 1024) passe de 0 à 255.
      
      valeur2 = analogRead(port2); // Lit l’entrée analogique A2.
      v2 = valeur2 / 4; // La valeur de la photorésistance (0 à 1024) passe de 0 à 255.
      
      valeur3 = analogRead(port3); // Lit l’entrée analogique A3.
      v3 = valeur3 / 4; // La valeur de la photorésistance (0 à 1024) passe de 0 à 255.
      
      p = digitalRead(analogPin); // Lit l'entrée analogique A1.
      
      if(p = 1) // Si le capteur détecte du mouvement.
      {
        /* On module la luminosité des lampes par la Loi en Carré Inverse.
        La loi en carré inverse est une loi physique postulant qu'une quantité
        physique (énergie, force, ou autre) est inversement proportionnelle
        au carré de la distance de l'origine de cette quantité physique.
        Selon cette loi, la puissance de la lumière sera inversement propor-
        tionnelle au carré de la distance.
        
        Par exemple: Si nous bougeons de 3 mètres de la source lumineuse
        (3*3=9 donc 1/9), la puissance de la lumière descendra à 1/9 ème
        de sa puissance de départ.
        
        En prenant les fenêtres comme la source de lumière, voici comment la
        lumière s'affaiblie:
          -A 3,7 dm (lampe3), la lumière descendra à 1/14.
          -A 7,7 dm (lampe2), la lumière descendra à 1/59.
          -A 10,6 dm (lampe1), la lumière descendra à 1/112. 
          
        La distance doit être en mètre, mais j'ai choisi de mettre les distances
        mesurées en dm pour ne pas avoir le problème des divisions par 0,... et 
        pour montrer l'écart de puissance de la lumière. */
        
        analogWrite(lampe1,A = i1 - (v1 / 112));
        analogWrite(lampe2,B = i2 - (v1 / 59));
        analogWrite(lampe3,C = i3 - (v1 / 14));
        
        /* Le but est donc de soustraire l'éclairement de la lumière à celle 
        des lampes. Ce qui nous permet d'avoir toujours le même éclairement
        réparti dans la pièce. */
      }
      if(p = 0) // Si le capteur ne détecte pas de mouvement.
      {
        // Eteindre les lampes.
        analogWrite(lampe1,A = i1 - 64);
        analogWrite(lampe2,B = i2 - 64);
        analogWrite(lampe3,C = i3 - 64);
      }
      
      // Indique la valeur de la photorésistance 1 au niveau de la fenêtre sur l'afficheur.
      lcd.setCursor(0,0);
      lcd.print(v1);
      
      // Indique la valeur de la photorésistance 2 au centre de la salle.
      Serial.print("vin2: ");
      Serial.println(v2);
      
      Serial.print("              ");
      
      // Indique la valeur de la photorésistance 3 au niveau de la porte.
      Serial.print("vin3: ");
      Serial.println(v3);
      
      Serial.print("                            ");
      
      // Indique la valeur de la lampe 1.
      Serial.print("lampe 1: ");
      Serial.println(A);
      
      Serial.print("                                          ");
      
      // Indique la valeur de la lampe 2.
      Serial.print("lampe 2: ");
      Serial.println(B);
      
      Serial.print("                                                        ");
      
      // Indique la valeur de la lampe 3.
      Serial.print("lampe 3: ");
      Serial.println(C);
      
      Serial.print("                                                                      ");
      
      // Indique la présence (1 -> oui, 0 -> non).
      Serial.print("présence: ");
      Serial.println(p);
    }
    Le programme fonctionne et je ne pourrais pas vous montrer le montage désolé.

    Merci de vous y intéresser et de me donner votre avis.

    -----
    Dernière modification par Antoane ; 11/05/2016 à 06h52. Motif: Ajout balises [code]

  2. #2
    crevette24

    Re : Projet de Terminale STI2D sur un éclairage intelligent.

    Un avis neutre =) Personnellement je sais pas si c'est ton professeur qui t'a imposé ta loi en carré inverse mais c'est étrange. Techniquement si l'on pense au future (projet finit et commercialisé )tes capteurs seront intégrés à tes ampoules ou pas loin, je ne pense pas qu'ill soit judicieux de les placer à un autre endroit. Donc personnellement j’aurai fixer un seuil de luminosité maximum où l'ampoule est éteinte puis aprés avec un "case of" 5 à 10 états suivant la luminosité recu ou alors je prendrai juste l'inverse de la luminosité . Mais je préfère la solution du "case of" simple et ca marche et j’aurai même rajouté une boucle for qui incrémente ou décrémente d'un état à un autre pour éviter les changements brusques de luminosité de tes ampoules et n'oublie pas les tempos pour éviter de faire boit de nuit si un nuage passe par exemple.

    Parce que honnêtement quand tu parles de ta loi carré ca me fait rire =) mais je comprends que cela fait mieux pour l'école et sa montre tes recherches. Ma proposition est pour moi plus simple et compréhensive mais pas forcément plus courte à coder.

Discussions similaires

  1. [URGENT] Chaîne énergétique caméra projet terminale STI2D SIN
    Par caissonvideo dans le forum Technologies
    Réponses: 8
    Dernier message: 02/06/2014, 14h25
  2. Projet STI2D Terminale, Urban watering, Les compétences.
    Par Ynaoko dans le forum Électronique
    Réponses: 1
    Dernier message: 16/04/2014, 15h00
  3. Aide projet terminale STI2D.
    Par ymoreau dans le forum Électronique
    Réponses: 14
    Dernier message: 05/02/2014, 18h07
  4. Réponses: 9
    Dernier message: 05/11/2012, 16h11
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...