Contrôle de la position de la casquette
Objectif : Piloter l'ouverture et la fermeture de la casquette avec un seul bouton poussoir.
Nous allons utiliser un bouton poussoir et deux capteurs fin de course :
BP1 : permet de sortir ou de rentrer la casquette suivant qu'elle est respectivement rentrée ou sortie ;
FC1 : détecteur fin de course actionné lorsque la casquette est sortie ;
FC2 : détecteur fin de course actionné lorsque la casquette est rentrée.
Réaliser le câblage de la photo suivante :
Remarques :
La broche « OUT » du bouton poussoir reliée à une borne JAUNE de la carte.
La broche « VCC » du bouton poussoir reliée à une borne ROUGE de la carte.
La broche « GND » du bouton poussoir reliée à une borne NOIRE de la carte.
Faire vérifier votre câblage au professeur avant de mettre les piles et de relier la carte au PC. [pdf]
Ouvrir le programme « Arduino »
Aller dans le menu « Outils - Type de carte » et choisir « Arduino/Genuino Mega or Mega2560 ».
Raccorder votre carte à votre ordinateur avec le câble USB fourni.
Aller dans le menu « Outils - Port » et choisir le port USB où votre carte est reliée.
Saisir le programme suivant et remplacer les « XXX » pour obtenir le fonctionnement souhaité.
/**
S'il y a un appui sur le bouton poussoir
la casquette s'ouvre ou se ferme jusqu'à
la butée correpondante.
*/
// déclaration de la bibliothèque de fonction pour la carte Megapi
// déclaration d'une fonction moteur sur le port 1B
MeMegaPiDCMotor MoteurCasquette(PORT1B);
// définition des constantes //
uint8_t motorSpeed = 100; // vitesse réglable de 0 à 255
const int capteur1 = A6; // BP connecté sur la broche A6
const int capteur2 = A7; // capteur fin de course d'ouverture FC1 connecté sur la broche A7
const int capteur3 = A8; // capteur fin de course de fermeture FC2 connecté sur la broche A8
// définition des variables //
int BP; // BP de déclenchement en mode manuel, =0 si appuyé //
int FC1; // capteur fin de course sortie, = 0 si appuyé //
int FC2; // capteur fin de course de rentrée, = 0 si appuyé //
void setup()
{
// définition des entrées et sorties //
pinMode(capteur1,INPUT_PULLUP); // broches en entrée avec une résistance de tirage à +5V
pinMode(capteur2,INPUT_PULLUP); // broches en entrée avec une résistance de tirage à +5V
pinMode(capteur3,INPUT_PULLUP); // broches en entrée avec une résistance de tirage à +5V
}
void loop()
{
lectureCapteurs(); // lecture des entrées
if(BP == LOW && FC2 == LOW) // demande de sortie de la casquette si elle est rentrée //
{
while(FC1!=LOW) // tant qu'on n'est pas en butée de sortie
{
MoteurCasquette.run(motorSpeed); // sortie //
lectureCapteurs();
}
MoteurCasquette.stop(); // arret//
}
else MoteurCasquette.stop(); // sinon arret//
if(XXXXXXXXXXXXXXXXXXXXXX) // demande de rentrée de la casquette si elle est sortie //
{
while(XXXXXXXX) // tant qu'on n'est pas en butée de rentrée
{
MoteurCasquette.run(-motorSpeed); // rentrée //
lectureCapteurs();
}
MoteurCasquette.stop(); // arret//
}
else MoteurCasquette.stop(); // sinon arret//
}
// Définitions des fonctions //
void lectureCapteurs()
{
BP =digitalRead(capteur1);
FC1 =digitalRead(capteur2);
FC2 =digitalRead(capteur3);
}
Téléverser votre programme dans la carte
.
FAIRE VALIDER le fonctionnement par le professeur (ne pas oublier de mettre les 6 piles AA et de mettre l'interrupteur sur ON)