Advertisement
claudiusmarius

DEL Calculator

Apr 6th, 2022
1,091
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 9.63 KB | None | 0 0
  1. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2.   // Claude DUFOURMONT Le 05/04/2022
  3.   //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  4.  
  5.   #define BrocheDAC A0                  // Envoie signal ANA vers la base du transistor Q1
  6.   #define potVariationSignal A4         // Curseur potentiomètre su A4
  7.   #define BrocheVC A8                   // "Image"tension collecteur  sur A8
  8.   #define BrocheVE A7                   // "Image"tension émetteur  sur A7
  9.   #define BPRst 10                      // Bouton de rst
  10.  
  11.   int etatBPRst = LOW;
  12.  
  13.   int ValueDAC;                         // Echelle : 0 -> 1023 points (analogWriteResolution(10)) pour 0 -> 3.3V
  14.   int a;                                // Curseur potentiomètre (varie de 0 à 3.3V pour 0 à 1023 points
  15.   int aa;
  16.   int R1 = 82;
  17.  
  18.   float ID1;                            // Variable courant LD calculé
  19.   float VCC5 = 5.08;                    // Tension d'alimentation fournie par la prise USB (A MESURER ET ACTUALISER DANS LE CODE POUR UNE PLUS GRANDE PRECISION)
  20.   float VCC3 = 3.32;                    // Tension d'alimentation fournie par le SEEEDUINO XIAO ((A MESURER ET ACTUALISER DANS LE CODE POUR UNE PLUS GRANDE PRECISION)
  21.   float R3V;                            // Résistance calculée pour une tension de 3.3V
  22.   float R5V;                            // Résistance calculée pour une tension de 5V
  23.   float R10V;                           // Résistance calculée pour une tension de 10V
  24.   float R12V;                           // Résistance calculée pour une tension de 12V
  25.   float R15V;                           // Résistance calculée pour une tension de 15V
  26.  
  27.   int VCpoint;                          // Valeur de VC en points
  28.   int VEpoint;                          // Valeur de VE en points
  29.  
  30.   float VC;                             // Valeur de VC en volts
  31.   float VE;                             // Valeur de VE en volts
  32.   float VD1;
  33.   float k = .5;                         // Les valeurs analogiques pouvant atteindre 5V sont divisées par deux via un pont diviseur
  34.  
  35.   void setup()
  36.   {
  37.  
  38.   analogReadResolution(10);             // Spécification résolution à utiliser pour la lecture ANA
  39.   analogWriteResolution(10);  
  40.   pinMode (BPRst, INPUT_PULLUP);        // BPRst en entrée pull up
  41.   ValueDAC = 0;                         // Initialisation à 0 de ValueDAC
  42.   a = 0;                                // Initialisation à 0 de a (curseur potentiomètre
  43.   aa = 0;
  44.   Serial.begin(115200);                   // ¨Préparation de la liaison série à 9600 bauds
  45.  
  46.   }
  47.  
  48.   void loop()
  49.   {
  50.  
  51.   VCpoint = analogRead (A8);            // Lecture en points de VC (affecté du coefficient k)
  52.   VEpoint = analogRead (A7);            // Lecture en points de VE (affecté du coefficient k)
  53.  
  54.   VC = VCC3 *VCpoint / 1023 /k ;        // Calcul de VC en volts
  55.   VE = VCC3 *VEpoint / 1023 /k ;        // Calcul de VE en volts
  56.  
  57.   VD1 = VCC5 - VC;                      // Calcul de VD1 en volts
  58.   ID1 = 1000*VE/R1;                     // Calcul de ID1 en mA        
  59.  
  60.   R3V = (3.3 - VD1) / ID1;              // Calcul de la résistance LED pour une tension de 3.3V
  61.   R5V = (5 - VD1) / ID1;                // Calcul de la résistance LED pour une tension de 5V
  62.   R10V = (10 - VD1) / ID1;              // Calcul de la résistance LED pour une tension de 10V
  63.   R12V = (12 - VD1) / ID1;              // Calcul de la résistance LED pour une tension de 12V
  64.   R15V = (15 - VD1) / ID1;              // Calcul de la résistance LED pour une tension de 15V
  65.  
  66.   a = analogRead (potVariationSignal);  // Lecture en points de la tension curseur du potentiomètre
  67.  
  68.  
  69.   // *********************** Type de réglage à choisir *******************************************************
  70.   // *********************************************************************************************************
  71.  
  72.   //ValueDAC = a;                       // Reglage grossier
  73.  
  74.   //ValueDAC = map(a,0,1023, 0,50);
  75.   //ValueDAC = map(a,0,1023, 10,100);
  76.   //ValueDAC = map(a,0,1023, 50,150);
  77.  // ValueDAC = map(a,0,1023, 150,180);
  78.   //ValueDAC = map(a,0,1023, 150,190);
  79.  //  ValueDAC = map(a,0,1023, 150,200);
  80.   //  ValueDAC = map(a,0,1023, 150,220);
  81.     // ValueDAC = map(a,0,1023, 150,230);
  82.      //ValueDAC = map(a,0,1023, 160,240);
  83.      //ValueDAC = map(a,0,1023, 190,260);
  84.      //ValueDAC = map(a,0,1023, 190,280);
  85.      //ValueDAC = map(a,0,1023, 190,310);
  86.      //ValueDAC = map(a,0,1023, 200,340);
  87.     //ValueDAC = map(a,0,1023, 210,380);
  88.      //ValueDAC = map(a,0,1023,210,430);  
  89.      //ValueDAC = map(a,0,1023, 220,500);
  90.      //ValueDAC = map(a,0,1023, 220,600);
  91.      //ValueDAC = map(a,0,1023, 230,750);
  92.   ValueDAC = map(a,0,1023, 190,800);
  93.  
  94.   //ValueDAC = map(a,0,1023, 200,700);    // Reglage fin
  95.  
  96.  
  97.   // ********************************************************************************************************
  98.   // ********************************************************************************************************
  99.  
  100.   if ( (abs (aa - a)) >4 )
  101.   {
  102.  
  103.   analogWrite(BrocheDAC, ValueDAC);     // Positionnement de la dernière ValueDAC sur son port
  104.   delay(5);
  105.   Serial.println (" ");
  106.   Serial.println (" ");
  107.   Serial.println (" ");
  108.   Serial.println (" ");
  109.   Serial.println (" ");
  110.   Serial.println ("    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ");
  111.   Serial.println (" ");
  112.   Serial.println ("                                                                      LED");
  113.   Serial.println ("                                                                  CALCULATOR ");
  114.   Serial.println ("                                                                CLAUDE DUFOURMONT ");
  115.   Serial.println ("                                                          [email protected]");
  116.   Serial.println (" ");
  117.   Serial.println ("                                    visitez ma chaîne YouTube :  --->  https://www.youtube.com/c/ClaudeDufourmont ");
  118.   Serial.println (" ");
  119.   Serial.println ("                                             LIKEZ    -    SOUSCRIVEZ    -    PARTAGEZ    -    COMMENTEZ ");
  120.   Serial.println (" ");
  121.   Serial.println ("                              Ce montage a pour rôle de déterminer la résistance à placer en série avec une LED ");
  122.   Serial.println ("                              Après avoir déterminé le niveau de luminosité souhaité ");
  123.   Serial.println ("                              Ce niveau de luminosité est réglé à partir du potentiomètre ");
  124.   Serial.println ("                              Les valeurs de résistance sont données pour différentes valeurs de tension");
  125.   Serial.println (" ");
  126.   Serial.println ("    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ");
  127.   Serial.println ("    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ");
  128.   Serial.println ("");
  129.   Serial.println ("");
  130.   Serial.println ("");
  131.   Serial.print ("            VC (V) =           ");
  132.   Serial.print (VC);
  133.   Serial.println ("    Tension collecteur Transistor ");
  134.   Serial.print ("            VE (V) =           ");
  135.   Serial.print (VE);
  136.   Serial.println ("    Tension Emetteur Transistor ");
  137.   Serial.print ("            VD1 (V) =          ");
  138.   Serial.print (VD1);
  139.   Serial.println ("    Tension de seuil D1");
  140.   Serial.print ("            ID1 (mA) =         ");
  141.   Serial.print (ID1);
  142.   Serial.println ("    Courant D1 ");
  143.   Serial.print ("            R3V (Kohms) =      ");
  144.   Serial.print (R3V);
  145.   Serial.println ("    Valeur de résistance à placer en série avec la LED si le circuit R+LED est alimenté en 3.3V");
  146.   Serial.print ("            R5V (Kohms) =      ");
  147.   Serial.print (R5V);
  148.   Serial.println ("    Valeur de résistance à placer en série avec la LED si le circuit R+LED est alimenté en 5V");
  149.   Serial.print ("            R10V (Kohms) =     ");
  150.   Serial.print (R10V);
  151.   Serial.println ("    Valeur de résistance à placer en série avec la LED si le circuit R+LED est alimenté en 10V");
  152.   Serial.print ("            R12V (Kohms) =     ");
  153.   Serial.print (R12V);
  154.   Serial.println ("    Valeur de résistance à placer en série avec la LED si le circuit R+LED est alimenté en 12V");
  155.   Serial.print ("            R15V (Kohms) =     ");
  156.   Serial.print (R15V);
  157.   Serial.println ("    Valeur de résistance à placer en série avec la LED si le circuit R+LED est alimenté en 15V");
  158.   Serial.println (" ");
  159.   Serial.println (" ");
  160.   Serial.println (" ");
  161.   Serial.println ("    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ");
  162.   Serial.println (" ");
  163.   aa = a;
  164.   }
  165.  
  166.   digitalRead (BPRst);                  // Lecture de l'entrée numérique affectée à BPRst
  167.   if (digitalRead (BPRst) == LOW)      
  168.   {
  169.   etatBPRst = HIGH;                     // Détermination de son état
  170.   }
  171.   if (etatBPRst == HIGH)
  172.   {
  173.   NVIC_SystemReset();                   // RST logicielle si etatBPRst == HIGH
  174.   etatBPRst = LOW;                      // Remise à LOW de létatBPRst
  175.   }
  176.    
  177.   }
  178.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement