Stap 4: Stepper motorische controle
Het eerste deel aan het werken was de stappenmotoren - ik was oorspronkelijk gaan gebruiken twee van de motoren, de reizende bolle spiegel en de gleuf stepper, die zou worden aangesloten op de Linkit One via een EasyDriver board. Op dat moment merkte ik op dat de gleuf stepper een eenheid van de vijf draad was en momenteel ik weet niet hoe dit type draad tot en met het eenvoudig stuurprogramma.
Wijzigen plannen
Dus terwijl ik nog de spleten moet en u dat stepper geïnstalleerd zien kunt in de resterende verplaatst afbeeldingen zal handmatig s vereist. De belangrijke motor is de reizende spiegel als haar dit degene die uit het lichtspectrum splitst en vervolgens kunt u het overgaan van de gleuf, dus het creëren van de eerste bundel die vervolgens wordt gesplitst door de spiegels die volgen en het diffractie raspen.
Ik nodig om te weten hoe ver moet verplaatsen van de spiegel, dus ik schreef een klein script te lopen vanaf de Raad van bestuur en het aantal graven aangepast totdat ik had de juiste beweging.
Ik begon met het handmatig verplaatsen van de worm wiel totdat het spectrum van licht werd aan het begin van de positie van de gleuf en vervolgens de gids bar voorzien met een pen, dan ben ik begonnen met het script en maakte een tweede merk op de spoorstaaf gids als de spectra van andere uiteinde voorbij de positie van de gleuf. Dit gaf mij de afstand van reizen. Dit is de code voor de reizen-test.
int x = 0;
VOID Setup {}
Serial.begin(9600);
pinMode (8, OUTPUT);
pinMode (9, OUTPUT);
digitalWrite (8, laag);
digitalWrite (9, laag); }
void loop {}
digitalWrite (9, hoge);
delay(1);
digitalWrite (9, laag);
delay(1);
x = x + 1;
Serial.println(x);
}
De waarde van x wordt weergegeven op het venster Serial Monitor geopend op de computer, zoals de stepper bereikt de tweede merk op het spoor van de gids dat ik heb opgenomen wordt de waarde van x en voor mijn set-up dit 19124 motor stappen was. Dit later bleek te zijn te groot als het maakte de tijd genomen om een lezing veel te lang voor mijn geduld en werd teruggebracht tot ongeveer 11500
Hier ziet u de resulterende code oscilleren de spiegel.
int dirpin = 2;
int steppin = 3;
VOID Setup {}
Serial.begin(9600);
pinMode (dirpin, OUTPUT);
pinMode (steppin, uitvoer);
}
void loop {}
int i;
digitalWrite (dirpin, laag); De richting instellen.
delay(1000);
voor (ik = 0; ik < 19124; i ++) / / Iterate voor 19124 microsteps.
{
digitalWrite (steppin, laag); Deze lage tot hoge verandering is wat maakt de
digitalWrite (steppin, hoog); "Stijgende Edge" zodat de easydriver wanneer weet naar de stap. delayMicroseconds(1500); Deze vertragingstijd ligt dicht bij de topsnelheid hiervoor
} / / bijzondere motor. Ieder sneller kramen de motor.
digitalWrite (dirpin, hoge); De richting wijzigen.
delay(100);
voor (ik = 0; ik < 19124; i ++) / / Iterate voor 19124 microsteps
{
digitalWrite (steppin, laag); Deze lage tot hoge verandering is wat maakt de
digitalWrite (steppin, hoog); "Stijgende Edge" zodat de easydriver wanneer weet naar de stap. delayMicroseconds(1500); Deze vertragingstijd ligt dicht bij de topsnelheid hiervoor
} / / bijzondere motor. Ieder sneller kramen de motor.
}