Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <TM1637Display.h>
- #include <Adafruit_NeoPixel.h>
- #define CLK1 D5
- #define DIO1 D4
- #define GateQ11 D7
- #define GateQ12 D8
- #define GateQ13 D9
- #define BrocheNeopixel D3
- #define NLed 8
- TM1637Display display1(CLK1, DIO1);
- Adafruit_NeoPixel Strip(NLed, BrocheNeopixel, NEO_GRB + NEO_KHZ800);
- #define Luminosite 10 // Lumunosité Matrice (de 0 à 255)
- int MonInsensite = 0;
- int LastMonInsensite = 0;
- int PotentiometerFine = 0;
- int Temp =0;
- const int numReadings = 40; // Nombre d'échantillons pour la moyenne mobile
- int readings[numReadings]; // Tableau pour stocker les échantillons
- int readIndex = 0; // Index de lecture dans le tableau
- int total = 0; // Somme des échantillons
- int RatioVcc ;
- float K = 1000/8200;
- unsigned long lastUpdateTime = 0;
- unsigned long updateInterval = 800; // Mettre ici la durée souhaitée en millisecondes
- //unsigned long updateInterval = 400;
- void setup()
- {
- pinMode (GateQ11, OUTPUT);
- pinMode (GateQ12, OUTPUT);
- pinMode (GateQ13, OUTPUT);
- analogReadResolution(10);
- analogWriteResolution(10); // Résolution du DAC (10 bits)
- display1.setBrightness(0x0A); // Luminosité entre 0x0A et 0x0F
- Strip.begin(); // Initialisation de la barette Néopixel de 8 Leds
- Strip.setBrightness(Luminosite);
- analogWrite(A0, 0); // Initaialisation du DAC à zéro pendant 2 secondes
- digitalWrite (GateQ11, LOW);
- digitalWrite (GateQ12, LOW);
- digitalWrite (GateQ13, LOW);
- barette0();
- delay (2000);
- }
- void loop()
- {
- MonInsensite = analogRead(A6);
- PotentiometerFine = analogRead(A1);
- Temp = analogRead(A2);
- //MonInsensite = constrain(MonInsensite, 0, 1000);
- PotentiometerFine = constrain(PotentiometerFine, 0, 1023);
- PotentiometerFine = map(PotentiometerFine, 0, 1023, -30, 30);
- RatioVcc = analogRead (A10);
- if (Temp > 800)
- {
- digitalWrite (GateQ11,LOW);
- digitalWrite (GateQ12,LOW);
- digitalWrite (GateQ13,LOW);
- Erreur02();
- }
- //if (RatioVcc <= K*6/1023)
- if (RatioVcc <= (1.19/3.3*1023))
- {
- digitalWrite (GateQ11,HIGH);
- digitalWrite (GateQ12,HIGH);
- digitalWrite (GateQ13,HIGH);
- barette0();
- }
- //else if (RatioVcc <= K*11/1023)
- else if (RatioVcc <= (1.74/3.3*1023))
- {
- digitalWrite (GateQ11,LOW);
- digitalWrite (GateQ12,HIGH);
- digitalWrite (GateQ13,HIGH);
- barette1();
- }
- //else if (RatioVcc <= K*16/1023)
- else if (RatioVcc <= (2.17/3.3*1023))
- {
- digitalWrite (GateQ11,LOW);
- digitalWrite (GateQ12,LOW);
- digitalWrite (GateQ13,HIGH);
- barette2();
- }
- //else if (RatioVcc <= K*21/1023)
- else if (RatioVcc <= (2.5/3.3*1023))
- {
- digitalWrite (GateQ11,LOW);
- digitalWrite (GateQ12,LOW);
- digitalWrite (GateQ13,LOW);
- barette3();
- }
- //else if (RatioVcc <= (2.6/3.3*1023))
- else if (RatioVcc <= (1*1023))
- {
- digitalWrite (GateQ11,LOW);
- digitalWrite (GateQ12,LOW);
- digitalWrite (GateQ13,LOW);
- Erreur01();
- }
- int adjustedValue = MonInsensite + PotentiometerFine;
- int displayValue = constrain(adjustedValue, 0, 1000);
- // Ajoutez les nouvelles valeurs dans le tableau
- total = total - readings[readIndex];
- readings[readIndex] = displayValue;
- total = total + readings[readIndex];
- readIndex = (readIndex + 1) % numReadings;
- // Trouvez la valeur maximale et la valeur minimale dans le tableau
- int maxVal = readings[0];
- int minVal = readings[0];
- for (int i = 1; i < numReadings; i++)
- {
- maxVal = max(maxVal, readings[i]);
- minVal = min(minVal, readings[i]);
- }
- // Calculez la moyenne en enlevant la valeur maximale et la valeur minimale
- int averageValue = (total - maxVal - minVal) / (numReadings - 2);
- averageValue = constrain(averageValue, 0, 1023);
- unsigned long currentTime = millis();
- if (abs(averageValue - LastMonInsensite) > 1)
- {
- display1.showNumberDec(displayValue, false, 4, 0);
- LastMonInsensite = averageValue;
- lastUpdateTime = currentTime;
- }
- //int dacValue = map(adjustedValue01, 0, 1000, 0, 1000*0.960);
- analogWrite(A0, map(displayValue, 0, 1000, 0, 960));
- // analogWrite(A0, dacValue);
- }
- void barette0()
- {
- //Strip.clear();
- for (int i = 0; i <= 7; i++)
- {
- Strip.setPixelColor(i, 0, 255, 0);
- Strip.show();
- }
- }
- void barette1()
- {
- //Strip.clear();
- for (int i = 0; i <= 2; i++)
- {
- Strip.setPixelColor(i, 255, 0, 0);
- Strip.show();
- }
- for (int i = 3; i <= 7; i++)
- {
- Strip.setPixelColor(i, 0, 255, 0);
- Strip.show();
- }
- Strip.show();
- }
- void barette2()
- {
- //Strip.clear();
- for (int i = 0; i <= 5; i++)
- {
- Strip.setPixelColor(i, 255, 0, 0);
- Strip.show();
- }
- for (int i = 6; i <= 7; i++)
- {
- Strip.setPixelColor(i, 0, 255, 0);
- Strip.show();
- }
- Strip.show();
- }
- void barette3()
- {
- //Strip.clear();
- for (int i = 0; i <= 7; i++)
- {
- Strip.setPixelColor(i, 255, 0, 0);
- Strip.show();
- }
- Strip.show();
- }
- void Erreur01() //
- {
- Strip.clear();
- analogWrite(A0,0);
- for (int i = 0; i <= 7; i++)
- {
- Strip.setPixelColor(i, 100, 0, 100);
- Strip.show();
- }
- delay(200);
- Strip.clear();
- analogWrite(A0,0);
- for (int i = 0; i <= 7; i++)
- {
- Strip.setPixelColor(i, 0, 100, 0);
- Strip.show();
- }
- delay(200);
- Strip.clear();
- analogWrite(A0,0);
- for (int i = 0; i <= 7; i++)
- {
- Strip.setPixelColor(i, 100, 0, 100);
- Strip.show();
- }
- delay(200);
- Strip.clear();
- analogWrite(A0,0);
- for (int i = 0; i <= 7; i++)
- {
- Strip.setPixelColor(i, 0, 100, 0);
- Strip.show();
- }
- delay(200);
- Strip.clear();
- analogWrite(A0,0);
- for (int i = 0; i <= 7; i++)
- {
- Strip.setPixelColor(i, 100, 0, 100);
- Strip.show();
- }
- delay(200);
- Strip.clear();
- analogWrite(A0,0);
- for (int i = 0; i <= 7; i++)
- {
- Strip.setPixelColor(i, 0, 100, 0);
- Strip.show();
- }
- delay(200);
- Strip.clear();
- analogWrite(A0,0);
- for (int i = 0; i <= 7; i++)
- {
- Strip.setPixelColor(i, 100, 0, 100);
- Strip.show();
- }
- delay(200);
- Strip.clear();
- analogWrite(A0,0);
- for (int i = 0; i <= 7; i++)
- {
- Strip.setPixelColor(i, 0, 100, 0);
- Strip.show();
- }
- delay(200);
- Strip.clear();
- analogWrite(A0,0);
- for (int i = 0; i <= 7; i++)
- {
- Strip.setPixelColor(i, 100, 0, 100);
- Strip.show();
- }
- delay(200);
- Strip.clear();
- analogWrite(A0,0);
- for (int i = 0; i <= 7; i++)
- {
- Strip.setPixelColor(i, 0, 100, 0);
- Strip.show();
- }
- delay(200);
- Strip.clear();
- analogWrite(A0,0);
- for (int i = 0; i <= 7; i++)
- {
- Strip.setPixelColor(i, 100, 0, 100);
- Strip.show();
- }
- delay(200);
- Strip.clear();
- analogWrite(A0,0);
- for (int i = 0; i <= 7; i++)
- {
- Strip.setPixelColor(i, 0, 100, 0);
- Strip.show();
- }
- delay(200);
- Strip.clear();
- analogWrite(A0,0);
- for (int i = 0; i <= 7; i++)
- {
- Strip.setPixelColor(i, 100, 0, 100);
- Strip.show();
- }
- delay(200);
- Strip.clear();
- analogWrite(A0,0);
- for (int i = 0; i <= 7; i++)
- {
- Strip.setPixelColor(i, 0, 100, 0);
- Strip.show();
- }
- delay(200);
- }
- void Erreur02()
- {
- Strip.clear();
- analogWrite(A0,0);
- for (int i = 0; i <= 7; i++)
- {
- Strip.setPixelColor(i, 0, 0, 255);
- Strip.show();
- }
- delay(400);
- Strip.clear();
- analogWrite(A0,0);
- for (int i = 0; i <= 7; i++)
- {
- Strip.setPixelColor(i, 0, 255, 0);
- Strip.show();
- }
- delay(400);
- Strip.clear();
- analogWrite(A0,0);
- for (int i = 0; i <= 7; i++)
- {
- Strip.setPixelColor(i, 0, 0, 255);
- Strip.show();
- }
- delay(400);
- Strip.clear();
- analogWrite(A0,0);
- for (int i = 0; i <= 7; i++)
- {
- Strip.setPixelColor(i, 0, 255, 0);
- Strip.show();
- }
- delay(400);
- Strip.clear();
- analogWrite(A0,0);
- for (int i = 0; i <= 7; i++)
- {
- Strip.setPixelColor(i, 0, 0, 255);
- Strip.show();
- }
- delay(400);
- Strip.clear();
- analogWrite(A0,0);
- for (int i = 0; i <= 7; i++)
- {
- Strip.setPixelColor(i, 0, 255, 0);
- Strip.show();
- }
- delay(400);
- Strip.clear();
- analogWrite(A0,0);
- for (int i = 0; i <= 7; i++)
- {
- Strip.setPixelColor(i, 0, 0, 255);
- Strip.show();
- }
- delay(400);
- Strip.clear();
- analogWrite(A0,0);
- for (int i = 0; i <= 7; i++)
- {
- Strip.setPixelColor(i, 0, 255, 0);
- Strip.show();
- }
- delay(400);
- Strip.clear();
- analogWrite(A0,0);
- for (int i = 0; i <= 7; i++)
- {
- Strip.setPixelColor(i, 0, 0, 255);
- Strip.show();
- }
- delay(400);
- Strip.clear();
- analogWrite(A0,0);
- for (int i = 0; i <= 7; i++)
- {
- Strip.setPixelColor(i, 0, 255, 0);
- Strip.show();
- }
- delay(400);
- Strip.clear();
- analogWrite(A0,0);
- for (int i = 0; i <= 7; i++)
- {
- Strip.setPixelColor(i, 0, 0, 255);
- Strip.show();
- }
- delay(400);
- Strip.clear();
- analogWrite(A0,0);
- for (int i = 0; i <= 7; i++)
- {
- Strip.setPixelColor(i, 0, 255, 0);
- Strip.show();
- }
- delay(400);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement