Sorry,
eerste keer hier op forum
dus dit is de code, weliswaar hoofdzakelijk van internet gehaald met hier en daar wat aanpassingen, maar zoals eerder al gezegd zonder piezo werkt het perfect zoals ik wil met piezo ook behalve dat de piezo blijft gaan terwijl het de bedoeling is enkel als de button 1 is .
mvg
frank
int buttonPin = 12;
int buzzerPin = 10;
int fi = 7;
int se = 8;
int th = 9;
const int toneFreq = 2200;
int buttonPushCounter = 0;
int buttonState = 0;
int lastButtonState = 0;
void setup()
{
Serial.begin(9600);
pinMode(buttonPin, INPUT);
pinMode(buzzerPin, OUTPUT);
pinMode(fi, OUTPUT);
pinMode(se, OUTPUT);
pinMode(th, OUTPUT);
digitalWrite(fi, LOW);
digitalWrite(se, LOW);
digitalWrite(th, LOW);
digitalWrite(fi, LOW);
digitalWrite(se, LOW);
digitalWrite(th, LOW);
}
void loop()
{
// read the pushbutton input pin:
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH){
tone(buzzerPin, toneFreq);
delay(200);
}
if (buttonState == LOW){
noTone(10);
}
// compare the buttonState to its previous state
if (buttonState != lastButtonState) {
// if the state has changed, increment the counter
if (buttonState == HIGH) {
// if the current state is HIGH then the button
// wend from off to on:
buttonPushCounter++;
if(buttonPushCounter == 5){ buttonPushCounter = 1;}
Serial.println("on");
Serial.print("number of button pushes: ");
Serial.println(buttonPushCounter);
}
else {
// if the current state is LOW then the button
// went from on to off:
Serial.println("off");
}
}
// save the current state as the last state,
//for next time through the loop
lastButtonState = buttonState;
switch(buttonPushCounter)
{
case 1:
digitalWrite(fi, HIGH);
digitalWrite(se, LOW);
digitalWrite(th, LOW);
break;
case 2:
digitalWrite(fi, HIGH);
digitalWrite(se, HIGH);
digitalWrite(th, LOW);
break;
case 3:
digitalWrite(fi, HIGH);
digitalWrite(se, HIGH);
digitalWrite(th, HIGH);
break;
case 4:
digitalWrite(fi, LOW);
digitalWrite(se, LOW);
digitalWrite(th, LOW);
break;
}
Serial.println(buttonState);
}