Étape 10 : Arduino croquis pour interrupteur à bascule
Je veux le clapet se comporter comme une pédale d’effet réel, alors j’ai décidé de faire un interrupteur à bascule ensuite. J’ai utilisé le sketch de l’échantillon, « Knock », parmi les exemples de « Capteurs ».
Cet exemple utilise le même câblage que le « IfStatementConditional » ci-dessus. Toutefois, avant que j’ai chargé le croquis, j’ai fait un petit changement :
Serial.println("knock!") ;
devient
Serial.println(sensorReading) ;
Cela me permet de voir les valeurs des lectures Arduino au large de la benne preneuse.
Après vérification et l’esquisse de chargement, j’ai ouvert le serial monitor. Maintenant chaque fois que j’ai tapé sur le clapet, la fonction intégrée dirigée sur la broche 13 activé et désactivé. En outre, le capteur lire lui-même est apparu dans le moniteur de la série.
Il a bien fonctionné, mais j’ai remarqué que le moniteur revient parfois plusieurs lectures pour chaque robinet, ou none du tout. Donc, j’ai joué avec la valeur de délai et varié à quelle vitesse je me tapant l’interrupteur avec mon pied. Un retard de 150 semble fonctionner mieux pour moi.
Tout comme avec la première esquisse, la valeur de seuil est essentiel : si ça ne fonctionne pas, assurez-vous que le numéro attribué au « seuil » est beaucoup plus faible que le capteur lire des nombres dans le moniteur.
Voici l’esquisse, une petite variation sur Knock!, que j’appellerai Stomp_Toggle. Une fois que vous obtenez le fonctionnement du commutateur, vous pouvez couper et coller le code dans toute esquisse que vous aimez.
/ * Stomp activer/désactiver
Cette esquisse lit la résistance variable à clapet utilisée comme interrupteur stomp.
Il lit une broche analogique et compare le résultat à un seuil fixé.
Si le résultat est supérieur au seuil, il écrit
la valeur pour le port série et permet de basculer la LED sur la broche 13.
Le circuit :
* Un conducteur de la benne preneuse attaché à A0
* Autre conducteur de benne preneuse attaché à 5V sur Arduino
* Résistance de K 10 joint d’analogique 0 à terre
http://www.Arduino.cc/en/Tutorial/Knock
créé le 25 mars 2007
par David Cuartielles < http://www.0j0.org>
mis à jour le 30 août 2011
par Tom Igoe
mis à jour le 10 décembre 2013
par Jesse sow
Cet exemple de code est dans le domaine public.
*/
ces constantes ne changeront pas :
const int ledPin = 13 ; conduit relié à la broche numérique 13
const int knockSensor = A0 ; le clapet est connecté à la broche analogique 0
const int seuil = 500 ; valeur de seuil de décider quand la pression détectée fait basculer l’interrupteur
ces variables vont changer :
int sensorReading = 0 ; variable pour stocker la valeur lue de l’axe du capteur
int ledState = faible ; variable utilisée pour stocker le dernier état de la LED, pour activer/désactiver la lumière
void setup() {}
pinMode (ledPin, sortie) ; déclarer la ledPin comme sortie
Serial.Begin(9600) ; utiliser le port série
}
void loop() {}
lire le capteur et la stocker dans la variable sensorReading :
sensorReading = analogRead(knockSensor) ;
Si la lecture du capteur est supérieure au seuil :
Si (sensorReading > = seuil) {}
activer/désactiver l’état de la ledPin :
ledState =! ledState ;
mise à jour de la broche LED lui-même :
digitalWrite (ledPin, ledState) ;
renvoyer la lecture du capteur à l’ordinateur, suivi par le saut de ligne
Serial.println(sensorReading) ;
}
Delay(150) ; retard pour éviter de surcharger la mémoire tampon de port série
}