const int medidor = 5;
const int onoff = 7;
const int controle = 9;
int estado_medidor = LOW;
int estado_onoff = LOW;
int flag_controle
= 0;
int voltas = 0;
double diam_carretel
= 0.0628; // m
double comp = 0;
// Comprimento a ser enrolado, em metros
float comp_alvo = 2.5;
// m
void setup() {
pinMode(medidor, INPUT);
pinMode(onoff, INPUT);
pinMode(controle, OUTPUT);
digitalWrite( controle , LOW );
Serial.begin(9600);
}
void loop() {
estado_medidor = digitalRead( medidor );
estado_onoff = digitalRead( onoff
);
if ((estado_onoff == HIGH) &&
(comp < comp_alvo)) {
digitalWrite( controle , HIGH );
flag_controle = 1;
if (estado_medidor == HIGH) {
comp = voltas * 3.1415 * diam_carretel;
Serial.print( comp
);
Serial.println("
m");
voltas
= voltas + 1;
delay(50);
}
}
if ((estado_onoff == LOW) || (comp >
comp_alvo)) {
digitalWrite( controle , LOW );
flag_controle == 0;
}
}