'Knock Back' - A frapper écho Arduino (3 / 4 étapes)

Étape 3: L’esquisse

Télécharger ce qui suit à votre Arduino.

/ * Écho Knock Sensor

Cette esquisse lit un élément piézo-électrique pour détecter une bonne frappe.
Il lit une broche analogique et compare le résultat à un seuil fixé.
Si le résultat est supérieur au seuil, elle stocke la valeur de millis() dans un tableau.
Après une période définie sans coups supplémentaires, les coups sont relus par le dispositif.

Créé par Dan Nicholson < http://dannicholson.co.uk>
Basé sur « Knock Sensor », créé le 25 mars 2007 par David Cuartielles < http://www.0j0.org> modifiée le 30 août 2011 par Tom Igoe

*/

ces constantes ne changeront pas :
const int ledPin = 9 ;         conduit relié à la broche numérique
const int ronfleur = 8 ;                           vibreur de sortie connecté à la broche numérique.
const int knockSensor = A0 ;    le piezo est connecté à la broche analogique 0
const int seuil = 100 ;     valeur de seuil de décider quand le bruit détecté est un coup ou pas
const int arraySize = 20 ;   Frapper de taille de tableau (vous pouvez l’enlever dans les fonctions et utiliser sizeof() si vous préférez)
const int replayWait = 2000 ;    Nombre de millisecondes à attendre avant la relecture frappe modèle

ces variables vont changer :
int sensorReading = 0 ;         variable pour stocker la valeur lue de l’axe du capteur
unsigned longs coups [arraySize] ;         Knock « tampon » - stocke le minutage de chaque coup prêt pour rejouer.
int knockPos = 0 ;     Frappe de position actuelle dans le tableau
unsigned long lastKnock = false ;         Heure du dernier coup

void setup() {}
pinMode (ledPin, sortie) ;    déclarer la ledPin comme sortie
pinMode (vibreur, sortie) ;                      déclarer la broche buzzer comme sortie
Serial.Begin(9600) ;          utiliser le port série
}

void loop() {}
sensorReading = analogRead(knockSensor) ; lire le capteur
Si (lastKnock & & (lastKnock + replayWait) < millis()) replayKnocks() ; Relecture des coups si le dernier coup est plus âgé que le délai d’attente défini
ElseIf (sensorReading > = seuil) handleKnock(sensorReading) ; En cas de coup, gérer
Delay(30) ;
}

Sub handleKnock(int reading)
{
lastKnock = millis() ;
Si (knockPos < arraySize)
{
frappe [knockPos ++] = lastKnock ; Stocker le minutage et incrément position variable
Flash(false) ;
Sortie de débogage
Serial.Print ("frapper:") ;
Serial.println(Reading) ;
}
d’autre
{
Serial.println ("Buffer complet") ;
}
}
Sub éclair (buzz booléenne)
{
digitalWrite (ledPin, HIGH) ;   allumer la LED (HIGH est le niveau de tension)
Si ton (buzz) (sonnerie, 1000) ;
Delay(50) ;
digitalWrite (ledPin, basse) ;   éteindre la LED (LOW est le niveau de tension)
Si noTone(buzzer) (buzz) ;
}
Sub replayKnocks()
{
int i ;
lastKnock = false ;
Serial.println("Replaying") ;
pour (i = 0; i < knockPos ; j’ai = i + 1)
{
int prev = i-1 ;
Si prev (précédent < 0) = 0 ;
unsigned long d = (coups [i] - knocks[prev]) ;
Si d (d > 50) = d-50 ;
Delay(d) ;
Serial.println(i) ;
Flash(true) ;
}
knockPos = 0 ; réinitialiser le pointeur ;
}

Articles Liés

La boîte de Knock : Construire une multiprise Knock sensibles

La boîte de Knock : Construire une multiprise Knock sensibles

The Knock Box est une multiprise avec les superpuissances - il tourne sur votre lampe, chaque fois que vous frappez sur votre table de chevet. Vous obtenez deux points de vente, climatisation à réglage par knock-knock-frapper sur une surface dure à p
Comment faire un Arduino à partir de zéro

Comment faire un Arduino à partir de zéro

