Étape 3: Arduino programme
Tout ce que nous faisons ici dans l’Arduino est révélateur du moteur pas à pas pour passer à un certain angle, puis reculer à nouveau. Tout en faisant cela, il envoie que c’est angle actuel au traitement par le biais de communication série. Pour plus de détails, vous pouvez regarder la vidéo ou lire les commentaires dans le code. Mais je vais décrire les bases ici. Regardez que la vidéo et vous pouvez sauter cette lecture !
Donc si nous sauter à travers la mise en place et entrer directement dans la boucle, tout d’abord nous avons besoin de lire le premier potentiomètre et carte sa valeur pour le délai entre chaque étape et la vitesse de l’afficheur LCD. Le retard et la vitesse sont fondamentalement la même chose, le retard pris contrôle de la vitesse alors que le « spd », également la vitesse, est juste pour l’affichage de la vitesse sur l’écran LCD. Puis, nous avons besoin de mapper le second potentiomètre à « angleEnd », c'est-à-dire l’angle plus éloigné, à que nous voulons que le stepper pour aller.
« pass », c’est le nombre de fois que le scanner a une rotation c' est angle final et retour à c’est point de départ. Un seul passage est donc de 0deg à angleEnd, et dos à 0deg est deux passes. Nous avons besoin de vérifier pour voir que si le nombre de passes, qu'il a fait est plus petit que le nombre nous voulons qu’il fasse. Dans l’affirmative, puis nous avons mis la direction du stepper. Nous pouvons le faire en utilisant le modulo fonction « % », qui nous permet de vérifier le nombre de passes est pair ou impair. Si '%2 ' t pass' sont égales à 0, alors c’est de « pass » est pair et nous avons besoin faire pivoter vers l’avant. S’il est égal à 1, puis c’est bizarre et nous avons besoin pour la faire tourner en arrière.
Dans la boucle qui retournent s’il est point (la boucle pour un nombre impair de passes), nous pouvons mettre un message à envoyer à la transformation de dire les choses que nous avez fait une passe et qu’il veuille s’arrêter quelle sous son poids de départ, nous avons fini balayage ! Ainsi, nous pouvons envoyer l’angle 500 parce que ce n’est évidemment pas une coordonnée parce que c’est plus de 360.
Donc, nous avons défini la direction de moteurs mais ne pas déplacé n’importe où... Pour ce faire, nous devons envoyer une brève impulsion pour 300 microsecondes à la broche d’étape sur le driver de moteur pas à pas.
Ensuite nous pouvons incrémenter la variable « pass » si l’angle a dépassé soit « angleEnd » ou la position de son départ (zéro degré).
Puis nous envoyer effectivement l’angle actuel de traitement.
Et puis écrire une charge de plein de trucs pour l’écran LCD. La raison pour laquelle que je l’ai mis dans un tas d’espaces noirs avant que chaque valeur est écrite est alors qu’un grand nombre comme « 150 » est effacé avant un nombre de plus petit tels que « 5 » doit figurer. Si je n’ai pas fait cela, alors il pourrait apparaître comme « 550 » parce que le « 150 » est toujours son père à l’arrière-plan. Aller loin grand nombre.
Enfin, nous pouvons mettre en « del » comme le retard qui détermine combien de temps il faut attendre avant de faire tout cela à nouveau. Ceci détermine la vitesse du moteur.