Hello,
Can anyone spot the error in this code? The buzzer on D7 don't work, and I need to hold the button down for 5 seconds for it to change levels... I shold change levels with only a push... If you hold the button for 5 seconds it should turn D7 true untill you push the button again..
int buttonSensor = analogRead(A1);
int countbuttonsec = 0;
int level = 0;
bool levelon = false;
const int ledPin = 3;
const int relaisPin = 7;
#define NOTE_G3 196
void setup() {
// put your setup code here, to run once:
pinMode(ledPin, OUTPUT);
pinMode(relaisPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
// Convert the analog reading (which goes from 0 - 1023 er 40) to a voltage (0 - 5V):
buttonSensor = analogRead(A1);
if (buttonSensor > 961) {
countbuttonsec++;
if (countbuttonsec == 1){
if (level == 0){
digitalWrite(ledPin, HIGH);
buzz();
delay(1000);
digitalWrite(ledPin, LOW);
level1();
level++;
}
else if (level == 1){
digitalWrite(ledPin, HIGH);
buzz();
delay(10000);
digitalWrite(ledPin, LOW);
delay(500);
digitalWrite(ledPin, HIGH);
buzz();
delay(1000);
digitalWrite(ledPin, LOW);
level2();
level++;
}
else if (level == 2){
digitalWrite(ledPin, HIGH);
buzz();
delay(1000);
digitalWrite(ledPin, LOW);
delay(500);
digitalWrite(ledPin, HIGH);
buzz();
delay(1000);
digitalWrite(ledPin, LOW);
delay(500);
digitalWrite(ledPin, HIGH);
buzz();
delay(1000);
digitalWrite(ledPin, LOW);
level3();
level++;
}
else if (level == 3){
digitalWrite(ledPin, HIGH);
buzz();
delay(1000);
digitalWrite(ledPin, LOW);
delay(500);
digitalWrite(ledPin, HIGH);
buzz();
delay(1000);
digitalWrite(ledPin, LOW);
delay(500);
digitalWrite(ledPin, HIGH);
buzz();
delay(1000);
digitalWrite(ledPin, LOW);
delay(500);
digitalWrite(ledPin, HIGH);
buzz();
delay(1000);
digitalWrite(ledPin, LOW);
level4();
level++;
}
else if (level == 4){
digitalWrite(ledPin, HIGH);
buzz();
delay(300);
digitalWrite(ledPin, LOW);
delay(300);
digitalWrite(ledPin, HIGH);
buzz();
delay(300);
digitalWrite(ledPin, LOW);
delay(300);
digitalWrite(ledPin, HIGH);
buzz();
delay(300);
digitalWrite(ledPin, LOW);
level = 0;
}
}
else if(countbuttonsec > 5000){
buzz();
buzz();
buzz();
if (level != 5){
digitalWrite(relaisPin, 250);
digitalWrite(ledPin, HIGH);
delay(1000);
digitalWrite(ledPin, LOW);
level = 5;
}
else{
digitalWrite(relaisPin, 0);
digitalWrite(ledPin, HIGH);
delay(200);
digitalWrite(ledPin, LOW);
level = 0;
}
}
}
else{
countbuttonsec = 0;
if (level > 0){
if (level == 1){
level1();
}
else if (level == 2){
level2();
}
else if (level == 3){
level3();
}
else if (level == 4){
level4();
}
}
}
// print out the value you read:
}
void level1(){
//levelon = true;
digitalWrite(relaisPin, 250);
delay(1500);
digitalWrite(relaisPin, 0);
delay(5000);
//levelon = false
}
void level2(){
//levelon = true;
digitalWrite(relaisPin, 250);
delay(1500);
digitalWrite(relaisPin, 0);
delay(10000);
//levelon = false
}
void level3(){
//levelon = true;
digitalWrite(relaisPin, 250);
delay(1500);
digitalWrite(relaisPin, 0);
delay(150000);
//levelon = false
}
void level4(){
//levelon = true;
digitalWrite(relaisPin, 250);
delay(1500);
digitalWrite(relaisPin, 0);
delay(200000);
//levelon = false
}
void buzz(){
tone(8, NOTE_G3, 0.2);
}