Étape 2: Ajouter du code
Copiez et collez le code suivant dans le sketch Arduino (copiez le code suivant est une variante d’une capacité de détection de code qui est assez stable et gratuite de bruit. Voici le lien vers l’original du code dans l' Arduino forum.
code basé sur CapSense.pde par Paul Badger 2007. Quelques changements sur la façon dont les broches e/s sont déclarés.
code peut être trouvé ici http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1171076259
int i ;
unsigned int x, y ;
float accum, fout, fval =. 07 ; Ce sont des variables pour un filtre simple passe-bas (lissage) - fval de 1 ne = aucun filtre - 001 = max filtre
void setup() {}
Serial.Begin(9600) ;
pinMode (sortie 8) ; broche de sortie
pinMode (9, entrée) ; broche d’entrée
pinMode (sortie 10,) ; goupille garde
digitalWrite (10, faible) ;
pinMode (13, sortie) ;
pinMode (sortie 12,) ; pourrait être aussi haute - ne pas utiliser cette broche pour changer de sortie si
}
void loop() {}
y = 0 ; effacer les variables
x = 0 ;
pour (i = 0; j’ai < 4; i ++) {/ / faire quatre fois pour accumuler une moyenne - pas vraiment nécessaire mais le sort de certains gigue
Transition de faible à élevé
Même que la ligne ci-dessous - montre programmeur côtelettes mais n’est pas vraiment acheter n’importe quelle vitesse plus
digitalWrite (8, HIGH) ;
alors que la goupille de sens n’est pas élevée
tandis que (digitalRead(9)! = 1) {/ / Idem manipulation port au-dessus - seul 20 fois plus lente !
x ++ ;
}
Delay(1) ;
HAUT-à-basse transition
Même en ligne ci-dessous - ces spectacles programmeur côtelettes mais n’est pas vraiment acheter n’importe quelle vitesse plus
digitalWrite (8, faible) ;
tandis que le pin n’est pas faible--même en dessous seulement 20 fois plus rapide
while(digitalRead(9)! = 0) {/ / Idem manipulation port - seulement 20 fois plus lente !
y ++ ;
}
Delay(1) ;
}
s’en fout = (fval * (flotteur) x) + ((1-fval) * accum) ; Lissage facile filtre « fval » détermine la quantité de nouvelles données au fout
Accum = fout ;
Si {(fout > 90)
digitalWrite (13, HIGH) ;
digitalWrite (12, HIGH) ;
} else {}
digitalWrite (13, faible) ;
digitalWrite (12, faible) ;
}
Serial.Print ("") ;
Serial.println ((long) s’en fout, DEC) ; Lissée de faible à élevé
}