Hey, I built a device to monitor battery voltage and do certain actions depending on what the voltage was at. If it passes a certain voltage it does one thing, then past that another thing. Right now, no matter what, it performs both actions. Is there a fault in my code? I can't find any.
int buzzer = 1, voltpin = 2, val = 0, mosfet = 0, cut = 0, buzz = 0;
boolean buzzed = false, cutoff = false;
void setup() {
pinMode(mosfet, OUTPUT);
pinMode(buzzer, OUTPUT);
delay(3000);
val = analogRead(voltpin);
if (val >= 560) {
buzz = 580;
cut = 566;
}
else if ( val >= 364) {
buzz = 387;
cut = 363;
}
}
void loop() {
val = analogRead(voltpin);
if (cutoff == false) {
if (val <= buzz && buzzed == false) {
tone(buzzer, 4500);
delay(250);
noTone(buzzer);
delay(250);
tone(buzzer, 4500);
delay(250);
noTone(buzzer);
delay(250);
tone(buzzer, 4500);
delay(1000);
noTone(buzzer);
buzzed = true;
}
if (val <= cut && cutoff == false) {
digitalWrite(mosfet, LOW);
cutoff = true;
}
if (cutoff == false) {
digitalWrite(mosfet, HIGH);
}
}
delay(1000);
}
Thanks