Étape 8: Effets sonores et plier les capteurs
Le capteur de pliage dans cet exemple est utilisé comme un déclencheur - une fois que sa sortie valeur atteint un certain niveau il causes l’Arduino pour exécuter le code spécifié. Vous pouvez modifier la valeur de seuil pour modifier le point auquel le capteur agit comme un déclencheur. Si vous ouvrez la fenêtre du moniteur serial Arduino, tandis que la carte servo est connectée à votre ordinateur, vous pouvez voir quand le capteur coude déclenche. Le capteur de pliage est configuré à l’aide d’un diviseur de tension pour fournir une valeur d’entrée analogique sur la broche d’entrée 1.
Cet exemple utilise le bouclier de vague Adafruit pour fournir des effets sonores. Les instructions pour la construction et la mise en place du bouclier de la vague se trouvent sur la page web de bouclier vague à http://www.ladyada.net/make/waveshield/
Il y a plusieurs exemples de code sur la page de bouclier de vague pour la lecture de fichiers audio. L’exemple que j’ai utilisé est l’exemple de play6_hc.pde, situé à http://www.ladyada.net/make/waveshield/libraryhcplay6.html
Il suffit de télécharger le fichier son à une carte mémoire SD et de la place dans votre bouclier vague et vous voilà prêt à partir.
Pour le schéma de câblage je l’ai fait deux façons. La première version utilise un tableau de transistor de petit montage en saillie pour activer le panneau de del et le bouclier de la vague. La deuxième version utilise deux transistors TIP 120 au contraire - elles sont fonctionnellement identiques. La grande différence est que les transistors TIP 120 peuvent gérer des charges actuels beaucoup plus grandes que la petite surface mount transistors - mais la pointe 120 s prennent beaucoup plus d’espace.
Les transistors sont nécessaires parce que le bouclier de l’onde a besoin d’un interrupteur pour lui dire quand à jouer le fichier audio (les motifs de transistor à l’entrée de vague bouclier pin lorsqu’il est activé) et plusieurs del utilise beaucoup plus courant qu’une seule broche de sortie Arduino peut offrir.
Lorsque le capteur coude est plié jusqu'à maintenant assez les LEDs seront estompera, jouera le fichier audio et puis un servo se déplace. Le servo servirait d’ouvrir un compartiment de missile d’avant-bras.
Pour plus de Iron Man costumes amusants Découvrez le site SIWDAT-
http://www.siwdat.com/index.html
Copiez et collez cette esquisse dans votre fenêtre de Arduino-
/*
* Exemple 4
* Bouclier de Bend capteur/Wave
* Cet exemple utilise un capteur coude comme déclencheur fondu une LED avec effet sonore
aide de bouclier vague et puis activer un servo
* Honus 2010
* Modification de code de Knock Sensor créé le 25 mars 2007 par David Cuartielles
* et mis à jour le 4 septembre 2010 par Tom Igoe
*/
#include « Servo.h » / / inclure la bibliothèque de servo
Servo servo1 ; crée une instance de l’objet de servo pour contrôler un servo
ces constantes ne changeront pas :
const int servoPin1 = 9 ; broche de commande pour servo
const int triggerSensor = 1 ; le capteur est relié à la broche analogique 1
const int seuil = 400 ; valeur de seuil de décider quand le capteur entrée déclencheurs
const int ledPin = 11 ;
int soundPin1 = 10 ; broche de commande pour son Conseil d’administration
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() {}
Serial.Begin(9600) ; utiliser le port série
SERVO1.Attach(servoPin1) ; attache le servo sur la broche 9 à l’objet de servo
pinMode (soundPin1, sortie) ; définit l’axe de son en sortie
digitalWrite (soundPin1, basse) ;
}
void loop() {}
SERVO1.Write(20) ; déplacer l’asservissement de position 20 degrés
lire le capteur et la stocker dans la variable sensorReading :
sensorReading = analogRead(triggerSensor) ;
Si la lecture du capteur est supérieure au seuil :
Si (sensorReading > = seuil) {}
digitalWrite (soundPin1, HIGH) ; Allumez le son
Delay(10) ; attendre dix millisecondes
digitalWrite (soundPin1, basse) ; désactiver le son
fondu du min au max par incréments de 5 points :
pour (int fadeValue = 0; fadeValue < = 255 ; fadeValue += 5) {}
définit la valeur (gamme de 0 à 255) :
analogWrite (ledPin, fadeValue) ;
Attendez 30 millisecondes Voir l’effet de gradation
Delay(40) ;
}
fondu de max min par incréments de 5 points :
pour (int fadeValue = 255 ; fadeValue > = 0; fadeValue-=5) {}
définit la valeur (gamme de 0 à 255) :
analogWrite (ledPin, fadeValue) ;
Attendez 30 millisecondes Voir l’effet de gradation
Delay(40) ;
Envoyer la chaîne « déclencheur! » à l’ordinateur, suivie de saut de ligne
Serial.println("Trigger!") ;
}
SERVO1.Write(160) ; Mettez le servo en position de 160 degrés
Delay(3000) ; attendre 3 secondes
SERVO1.Write(20) ; déplacer l’asservissement de position 20 degrés
}
retarder (3000) ; trois seconde de retard pour éviter de surcharger la mémoire tampon de port série
}