Faire tourner un moteur pas à pas

10 août 2011 ... Aarchitecture des réseaux : cour et exercices corrigés. Bertrand Petit. Ellipses ......
Labview : programmation et applications. Francis Cottet.

Part of the document


Faire tourner un moteur pas à pas Déclarer un nouvel espace de travail : Nouveau VI Deux espaces de travail apparaissent :
Le panneau frontal qui sera au final la face avant FA de votre appareil
Le panneau diagramme qui permet de comprendre et définir la logique qui
relie les objets. On y construit le diagramme fonctionnel DF. On peut poser un objet dans le diagramme fonctionnel DF ou dans la face
avant FA.
Tous les objets placés dans la face avant FA apparaissent dans le diagramme
fonctionnel DF mais la réciproque n'est pas forcément vrai.
|DF |Mettre une boucle While |Fonction/Programmation/Structure/Boucle While |
| |Cette boucle ne sera opérationnelle que si vous lui | |
| |associez un bouton qui permettra de l'arrêter ; sinon | |
| |elle tournerait indéfiniment. | |
|FA |Mettre un bouton stop |Commande/Express/Bouton/Bouton Stop |
|DF |Connecter le bouton à la boucle while, sur son icône |[pic] |
| |stop. | |
|FA |Déclarer une matrice de réels et choisir 1 colonne et 8|Commande/Moderne/Tableau-Matrice/Matrice |
| |lignes en tirant sur les poignées de la fenêtre. |réelle/ |
| |Enlever les cases d'incrémentation à gauche en | |
| |sélectionnant l'ensemble de la matrice puis clic droit |Elément visible/Décocher afficheur d'indice |
| |et choisir dans le menu contextuel. | |
|FA |Remplir le tableau avec les codes 9,1,5,4,6,2,10,8 |Double clic dans une case |
| |
|On cherche maintenant à faire lire la matrice ligne par ligne dans le sens descendant dans un premier temps. |
|Chaque valeur lue sera ensuite envoyée par le port de l'imprimante au moteur pas à pas qui tournera. |
|Dans un premier temps on utilisera la variable i de la boucle while. Cependant l'incrémentation automatique de|
|cette variable sera peut-être trop rapide. Nous allons donc jouer sur la vitesse d'exécution de la boucle. |
|DF |Déclarer une commande de temporisation. |Fonctions/Programmation/Informations |
| | |temporelles/Attendre |
|FA |Déclarer un indicateur numérique qui permettra de |Commandes/Express/Indicateur numérique. |
| |choisir la valeur de la temporisation en ms ( pas en | |
| |dessous de 20 ms pour le moteur) |[pic] |
| |Sélectionner l'objet et utiliser le clic droit pour | |
| |faire apparaître un bouton d'incrémentation | |
| |Modifier le nom de cet objet et le nommer temporisation| |
|FA |Déclarer un nouvel indicateur numérique qui permettra de|Commandes/Express/Indicateur numérique. |
| |visualiser la valeur de la variable i de la boucle. |FA [pic] DF[pic] |
| |Nommer incrément cette variable. | |
|DF |Relier la variable i à l'afficheur de l'incrément | |
| |
|On voudrait que la valeur de cet incrément se transforme en un nombre de 0 à 7 de manière automatique. Pour |
|cela il suffit d'effectuer une division euclidienne sur cet incrément. Le reste de la division sera toujours |
|compris entre 0 et 7 et sera affiché de manière croissante. |
|DF |Déclarer la commande division euclidienne. |Fonction/Mathématiques/Numérique/Quotient et |
| | |reste |
|DF |Relier l'incrément à l'entrée X qui est le nombre à | |
| |diviser. | |
|DF |Déclarer une constante numérique. |Fonction/Programmation/Numérique./Constante |
| |Donner la valeur 8 et relier cette constante à l'entrée |numérique. |
| |Y. Y est le diviseur. | |
|DF |La sortie X-Y*floor(X/Y) représente le reste de la | |
| |division euclidienne. | |
|DF |Pour lire une matrice il faut utiliser une commande |Fonction/Programmation/Tableau/Indexer un |
| |d'extraction. |tableau. |
|DF |Relier la matrice à cet objet. |[pic] |
| | | |
| |
|Il faut maintenant préciser la ligne et la colonne correspondant à la valeur à extraite. |
|La valeur de la colonne sera 0, pour la première colonne. |
|La valeur de la ligne correspondra au reste de la division euclidienne de i par 8. |
|DF |Déclarer une constante numérique. |Fonction/Programmation/Numérique./Constante |
| |Donner la valeur 0 et relier cette constante à l'entrée |numérique. |
| |colonne de la commande d'extraction |[pic] |
| |Remarque : cette constante numérique n'apparaît pas dans| |
| |le FA | |
|DF |Relier le reste de la division euclidienne à l'entrée | |
| |ligne de l'extracteur | |
|FA |Déclarer un nouvel indicateur numérique qui permettra de|Commandes/Express/Indicateur numérique. |
| |visualiser la valeur de la matrice pour une ligne | |
| |donnée. Nommer le Pas à pas | |
| |
|Vérifier que votre programme fonctionne correctement. |
|FA |Lancer le programme avec la flèche. |[pic] |
| |Arrêter le programme avec votre bouton Stop | |
| |ou avec celui du menu du FA | |
| |
|La valeur de la matrice pour une ligne donnée est maintenant transmise par le port parallèle au moteur pas à |
|pas du dispositif Elin. Relier le port parallèle de votre ordinateur à la platine principale. Ajouter le |
|moteur pas à pas. |
|DF |Déclarer un port de sortie |Fonctions/Connectivité/ E/S sur port / Ecrire |
| | |les registres |
|DF |Déclarer une constante numérique. |Fonction/Programmation/Numérique./Constante |
| |Donner la valeur 888 et relier cette constante à |numérique. |
| |l'entrée du port de sortie | |
|DF |Relier la sortie de l'extracteur de matrice au port de | |
| |sortie. | |
|FA |Pour éviter de remplir la matrice à chaque ouverture du |Menu édition/ Désigner les valeurs actuelles |
| |fichier programme, on sauvegarde aussi les données du |comme défaut |
| |programme | |
|FA |Sauvegarder votre fichier | |
|FA |Votre moteur est prêt à fonctionner. Lancer le | |
| |programme. | |
|[pic][pic]