Page 86 - arduino_Neat
P. 86
determinerCapteurBase(); // trouver la valeur de base du capteur.
}
void loop()
{
// montrerValeurCapteur();
// testerServoMoteur();
modifierPosSelonCapteur(); // lire la pin du capteur et mettre dans valeurCapteur.
decroitreServoPos(); // faire decroître "la peur" de la petite bete.
servo1.write(servoPos); // assigner la position du servomoteur qui a ete changee
delay(20);
}
void modifierPosSelonCapteur()
{
int difference = 0; // déclarer variable locale pour calculer difference
valeurCapteur = analogRead(pinCapteur); // lire la pin du capteur et mettre dans
valeurCapteur
difference = capteurBase - valeurCapteur; // calculer l'écart entre valeur actuelle et la
base
difference = max(difference, 0); // limiter différence à 0 (pas de chiffre négatif)
/* pour débugger les valeurs et comprendre ce qui se passe
Serial.print(valeurCapteur);
Serial.print(" - ");
Serial.print(capteurBase);
Serial.print(" -- ");
Serial.println(difference); // imprimer différence pour debug
*/
servoPos = min ( servoPos + difference, 180) ; // modifier la valeur de position du servo
}
void determinerCapteurBase()
{
servo1.write(0); // positionner le moteur à la position de départ
delay(2000); // laisser le temps au moteur de se placer
capteurBase = analogRead(pinCapteur); // assigner la lecture actuelle à capteurBase
}
void decroitreServoPos()
{
servoPos = max ( servoPos - 10, 0); // faire décroitre servoPos
}
void testerServoMoteur()
{
while (1==1)
{
servoPos = random(181); // attribuer une valeur aléatoire comprise entre 0 et 180 à
servoPos
servo1.write(servoPos); // spécifier la position au servomoteur
delay(2000); // attendre 2 secondes
}
}
void montrerValeurCapteur()
{
while (1==1)
{
valeurCapteur = analogRead(pinCapteur); // lire la pin analogique et mettre la valeur
dans valeurCapteur
Serial.println(valeurCapteur); // communiquer au moniteur sériel la valeur du capteur.
}
}
Voici les ajouts faits à ce programme.
Déclaration des variables
capteurBase Nous ajoutons à notre code cette variable qui nous permettra de garder en
mémoire la valeur de base du capteur. Celle-ci nous sera utile pour calculer l'écart entre la
valeur mesurée en temps réel (donc affectée par l'ombre que crée le doigt ou la main qui
s'approche) et celle de base, sans ombre.
Configuration (setup)
86