Il commande le moteur (2 sens de rotation, vitesse variable) et affiche des informations de contrôle sur le moniteur, pour faciliter les réglages.
Nouveauté de Vocabulaire :
La fonction map( ) permet de lier une variable de sortie et une variable d’entrée par les valeurs hautes et basses :résultat = map(entrée, E1, E2, S1, S2)
exemples :
- vitesse = map(consigne, 0, 1023, 0, 255); revient à diviser par 4 « consigne » pour obtenir « vitesse »
- quand le potentiomètre est à 0 la sortie est à 0
- quand le potentiomètre est à 1023 la sortie est à 255
- quand le potentiomètre est à 0 la sortie est à 0
- vitesse = map(consigne, 0, 1023, 50, 255) ; permet de définir une valeur mini en sortie
- quand le potentiomètre est à 0 la sortie est à 50 – le moteur tourne même si le potentiomètre est à 0
- quand le potentiomètre est à 1023 la sortie est à 255
- quand le potentiomètre est à 0 la sortie est à 50 – le moteur tourne même si le potentiomètre est à 0
- vitesse = map(consigne, 0, 1023, 0, 150) ; permet de définir une valeur mini en sortie, et limiter la valeur en sortie
- quand le potentiomètre est à 0 la sortie est à 0
- quand le potentiomètre est à 1023 la sortie est à 150
- quand le potentiomètre est à 0 la sortie est à 0
Le programme :
Déclarations :
- interH , interB broches pour interrupteur 3 positions ou boutons poussoirs
- M2, E2 broches dédiées au pilotage moteur
- marcheH, marcheB, Consigne valeur boutons et potentiomètre
- moteur2, vitesse2 valeurs de pilotage moteur
- mem_moteur2, mem_vitesse2 mémoires pour gérer l’affichage
loop() :
3 "paragraphes" :
Pilotage Moteur :
- lecture des entrées
- si bouton avant appuyé
- le moteur est dans le sens 1
- calculer la vitesse
- positionner la broche de contrôle dans le sens avant
- le moteur est dans le sens 1
- si bouton arrière appuyé
- le moteur est dans le sens -1
- calculer la vitesse
- positionner la broche de contrôle dans le sens arrière
- le moteur est dans le sens -1
- sinon
- le moteur est dans le sens 0 - arrêt
- vitesse = 0
- positionner la broche de contrôle dans le sens arrière
- le moteur est dans le sens 0 - arrêt
- « impression » consigne vitesse moteur
Affichage sur moniteur :
- si le moteur est en marche et la mémoire à 0, imprimer un message en fonction du sens et la valeur de vitesse
- si le moteur et à l’arret et la mémoire différente de 0, imprimer le message arrêt
- si la vitesse à varié depuis 500 ms, forcer la mémoire moteur à 0 pour déclencher l’impression (par le bloc affichage).
Pour télécharger le programme :