Découverte Arduino : Platine de test - programmation pour pilotage moteurs

Tout ce qu'il faut savoir pour radio-commander vos modèles de voitures, robots, tractopelle, etc..
Avatar du membre
marc80
Modérateur
Modérateur
Messages : 424
Enregistré le : 27 juil. 2020, 14:22
Localisation : 80500 Montdidier

Découverte Arduino : Piloter un moteur et un servo

Message par marc80 »

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 :
ex3-debut.png
Lecture Joystick - Commande moteur et servo
ex3-moteurs.png
Affichage de controle :
ex3-affichage.png
Résultat sur moniteur de contrôle :
ex3-moniteur.png

Pour télécharger le programme :
Commande_moteur_servo_Joystick.zip

 
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Bon Meccano à tous ! :020:  Marc
 

Avatar du membre
marc80
Modérateur
Modérateur
Messages : 424
Enregistré le : 27 juil. 2020, 14:22
Localisation : 80500 Montdidier

Découverte Arduino : Selection Modes de foctionnement (1/2)

Message par marc80 »

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 :
  • 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 la marche manuelle, j’utilise un interrupteur 3 positions et un potentiomètre.
 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.
ex4-calibrage.png
Cet affichage va me permettre de calculer les seuils que je vais utiliser pour calculer la position :
ex4-affichage calibrage.png

 Le programme suivant calcule la position du rotateur et l’affiche sur le moniteur série.
ex4-rotacteur.png
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()
l'affichage résultant :
ex4-affichage position.png

Le programme de calibrage :
test_Rotacteur.zip
Le programme de calcul :
fonction_Rotacteur.zip
 
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Bon Meccano à tous ! :020:  Marc
 

Avatar du membre
marc80
Modérateur
Modérateur
Messages : 424
Enregistré le : 27 juil. 2020, 14:22
Localisation : 80500 Montdidier

Découverte Arduino : Selection Modes de foctionnement (2/2)

Message par marc80 »

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

ex5.png
ex5-2.png

le programme :
Rotacteur_selection_mode.zip
  
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Bon Meccano à tous ! :020:  Marc
 

Répondre