Frugal génie est la meilleure voie à suivre pour la science.Si vous êtes intéressé à faire quelques arduino à partir de zéro, vous êtes venu au bon endroit.Vous pouvez voir un tutoriel vidéo de cette instructable : iciIl viendra compléter toute échap
Arduino basé Navigation aveugle Simple Bracelet (AIDA1)

Arduino basé Navigation aveugle Simple Bracelet (AIDA1)

C'est une très brève et simple instructable sur comment faire un appareil de navigation petit poignet pour aider les personnes aveugles à marcher.Je l'ai nommé AIDA1 après ma mère et 1 car j'ai l'intention d'étendre ses fonctionnalités plus tard puis
Parfait pain - Super doux ferme blanc pain

Parfait pain - Super doux ferme blanc pain

Il s'agit de mon aller à pain pour... Eh bien presque tout. C'est vraiment parfait, léger, moelleux et délicieux.Je peux ajouter des fruits, tomates, oignons, graines, miel, j'ai envie, ou juste le garder un simple pain blanc qui est tout aussi savou
Pompe à eau efficace

Pompe à eau efficace

Suivez ces instructions pour faire une pompe à eau très simple qui est facile à faire et fonctionne efficacement. Nous avons conçu cette pompe pour un bref on nous a donné à la Glasgow School of Art de tenter de concevoir et de créer le plus efficace
Recette du levain européen

Recette du levain européen

une recette de levain essayée, testée et fiable. De plus, il peut être adapté et peaufiné en fonction de votre préférence pour pain brun ou blanc (voir étape ingrédients facultatifs).Ce pain a une consistance caoutchouteuse et ouverte, vraiment délic
Simple Distance appareil de mesure

Simple Distance appareil de mesure

Dans ce projet nous allons apprendre à utiliser le PING HC-SR04))) capteur à ultrasons pour mesurer la distance. Ce capteur est également souvent utilisé sur des robots pour détecter les obstacles.Niveau de Difficulté : facileTemps nécessaire: ± 10 m
Pas cher, super sensible numérisation sonde pour cnc... sonde de harkman

Pas cher, super sensible numérisation sonde pour cnc... sonde de harkman

c'est tellement simple et sensible... j'ai nommé d'après moi... sonde de harkmanSi vous souhaitez numériser ou numériser un modèle dans un programme de commande numérique par ordinateur, il faut une sonde numériseur... Malheureusement, ils sont coûte
Suivi des abeilles avec température

Suivi des abeilles avec température

analyse de données bientôt!Mon école est un peu étrange. Nous n'avons pas une cafétéria, mais nous avons un cours de quatre semaines sur « The Simpsons ». Nous n'avons pas une jungle-salle de sport sur le terrain de jeu élémentaire, mais nous avons u
Petits pains mous

Petits pains mous

Doux, légèrement sucré de petits pains avec une texture duveteuse.Ingrédients: (pour faire environ 24 rouleaux de taille moyenne)1000g de farine à pain fort20g de sel80g de sucre20g de levure80g de beurre600ml d'eau froideSemoule (ou plus de farine)
Interfaces pour les jeux : Punch out

Interfaces pour les jeux : Punch out

c'est comment transformer Punch Out de Mike Tyson dans un entraînement complet du corps avec feedback réel.(comment fabriquer des capteurs tactiles fiable, robuste)(comment pirater un contrôleur de jeu)(comment faire la rétroaction aveuglante du jeu
Survie urbaine 101 : Journal pour sauver votre vie

Survie urbaine 101 : Journal pour sauver votre vie

ici sur la route, il y a pas de TV ou radio et aucune justification pour les livres---au moins, si vous êtes comme moi et que vous êtes sur une mission à temps plein, créative, vie-rédemptrice. Si je trouve mes pensées errantes, je me sens comme un v
PatPet – un animal de compagnie interactif oreiller

PatPet – un animal de compagnie interactif oreiller

PatPet est un oreiller émotionnels qui réagit à nos comportements, tout comme la façon dont les animaux interagissent avec nous.Il a trois état émotionnel : calme (endormi), joyeux et en colère.Lorsque nous ne faisons rien avec elle, son haleine bleu
Maison Swirl cannelle pain

Maison Swirl cannelle pain

Je reçois la depuis quelques jours en contact avec quelques vieux amis. Quelques appels téléphoniques plus tard, il est apparu alors qu'un groupe d'amis d'enfance se rendaient à ma place pour le café ce soir. Et je voulais faire quelque chose de simp