Étape 4: programmation
Ouvrez une session d’Arduino et copiez-y le code suivant. Cliquez sur vérifier pour s’assurer que tout le code est correct et puis télécharger le code sur le capteur. Ouvrez le moniteur série sur le côté droit et observez les valeurs qui sont affichent. Dans ces valeurs, choisissez la plage que vous voulez le capteur pour couvrir et mettre à jour le code en conséquence. Ce code a été remixé de http://web.media.mit.edu/~leah/LilyPad/08_sensor_code.html. Aussi pièces proviennent des champs de Debbie Craft-classe de technologie offert à Utah State University printemps 2013.
Ce capteur est très sensible et doit être ajusté à l’emplacement où il sera utilisé. Varient en fonction du type de lumière dans la salle (artificielle ou naturelle), les plages. Pour de meilleurs résultats, votre capteur d’essai dans l’emplacement vous emploierez pour voir ce que les plages et les ajuster au besoin.
/* int GreenledPin = A2 ; LED est connecté à la broche numérique A2 void setup() }
* LilyPad tutoriel : télédétection (capteurs)
*
* Lit les données d’un module de capteur de lumière LilyPad et puis envoie ces données à l’ordinateur afin que vous pouvez voir les valeurs de capteur
*/
int RedledPin = A3 ; LED est connecté à la broche numérique A3
int BlueledPin = A4 ; LED est connecté à la broche numérique A4
int sensorPin = 5 ; capteur de lumière est connecté à la broche analogique 5
int sensorValue ; variable pour stocker la valeur provenant de la sonde
{
pinMode (GreenledPin, sortie) ; définit le ledPin être une sortie
Serial.Begin(9600) ; initialiser le port série
digitalWrite (GreenledPin, élevé) ; allumer la LED
pinMode (RedledPin, sortie) ; définit le ledPin être une sortie
Serial.Begin(9600) ; initialiser le port série
digitalWrite (RedledPin, élevé) ; allumer la LED
pinMode (BlueledPin, sortie) ; définit le ledPin être une sortie
Serial.Begin(9600) ; initialiser le port série
digitalWrite (BlueledPin, élevé) ; allumer la LED
}
void loop() / / run maintes et maintes fois
{
sensorValue = analogRead(sensorPin) ; lire la valeur de la sonde
Serial.println(sensorValue) ; Envoyer cette valeur à l’ordinateur
Delay(500) ; délai pour 1/10 de seconde
Si (sensorValue > = 100 & & sensorValue < = 175)
{
digitalWrite (GreenledPin, élevé) ;
retarder (3000) ;
digitalWrite (GreenledPin, basse) ;
}
ElseIf (sensorValue > 175 & & sensorValue < = 250)
{
digitalWrite (BlueledPin, élevé) ;
retarder (3000) ;
digitalWrite (BlueledPin, basse) ;
}
ElseIf (sensorValue > 250)
{
digitalWrite (RedledPin, élevé) ;
retarder (3000) ;
digitalWrite (RedledPin, basse) ;
}
Le code peut être mis à jour afin qu’elle se lit dans une plage de valeurs et recherche ensuite la moyenne de ces valeurs. Cette méthode fera le capteur moins capricieux. Ceci est connu comme le lissage et l’exemple de code peut être trouvé à http://arduino.cc/en/Tutorial/Smoothing. Le code lissage est cumulable avec le code ci-dessus, si vous souhaitez que les plages de capteur plus stable.