Étape 4: Commande de moteur pas à pas
Était de la première partie à faire fonctionner les moteurs pas à pas - je devais initialement utiliser deux des moteurs, le miroir convexe itinérant et le stepper de fente, qui serait relié à l’One Linkit via un Comité EasyDriver. À ce moment-là, j’ai constaté que le stepper fente était une unité de cinq fils et actuellement, je ne sais pas comment ce type de fil au conducteur facile.
Chage des plans
Ainsi alors que j’ai encore besoin que les fentes et vous pouvez voir ce stepper installé dans les autres photos, qu'il sera déplacé manuellement s requis. Le moteur important est le miroir de voyage comme sa cela celui qui se divise sur le spectre de la lumière et vous permet ensuite de le déplacer au fil de la fente, afin de créer le faisceau initial qui est ensuite divisé par les miroirs qui suivent et le réseau de diffraction.
J’avais besoin de savoir comment bien déplacer le miroir pour que j’ai écrit un petit script à exécuter à partir du Conseil et ajusté le nombre d’échelons jusqu'à ce que j’ai eu le mouvement correct.
J’ai commencé en déplaçant manuellement la roue à vis sans fin jusqu'à ce que le spectre de la lumière a été au début de la position de la fente et marqué ensuite la barre de guidage avec un stylo, puis j’ai commencé le script et a fait une deuxième marque sur le rail de guidage comme les spectres lʼautre transmis la position de la fente. Cela m’a donné la distance de déplacement. C’est le code pour le test de voyage.
int x = 0 ;
void setup() {}
Serial.Begin(9600) ;
pinMode (sortie 8) ;
pinMode (sortie 9) ;
digitalWrite (8, faible) ;
digitalWrite (9, faible) ; }
void loop() {}
digitalWrite (9, HIGH) ;
Delay(1) ;
digitalWrite (9, faible) ;
Delay(1) ;
x = x + 1 ;
Serial.println(x) ;
}
La valeur de x est affichée dans la fenêtre Moniteur série ouverte sur l’ordinateur, comme le stepper a franchi le deuxième sur le rail de guidage, que j’ai enregistré la valeur de x et pour mon set up c’était 19124 étapes moteurs. C’est plus tard avéré pour être aux grands car il fait le temps nécessaire pour faire une lecture trop longtemps pour ma patience et a été ramené à environ 11500
Voici le code qui en résulte à osciller le miroir.
int dirpin = 2 ;
int steppin = 3 ;
void setup() {}
Serial.Begin(9600) ;
pinMode (dirpin, sortie) ;
pinMode (steppin, sortie) ;
}
void loop() {}
int i ;
digitalWrite (dirpin, basse) ; Définissez la direction.
Delay(1000) ;
pour (i = 0; i < 19124; i ++) / Iterate pour 19124 micropas.
{
digitalWrite (steppin, faible) ; Cette faible à élevée changement est ce qui crée la
digitalWrite (steppin, haut) ; "Rising Edge" pour l’easydriver sache quand à l’étape. delayMicroseconds(1500) ; Ce délai se trouve à proximité de la vitesse de pointe de cette
} / / particulier moteur. Plus vite le moteur cale.
digitalWrite (dirpin, HIGH) ; Changer de direction.
Delay(100) ;
pour (i = 0; i < 19124; i ++) / Iterate pour 19124 micropas
{
digitalWrite (steppin, faible) ; Cette faible à élevée changement est ce qui crée la
digitalWrite (steppin, haut) ; "Rising Edge" pour l’easydriver sache quand à l’étape. delayMicroseconds(1500) ; Ce délai se trouve à proximité de la vitesse de pointe de cette
} / / particulier moteur. Plus vite le moteur cale.
}