Dysfonctionnement du programme

Bonsoir, mon projet est de créer une machine à cocktail. Pour cela j'utilise des électrovannes.
pour faire la version 1, j'ai fais un code, qui consiste a ouvrir une électrovanne lorsqu'on appuis sur un bouton, et qui se referme lorsqu'on relache le bouton.
mon problème est : le programme fonctionne bien les 8 premieres secondes, pour les 8 autres secondes l'électrovanne reste ouverte alors que je ne touche plus le bouton, les 8 secondes suivantes le programme fonctionne a nouveau, et les 8 autres suivantes ça ne fonctionne plus, ainsi de suite. le programme marche alternativement, si quelqu'un a une idéé ça m'aiderai beaucoup, merci.

le code est le suivant:

int vanne1;
int bouton1;

void setup() {

vanne1=2;
bouton1=8;

pinMode(vanne1,OUTPUT);
pinMode(bouton1,INPUT);

}

void loop() {

boolean etatBouton1 = digitalRead(bouton1);
if(etatBouton1){
digitalWrite(vanne1,HIGH);
}
else{
digitalWrite(vanne1,LOW);
}

delay(200);
}