Arduino + Stepper Motor kamera reglaget (3 / 6 steg)
Steg 3: Arduino Uno + Stepper Motor
Oförmågan att enkelt manipulera utväxling, tillsammans med hassle av fiske tarmen, låt mig för att börja min Arduino lärande. Vad jag ville, var att ha ett litet drivande kugghjul och kontrollera rotation av detta med Arduino. Jag vill kunna spara olika inställningar som olika skisser och ladda upp beroende på vilket som jag vill. Genom flera experiment skulle jag kunna skapa en samling inställningar för olika tillämpningar. Jag vet att några av funktionerna i Arduino, men min nästan obefintlig elektronik förståelse har hindrat mig från att lära sig förr.
Jag köpte en liten stepper motor och sköld bort av ebay, och lyckligtvis nådde Sydafrika utan mycket krångel (dvs. lyckligtvis det inte komma i kläm i postsystemet).
Jag lärde mig grunderna från Arduino forum, och använde exempelkod stepper motor som utgångspunkt. Du kan se ett gem på motoraxeln stepper, som jag kunde kliva fram och tillbaka. Den final koden som jag slutade använda såg ut lite så här...
/ * YourDuino.com exempel programvara skiss
Små Stepper Motor och Driver V1.4 11/30/2013 http://arduino-direct.com/sunshop/index.php?l=pro... Steg en rotation av utgående axel, sedan tillbaka terry *
*---(Import behövs bibliotek)---* / #include
/ *---(Deklarera konstanter, Pin-koder)---* / / /---(antal steg per varv av inre motor i 4-stegs läge)---#define STEPS_PER_MOTOR_REVOLUTION 32
---(Steg per utgående axel redskap minskning)---#define STEPS_PER_OUTPUT_REVOLUTION 32 * 1 //2048
/ *---(Deklarera objekt)---* / / / skapa en instans av klassen stepper, ange / / antalet steg av motorn och stiften har / / bifogas
Pin-anslutningar måste vara 4 stift ansluten / / till Motor Driver In1 In2, In3, In4 och sedan stiften in / / här i serien 1-3-2-4 för korrekt sekvensering Stepper small_stepper (STEPS_PER_MOTOR_REVOLUTION, 8, 10, 9, 11);
/ *---(Deklarera variabler)---* / int Steps2Take;
void setup() / *---(SETUP: kör en gång)---* / {/ / ingenting (Stepper bibliotek anger pins som utgångar)} / *--(avsluta installationsprogrammet)---* /
void loop() / *---(LOOP: kör ständigt)---* / {Steps2Take = STEPS_PER_OUTPUT_REVOLUTION; / / rotera CW 1 slå small_stepper.setSpeed(100); small_stepper.step(Steps2Take); delay(2000);} / *--(slutet huvudloop)--*
* (SLUTET) * /
Jag manipulerat de olika värdena för att nå olika utfall. Jag förstår inte koden mycket väl, men det fungerar. Jag kunde rotera enheten rakning en bråkdel av en sväng; och styra tiden mellan dessa små steg. Detta i kombination med Intervalltimer i kameran, jag skulle kunna uppnå vad jag ursprungligen ville. Jag vet att du har möjlighet att utlösa kameran med en Arduino Intervalometer, men att ta itu med rörelsestyrning är ett lämpligt första steg för mig på min Arduino äventyr.
Om du har några kommentarer om min kod... Tveka inte att låta mig veta vad du tycker, hur jag kan förenkla det eller försöka alternativ.
När jag fick den kretsen arbetar, var det sedan dags att försöka anpassa det till den kameran reglaget & järnväg.