Salve, ho creato un programma di esempio per verificare il funzionamento di un mio progetto. Prima del cilclo while avevo inserito i cicli for con delay, poi ho cercato di modificare usando millis e while ma non funziona. Ho messo dei print per verificare i passaggi, ma non viene stampato niente, come se nel ciclo while non entrasse.
#include <RBDdimmer.h>//
#define outputPin 12
#define al 20 // percentuale
#define tempo 300
int mta=0; // Indica metà tempo di alba
int flag = 0;
int i=0;
long mil = 0;
dimmerLamp dimmer(outputPin); //initialase port for dimmer for MEGA, Leonardo, UNO, Arduino M0, Arduino Zero
int outVal = 0;
void setup() {
Serial.begin(9600);
dimmer.begin(NORMAL_MODE, ON); //dimmer initialisation: name.begin(MODE, STATE)
dimmer.setPower(0);
}
void loop()
{
mta=(((al/2)*tempo)/100)*10;
while (flag = 0) {
Serial.println(flag);
if (millis()-mil > tempo) {
i++;
if (i>100) flag = 1; i=100;
Serial.print(i);
dimmer.setPower(i); // name.setPower(0%-100%)
mil = millis();
}
}
flag = 0;
// Serial.println(flag);
while (flag = 0) {
if (millis()-mil > tempo) {
i--;
if (i<1) flag = 1; i=0;
dimmer.setPower(i); // name.setPower(0%-100%)
Serial.println(i);
mil = millis();
}
}
}