Rörelse aktiverat Halloween Spider (6 / 11 steg)
Steg 5: kod
http://Electronics-DIY.com/Electronics/stepper_motors.php
http://Arduino.cc/en/tutorial/StepperUnipolar
När du har det, tillämpa följande kod på din arduino och testa. Jag har gett //notes att ge dig en uppfattning om vad jag tänkte när jag skrev den.
int buttonPin = 3; Etiketter stift för att underlätta senare
int motorPin1 = 8;
int motorPin2 = 11;
int motorPin3 = 10;
int motorPin4 = 9;
int ledPin = 13.
int fördröjningstid = 20; anger en bas försening, min stegmotor ryckte
om jag använt mindre sedan 20ms
void setup() {
pinMode (motorPin1, produktionen); låter arduino vet hur man behandlar varje stift
pinMode (motorPin2, produktionen);
pinMode (motorPin3, produktionen);
pinMode (motorPin4, produktionen);
pinMode (ledPin, produktionen);
beginSerial(9600);
pinMode (buttonPin, ingång); trigger/växeln
}
void loop() {//sets en slinga
om (digitalRead(buttonPin) == hög) //will endast lägre spider om villkoret är uppfyllt
{
för (int jag = 0; jag < = 120; i ++) //will upprepa efter kod 120 gånger
{
digitalWrite (motorPin1, hög); koden ger ett steg
digitalWrite (motorPin2, låg); upprepa det 120 gånger sänker
digitalWrite (motorPin3, låg); Spider runt omkring 2 fot
digitalWrite (motorPin4, hög);
Delay(delayTime);
digitalWrite (motorPin1, låg);
digitalWrite (motorPin2, låg);
digitalWrite (motorPin3, hög);
digitalWrite (motorPin4, hög);
Delay(delayTime);
digitalWrite (motorPin1, låg);
digitalWrite (motorPin2, hög);
digitalWrite (motorPin3, hög);
digitalWrite (motorPin4, låg);
Delay(delayTime);
digitalWrite (motorPin1, hög);
digitalWrite (motorPin2, hög);
digitalWrite (motorPin3, låg);
digitalWrite (motorPin4, låg);
Delay(delayTime);
}
Delay(480); 480 + 20 = 500ms eller 1/2 sekunders fördröjning
digitalWrite (ledPin, hög); innan ljus aktiverar
Delay(2000); förblir tänd i två sekunder
digitalWrite (ledPin, låg); stänger av
Delay(500); väntar en halv sekund
för (int jag = 0; jag < = 120; i ++) //repeats ovan kod i omvänd
{
digitalWrite (motorPin1, hög); att höja spider tillbaka upp
digitalWrite (motorPin2, hög);
digitalWrite (motorPin3, låg);
digitalWrite (motorPin4, låg);
Delay(delayTime);
digitalWrite (motorPin1, låg);
digitalWrite (motorPin2, hög);
digitalWrite (motorPin3, hög);
digitalWrite (motorPin4, låg);
Delay(delayTime);
digitalWrite (motorPin1, låg);
digitalWrite (motorPin2, låg);
digitalWrite (motorPin3, hög);
digitalWrite (motorPin4, hög);
Delay(delayTime);
digitalWrite (motorPin1, hög);
digitalWrite (motorPin2, låg);
digitalWrite (motorPin3, låg);
digitalWrite (motorPin4, hög);
Delay(delayTime);
}
}
annat //if villkor inte är uppfyllda (inga höga)
{
}
Delay(1000); vänta en sekund och försök igen