Arduino Motor sköld handledning (6 / 6 steg)
Steg 6: Stepper Motor
För att räkna ut vilka två stift utgör en enda spole, infoga en LED i några två stift på sin sockel och rotera motoraxeln. Om lampan tänds, hittade du en spole. De andra två stiften bör göra upp den andra spolen.
Att göra en bipolär motor spinn:
- Power första spolen.
- Nästa power den andra spolen med omvänd polaritet.
- Sedan power första spolen med omvänd polaritet.
- Slutligen, power den andra spolen.
För att vända en bipolär stepper motor riktning, helt enkelt vända polariteten på den andra spolen.
Här är koden för att göra stepper snurra i en riktning:
/*************************************************************
Motoriska sköld Stepper Demo
av Randy Sarafan
För mer information, se:
*************************************************************/
int delaylegnth = 30.
void setup() {
upprätta motor riktning växla pins
pinMode (12, OUTPUT); CH A--Hög = framåt och låg = bakåt???
pinMode (13, OUTPUT); CH B--Hög = framåt och låg = bakåt???
upprätta motor broms pins
pinMode (9, OUTPUT); broms (inaktivera) CH A
pinMode (8, OUTPUT); broms (inaktivera) CH B
}
void loop() {
digitalWrite (9, låg). AKTIVERA CH A
digitalWrite 8, hög. INAKTIVERA CH B
digitalWrite 12, hög. Tabellriktningen CH A
analogWrite (3, 255); Rör sig CH A
Delay(delaylegnth);
digitalWrite (9, hög). INAKTIVERA CH A
digitalWrite 8, låg. AKTIVERA CH B
digitalWrite 13, låg. Tabellriktningen CH B
analogWrite (11, 255); Rör sig CH B
Delay(delaylegnth);
digitalWrite (9, låg). AKTIVERA CH A
digitalWrite 8, hög. INAKTIVERA CH B
digitalWrite 12, låg. Tabellriktningen CH A
analogWrite (3, 255); Rör sig CH A
Delay(delaylegnth);
digitalWrite (9, hög). INAKTIVERA CH A
digitalWrite 8, låg. AKTIVERA CH B
digitalWrite 13, hög. Tabellriktningen CH B
analogWrite (11, 255); Rör sig CH B
Delay(delaylegnth);
}
Här är koden för att göra stepper snurra i motsatt riktning:
/*************************************************************
Motoriska sköld Stepper Demo
av Randy Sarafan
För mer information, se:
*************************************************************/
int delaylegnth = 30.
void setup() {
upprätta motor riktning växla pins
pinMode (12, OUTPUT); CH A--Hög = framåt och låg = bakåt???
pinMode (13, OUTPUT); CH B--Hög = framåt och låg = bakåt???
upprätta motor broms pins
pinMode (9, OUTPUT); broms (inaktivera) CH A
pinMode (8, OUTPUT); broms (inaktivera) CH B
}
void loop() {
digitalWrite (9, låg). AKTIVERA CH A
digitalWrite 8, hög. INAKTIVERA CH B
digitalWrite 12, hög. Tabellriktningen CH A
analogWrite (3, 255); Rör sig CH A
Delay(delaylegnth);
digitalWrite (9, hög). INAKTIVERA CH A
digitalWrite 8, låg. AKTIVERA CH B
digitalWrite 13, hög. Tabellriktningen CH B
analogWrite (11, 255); Rör sig CH B
Delay(delaylegnth);
digitalWrite (9, låg). AKTIVERA CH A
digitalWrite 8, hög. INAKTIVERA CH B
digitalWrite 12, låg. Tabellriktningen CH A
analogWrite (3, 255); Rör sig CH A
Delay(delaylegnth);
digitalWrite (9, hög). INAKTIVERA CH A
digitalWrite 8, låg. AKTIVERA CH B
digitalWrite 13, låg. Tabellriktningen CH B
analogWrite (11, 255); Rör sig CH B
Delay(delaylegnth);
}