Cet exemple est dans la lignée des précédents. on reprend le programme lecture Joystick et commande de 2 moteurs. On enlève le moteur 2 et on le remplace par une commande de servomoteur.
L’affichage est adapté pour indiquer la position du servomoteur.
Déclaration / Initialisation :
Lecture Joystick - Commande moteur et servo
Affichage de controle :
Résultat sur moniteur de contrôle :
Pour télécharger le programme :
Découverte Arduino : Platine de test - programmation pour pilotage moteurs
- marc80
- Modérateur
- Messages : 424
- Enregistré le : 27 juil. 2020, 14:22
- Localisation : 80500 Montdidier
Découverte Arduino : Piloter un moteur et un servo
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Bon Meccano à tous ! Marc
- marc80
- Modérateur
- Messages : 424
- Enregistré le : 27 juil. 2020, 14:22
- Localisation : 80500 Montdidier
Découverte Arduino : Selection Modes de foctionnement (1/2)
Au niveau d ‘un modèle, il peut être intéressant de gérer plusieurs modes de fonctionnement. Par exemple sur ma grue de dépannage ferroviaire, j’utilise 6 modes de fonctionnement :
Pour sélectionner le mode de fonctionnement, j’utilise un « rotacteur », c’est à dire un commutateur 12 positions basé sur un potentiomètre. Celui ci est branché sur une entrée analogique de la carte Arduino. Comme d’un rotacteur à l’autre, les tensions en entrée ne sont pas exactement les mêmes, il faut d’abord le calibrer, repérer les valeurs d’entrée (de 0 à 1023) associées à chaque position.
Programme de calibrage du rotacteur :
Ce programme est très simple : S’il y a variation de la tension (changement de position), j’affiche le voltage et la valeur d’entrée.
Cet affichage va me permettre de calculer les seuils que je vais utiliser pour calculer la position :
Le programme suivant calcule la position du rotateur et l’affiche sur le moniteur série.
Notion nouvelle : Pour cela, j’utilise une « fonction ». cette fonction constitue une quatrième partie de mon programme. Elle est utilisée dans loop(), comme une variable particulière.Elle est définie et calculée après la partie loop() :
Le programme de calibrage : Le programme de calcul :
- Mode 1 : Marche manuelle Crochet lourd
- Mode 2 : Marche manuelle Crochet Léger
- Mode 3 : Marche manuelle Flèche
- Mode 4 : Marche manuelle Rotation
- Mode 5 : Arrêt complet
- Mode 6 : Marche grue avec la radiocommande
Pour sélectionner le mode de fonctionnement, j’utilise un « rotacteur », c’est à dire un commutateur 12 positions basé sur un potentiomètre. Celui ci est branché sur une entrée analogique de la carte Arduino. Comme d’un rotacteur à l’autre, les tensions en entrée ne sont pas exactement les mêmes, il faut d’abord le calibrer, repérer les valeurs d’entrée (de 0 à 1023) associées à chaque position.
Programme de calibrage du rotacteur :
Ce programme est très simple : S’il y a variation de la tension (changement de position), j’affiche le voltage et la valeur d’entrée.
Cet affichage va me permettre de calculer les seuils que je vais utiliser pour calculer la position :
Le programme suivant calcule la position du rotateur et l’affiche sur le moniteur série.
Notion nouvelle : Pour cela, j’utilise une « fonction ». cette fonction constitue une quatrième partie de mon programme. Elle est utilisée dans loop(), comme une variable particulière.Elle est définie et calculée après la partie loop() :
- int position_rotacteur() : definition de le variable « position-rotacteur » calculée par la fonction
- Ensuite, définition des variables « positionC » et « valeurlue » internes à la fonction.
- Lecture de l’entrée rotacteur (broche A3 définie plus haut).
- Une suite de test de seuils permettant de calculer « positionC
- return positionC : renvoie le résultat dans la variable « position_rotacteur()
Le programme de calibrage : Le programme de calcul :
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Bon Meccano à tous ! Marc
- marc80
- Modérateur
- Messages : 424
- Enregistré le : 27 juil. 2020, 14:22
- Localisation : 80500 Montdidier
Découverte Arduino : Selection Modes de foctionnement (2/2)
Le programme suivant reprend intégralement le programme précédant. J’y ai ajouté le nouvelle commande qui permet de sélectionner quelle partie de programme sera exécutée en fonction d’une variable.
La variable testée est « posit ».
switch (posit) tester la variable posit
case(1) : lance l’exécution des lignes de programme qui suivent, jusque la commande break
default : lance l’exécution des lignes si la valeur ne correspond à aucun des cas prévus.
Break : fin de traitement de la fonction switch
le programme :
La variable testée est « posit ».
switch (posit) tester la variable posit
case(1) : lance l’exécution des lignes de programme qui suivent, jusque la commande break
default : lance l’exécution des lignes si la valeur ne correspond à aucun des cas prévus.
Break : fin de traitement de la fonction switch
le programme :
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Bon Meccano à tous ! Marc