Étape 24 : capteurs ! Partie 6: Étendre le feu vert
Tout d’abord, nous devons chercher la voiture. Cela se produit lorsque la cellule photoélectrique voit moins de sensor_mid
.
Ensuite, si la cellule photoélectrique voit la voiture, nous devrions étendre le feu vert.
Pour ce faire, nous allons avoir besoin d’un nouveau type de variable : boolean
. A boolean
peut être true
ou false
comme un int
dispose d’une gamme de-32 768 à 32 767.
Un exemple de cela est :
boolean i_love_kittens = true;
où la variablei_love_kittens
est définie surtrue
.
Plus de détails ici : http://arduino.cc/en/Reference/BooleanVariables
N’oubliez pas la façon dont nous avons parlé de fonctions ayant trois parties ? Saisie, les Instructions et sortie ? Nous allons parler de sorties !
La configuration et la fonction de boucle ont sorties trop. Ils ont Sub. Void est le langage informatique pour rien. Notre fonction va afficher une valeur booléenne.
Tout d’abord vous devez indiquer l’Arduino que vous souhaitez que votre fonction sortie une valeur booléenne.
Ensuite, vous avez besoin réellement de retour (ouput) une valeur booléenne.Un exemple de cela est :
boolean my_awesome_function()
{
boolean i_love_kittens = true;
return i_love_kittens;
}
Dans la fonction, nous allons définir le return_value true lorsque le capteur voiture voit la voiture.
Essayez d’ajouter cette fonction à votre code :
boolean look_for_car()
{
int current_time = millis();
int end_time = current_time + 2000; // we'll look for about two seconds
boolean saw_car = false;
while(current_time < end_time)
{
sensor_value = analogRead(SENSOR_PIN);
if(sensor_value < sensor_mid)
{
// set the value of saw_car to true
// your code here
}
// update the current time
// your code here
}
return saw_car;
}
Puis, dans la fonction de boucle, chercher une voiture, puis étendez le feu vert si la photocellule voit la voiture.
S’il voit la voiture, n’oubliez pas d’ajouter un second délai, sinon, ne tardez pas !
Petit exemple :
boolean saw_car = look_for_car();