Advertisement
claudiusmarius

DFTA108SimulateurCharge01

Oct 22nd, 2023
1,144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 9.61 KB | None | 0 0
  1. #include <TM1637Display.h>
  2.   #include <Adafruit_NeoPixel.h>
  3.  
  4.   #define CLK1 D5
  5.   #define DIO1 D4
  6.  
  7.   #define GateQ11 D7
  8.   #define GateQ12 D8
  9.   #define GateQ13 D9
  10.  
  11.   #define BrocheNeopixel D3
  12.  
  13.   #define NLed 8
  14.  
  15.   TM1637Display display1(CLK1, DIO1);
  16.   Adafruit_NeoPixel Strip(NLed, BrocheNeopixel, NEO_GRB + NEO_KHZ800);
  17.  
  18.   #define Luminosite 10                                                      // Lumunosité Matrice (de 0 à 255)
  19.  
  20.   int MonInsensite = 0;
  21.   int LastMonInsensite = 0;
  22.   int PotentiometerFine = 0;
  23.   int Temp =0;                                              
  24.   const int numReadings = 40;                                                // Nombre d'échantillons pour la moyenne mobile
  25.  
  26.   int readings[numReadings];                                                 // Tableau pour stocker les échantillons
  27.   int readIndex = 0;                                                         // Index de lecture dans le tableau
  28.   int total = 0;                                                             // Somme des échantillons
  29.   int RatioVcc ;
  30.  
  31.   float K = 1000/8200;
  32.  
  33.   unsigned long lastUpdateTime = 0;
  34.   unsigned long updateInterval = 800;                                        // Mettre ici la durée souhaitée en millisecondes
  35.   //unsigned long updateInterval = 400;
  36.  
  37.   void setup()
  38.   {
  39.   pinMode (GateQ11, OUTPUT);
  40.   pinMode (GateQ12, OUTPUT);
  41.   pinMode (GateQ13, OUTPUT);
  42.   analogReadResolution(10);
  43.   analogWriteResolution(10);                                                 // Résolution du DAC (10 bits)
  44.   display1.setBrightness(0x0A);                                              // Luminosité entre 0x0A et 0x0F
  45.  
  46.   Strip.begin();                                                             // Initialisation de la barette Néopixel  de 8 Leds
  47.   Strip.setBrightness(Luminosite);
  48.  
  49.   analogWrite(A0, 0);                                                        // Initaialisation du DAC à zéro pendant 2 secondes
  50.  
  51.   digitalWrite (GateQ11, LOW);
  52.   digitalWrite (GateQ12, LOW);
  53.   digitalWrite (GateQ13, LOW);
  54.   barette0();
  55.   delay (2000);
  56.   }
  57.  
  58.   void loop()
  59.   {
  60.   MonInsensite = analogRead(A6);
  61.   PotentiometerFine = analogRead(A1);
  62.   Temp = analogRead(A2);
  63.   //MonInsensite = constrain(MonInsensite, 0, 1000);
  64.   PotentiometerFine = constrain(PotentiometerFine, 0, 1023);
  65.   PotentiometerFine = map(PotentiometerFine, 0, 1023, -30, 30);
  66.  
  67.   RatioVcc = analogRead (A10);
  68.  
  69.   if (Temp > 800)
  70.   {
  71.   digitalWrite (GateQ11,LOW);
  72.   digitalWrite (GateQ12,LOW);
  73.   digitalWrite (GateQ13,LOW);
  74.   Erreur02();
  75.   }
  76.  
  77.   //if (RatioVcc <= K*6/1023)
  78.   if (RatioVcc <= (1.19/3.3*1023))
  79.   {
  80.   digitalWrite (GateQ11,HIGH);
  81.   digitalWrite (GateQ12,HIGH);
  82.   digitalWrite (GateQ13,HIGH);
  83.   barette0();
  84.   }
  85.  
  86.   //else if (RatioVcc <= K*11/1023)  
  87.   else if (RatioVcc <= (1.74/3.3*1023))
  88.   {
  89.   digitalWrite (GateQ11,LOW);
  90.   digitalWrite (GateQ12,HIGH);
  91.   digitalWrite (GateQ13,HIGH);
  92.   barette1();
  93.   }
  94.  
  95.   //else if (RatioVcc <= K*16/1023)
  96.   else if (RatioVcc <= (2.17/3.3*1023))
  97.   {
  98.   digitalWrite (GateQ11,LOW);
  99.   digitalWrite (GateQ12,LOW);
  100.   digitalWrite (GateQ13,HIGH);
  101.   barette2();
  102.   }
  103.  
  104.  
  105.  
  106.   //else if (RatioVcc <= K*21/1023)
  107.   else if (RatioVcc <= (2.5/3.3*1023))
  108.   {
  109.   digitalWrite (GateQ11,LOW);
  110.   digitalWrite (GateQ12,LOW);
  111.   digitalWrite (GateQ13,LOW);
  112.   barette3();
  113.   }
  114.  
  115.   //else if (RatioVcc <= (2.6/3.3*1023))
  116.   else if (RatioVcc <= (1*1023))
  117.   {
  118.   digitalWrite (GateQ11,LOW);
  119.   digitalWrite (GateQ12,LOW);
  120.   digitalWrite (GateQ13,LOW);
  121.   Erreur01();
  122.   }
  123.  
  124.   int adjustedValue = MonInsensite + PotentiometerFine;
  125.   int displayValue = constrain(adjustedValue, 0, 1000);
  126.  
  127.   // Ajoutez les nouvelles valeurs dans le tableau
  128.   total = total - readings[readIndex];
  129.   readings[readIndex] = displayValue;
  130.   total = total + readings[readIndex];
  131.   readIndex = (readIndex + 1) % numReadings;
  132.  
  133.   // Trouvez la valeur maximale et la valeur minimale dans le tableau
  134.   int maxVal = readings[0];
  135.   int minVal = readings[0];
  136.   for (int i = 1; i < numReadings; i++)
  137.   {
  138.   maxVal = max(maxVal, readings[i]);
  139.   minVal = min(minVal, readings[i]);
  140.   }
  141.  
  142.   // Calculez la moyenne en enlevant la valeur maximale et la valeur minimale
  143.   int averageValue = (total - maxVal - minVal) / (numReadings - 2);
  144.   averageValue = constrain(averageValue, 0, 1023);
  145.  
  146.   unsigned long currentTime = millis();
  147.  
  148.   if (abs(averageValue - LastMonInsensite) > 1)
  149.   {
  150.   display1.showNumberDec(displayValue, false, 4, 0);
  151.   LastMonInsensite = averageValue;
  152.   lastUpdateTime = currentTime;
  153.   }
  154.  
  155.   //int dacValue = map(adjustedValue01, 0, 1000, 0, 1000*0.960);
  156.  
  157.   analogWrite(A0, map(displayValue, 0, 1000, 0, 960));
  158.  // analogWrite(A0, dacValue);
  159.   }
  160.  
  161.  
  162.   void barette0()
  163.   {
  164.   //Strip.clear();
  165.   for (int i = 0; i <= 7; i++)
  166.   {
  167.   Strip.setPixelColor(i, 0, 255, 0);
  168.   Strip.show();
  169.   }
  170.   }
  171.  
  172.   void barette1()
  173.   {
  174.   //Strip.clear();
  175.   for (int i = 0; i <= 2; i++)
  176.   {
  177.   Strip.setPixelColor(i, 255, 0, 0);
  178.   Strip.show();
  179.   }
  180.  
  181.   for (int i = 3; i <= 7; i++)
  182.   {
  183.   Strip.setPixelColor(i, 0, 255, 0);
  184.   Strip.show();
  185.   }
  186.   Strip.show();
  187.   }
  188.  
  189.   void barette2()
  190.   {
  191.   //Strip.clear();
  192.   for (int i = 0; i <= 5; i++)
  193.   {
  194.   Strip.setPixelColor(i, 255, 0, 0);
  195.   Strip.show();
  196.   }
  197.  
  198.   for (int i = 6; i <= 7; i++)
  199.   {
  200.   Strip.setPixelColor(i, 0, 255, 0);
  201.   Strip.show();
  202.   }
  203.   Strip.show();
  204.   }
  205.  
  206.   void barette3()
  207.   {
  208.   //Strip.clear();
  209.   for (int i = 0; i <= 7; i++)
  210.   {
  211.   Strip.setPixelColor(i, 255, 0, 0);
  212.   Strip.show();
  213.   }
  214.   Strip.show();
  215.   }
  216.  
  217.   void Erreur01()                                       //
  218.   {
  219.   Strip.clear();
  220.   analogWrite(A0,0);
  221.   for (int i = 0; i <= 7; i++)
  222.   {
  223.   Strip.setPixelColor(i, 100, 0, 100);
  224.   Strip.show();
  225.  
  226.   }
  227.   delay(200);
  228.   Strip.clear();
  229.   analogWrite(A0,0);
  230.  
  231.   for (int i = 0; i <= 7; i++)
  232.   {
  233.   Strip.setPixelColor(i, 0, 100, 0);
  234.   Strip.show();
  235.  
  236.   }
  237.   delay(200);
  238.    Strip.clear();
  239.   analogWrite(A0,0);
  240.   for (int i = 0; i <= 7; i++)
  241.   {
  242.   Strip.setPixelColor(i, 100, 0, 100);
  243.   Strip.show();
  244.  
  245.   }
  246.   delay(200);
  247.   Strip.clear();
  248.   analogWrite(A0,0);
  249.  
  250.   for (int i = 0; i <= 7; i++)
  251.   {
  252.   Strip.setPixelColor(i, 0, 100, 0);
  253.   Strip.show();
  254.  
  255.   }
  256.   delay(200);
  257.    Strip.clear();
  258.   analogWrite(A0,0);
  259.   for (int i = 0; i <= 7; i++)
  260.   {
  261.   Strip.setPixelColor(i, 100, 0, 100);
  262.   Strip.show();
  263.  
  264.   }
  265.   delay(200);
  266.   Strip.clear();
  267.   analogWrite(A0,0);
  268.  
  269.   for (int i = 0; i <= 7; i++)
  270.   {
  271.   Strip.setPixelColor(i, 0, 100, 0);
  272.   Strip.show();
  273.  
  274.   }
  275.   delay(200);
  276.    Strip.clear();
  277.   analogWrite(A0,0);
  278.   for (int i = 0; i <= 7; i++)
  279.   {
  280.   Strip.setPixelColor(i, 100, 0, 100);
  281.   Strip.show();
  282.  
  283.   }
  284.   delay(200);
  285.   Strip.clear();
  286.   analogWrite(A0,0);
  287.  
  288.   for (int i = 0; i <= 7; i++)
  289.   {
  290.   Strip.setPixelColor(i, 0, 100, 0);
  291.   Strip.show();
  292.  
  293.   }
  294.   delay(200);
  295.    Strip.clear();
  296.   analogWrite(A0,0);
  297.   for (int i = 0; i <= 7; i++)
  298.   {
  299.   Strip.setPixelColor(i, 100, 0, 100);
  300.   Strip.show();
  301.  
  302.   }
  303.   delay(200);
  304.   Strip.clear();
  305.   analogWrite(A0,0);
  306.  
  307.   for (int i = 0; i <= 7; i++)
  308.   {
  309.   Strip.setPixelColor(i, 0, 100, 0);
  310.   Strip.show();
  311.  
  312.   }
  313.   delay(200);
  314.    Strip.clear();
  315.   analogWrite(A0,0);
  316.   for (int i = 0; i <= 7; i++)
  317.   {
  318.   Strip.setPixelColor(i, 100, 0, 100);
  319.   Strip.show();
  320.  
  321.   }
  322.   delay(200);
  323.   Strip.clear();
  324.   analogWrite(A0,0);
  325.  
  326.   for (int i = 0; i <= 7; i++)
  327.   {
  328.   Strip.setPixelColor(i, 0, 100, 0);
  329.   Strip.show();
  330.  
  331.   }
  332.   delay(200);
  333.  Strip.clear();
  334.   analogWrite(A0,0);
  335.   for (int i = 0; i <= 7; i++)
  336.   {
  337.   Strip.setPixelColor(i, 100, 0, 100);
  338.   Strip.show();
  339.  
  340.   }
  341.   delay(200);
  342.   Strip.clear();
  343.   analogWrite(A0,0);
  344.  
  345.   for (int i = 0; i <= 7; i++)
  346.   {
  347.   Strip.setPixelColor(i, 0, 100, 0);
  348.   Strip.show();
  349.  
  350.   }
  351.   delay(200);
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.   }
  361.  
  362.   void Erreur02()
  363.   {
  364.   Strip.clear();
  365.   analogWrite(A0,0);
  366.   for (int i = 0; i <= 7; i++)
  367.   {
  368.   Strip.setPixelColor(i, 0, 0, 255);
  369.   Strip.show();
  370.   }
  371.   delay(400);
  372.   Strip.clear();
  373.   analogWrite(A0,0);
  374.   for (int i = 0; i <= 7; i++)
  375.   {
  376.   Strip.setPixelColor(i, 0, 255, 0);
  377.   Strip.show();
  378.   }
  379.   delay(400);
  380.   Strip.clear();
  381.   analogWrite(A0,0);
  382.   for (int i = 0; i <= 7; i++)
  383.   {
  384.   Strip.setPixelColor(i, 0, 0, 255);
  385.   Strip.show();
  386.   }
  387.   delay(400);
  388.   Strip.clear();
  389.   analogWrite(A0,0);
  390.   for (int i = 0; i <= 7; i++)
  391.   {
  392.   Strip.setPixelColor(i, 0, 255, 0);
  393.   Strip.show();
  394.   }
  395.   delay(400);
  396.   Strip.clear();
  397.   analogWrite(A0,0);
  398.   for (int i = 0; i <= 7; i++)
  399.   {
  400.   Strip.setPixelColor(i, 0, 0, 255);
  401.   Strip.show();
  402.   }
  403.   delay(400);
  404.   Strip.clear();
  405.   analogWrite(A0,0);
  406.   for (int i = 0; i <= 7; i++)
  407.   {
  408.   Strip.setPixelColor(i, 0, 255, 0);
  409.   Strip.show();
  410.   }
  411.   delay(400);
  412.   Strip.clear();
  413.   analogWrite(A0,0);
  414.   for (int i = 0; i <= 7; i++)
  415.   {
  416.   Strip.setPixelColor(i, 0, 0, 255);
  417.   Strip.show();
  418.   }
  419.   delay(400);
  420.   Strip.clear();
  421.   analogWrite(A0,0);
  422.   for (int i = 0; i <= 7; i++)
  423.   {
  424.   Strip.setPixelColor(i, 0, 255, 0);
  425.   Strip.show();
  426.   }
  427.   delay(400);
  428.   Strip.clear();
  429.   analogWrite(A0,0);
  430.   for (int i = 0; i <= 7; i++)
  431.   {
  432.   Strip.setPixelColor(i, 0, 0, 255);
  433.   Strip.show();
  434.   }
  435.   delay(400);
  436.   Strip.clear();
  437.   analogWrite(A0,0);
  438.   for (int i = 0; i <= 7; i++)
  439.   {
  440.   Strip.setPixelColor(i, 0, 255, 0);
  441.   Strip.show();
  442.   }
  443.   delay(400);
  444.   Strip.clear();
  445.   analogWrite(A0,0);
  446.   for (int i = 0; i <= 7; i++)
  447.   {
  448.   Strip.setPixelColor(i, 0, 0, 255);
  449.   Strip.show();
  450.   }
  451.   delay(400);
  452.   Strip.clear();
  453.   analogWrite(A0,0);
  454.   for (int i = 0; i <= 7; i++)
  455.   {
  456.   Strip.setPixelColor(i, 0, 255, 0);
  457.   Strip.show();
  458.   }
  459.   delay(400);
  460.  
  461.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement