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 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
|
#include <Preferences.h>
Preferences prefs;
#define CYD_LED_BLUE 17
#define CYD_LED_RED 4
#define CYD_LED_GREEN 16
float VarA = 0;
float VarB = 0;
float val=-1;
byte SerialOK=0;
unsigned long previousMillis = 0;
#define INTERVAL 60000 * 1 // 1 min
//*********************************************
// SETUP
//*********************************************
void setup() {
Serial.begin(115200);
pinMode(CYD_LED_RED, OUTPUT);
pinMode(CYD_LED_GREEN, OUTPUT);
pinMode(CYD_LED_BLUE, OUTPUT);
digitalWrite(CYD_LED_RED, HIGH);
digitalWrite(CYD_LED_GREEN, HIGH);
digitalWrite(CYD_LED_BLUE, HIGH);
}
//*********************************************
// LOOP
//*********************************************
void loop() {
unsigned long currentMillis = millis();
if (currentMillis - previousMillis > INTERVAL) {
previousMillis = currentMillis;
TestMem();
}
}
void Leds() {
prefs.begin("Memoire", false);
VarB = prefs.getFloat ("Memoire", VarA);
prefs.end();
Serial.print("VarB = ");
Serial.println(VarB);
if (VarB < VarA){
digitalWrite(CYD_LED_RED, LOW);
digitalWrite(CYD_LED_GREEN, HIGH);
digitalWrite(CYD_LED_BLUE, HIGH);
} else if (VarB == VarA) {
digitalWrite(CYD_LED_RED, HIGH);
digitalWrite(CYD_LED_GREEN, LOW);
digitalWrite(CYD_LED_BLUE, HIGH);
} else if (VarB > VarA) {
digitalWrite(CYD_LED_RED, HIGH);
digitalWrite(CYD_LED_GREEN, HIGH);
digitalWrite(CYD_LED_BLUE, LOW);
} else {
digitalWrite(CYD_LED_RED, HIGH);
digitalWrite(CYD_LED_GREEN, HIGH);
digitalWrite(CYD_LED_BLUE, HIGH);
}
}
void TestMem() {
Serial.print("Saisir la valeur VarA\n");
val = -1;
while( val<0 || val>100) { // borne inferieure et supèrieure
int l=0; // nb de donnée à lire present sur le port serie
char tampon[10]=""; // mémoire tampon pour la lecture serie
Serial.println("Veuillez saisir une valeur entre 0.00 et 100.00:");
while(!l) { delay(200); l=Serial.available(); } // attend la saisie d'une donnée
for (int i=0; i < l; i++){ tampon[i]=Serial.read(); delay(15); } // lecture
val = atof(tampon); // converti en float
}
VarA = val;
Serial.print("VarA = ");
Serial.println(VarA);
Leds();
prefs.begin("Memoire", false);
prefs.putFloat ("Memoire", VarA);
prefs.end();
} |
Partager