Test with BBB (Freeduino) board, Darlington H-Bridge, Mabuchi # PF35T-48L4 stepper motor. Many thanks to Tom Igoe and his Physical computing book.
- /*
- Owen Mundy
- July 29, 2009
- p. 262 of Physical Computing
- Using BBB to run stepper motor by manually moving steppers
- */
- int pin1 = 3; // PWM
- int pin2 = 5; // PWM
- int pin3 = 6; // PWM
- int pin4 = 9; // PWM
- int ledpin = 13; // LED
- void setup()
- {
- pinMode(pin1, OUTPUT); // sets the pin as output
- pinMode(pin2, OUTPUT); // sets the pin as output
- pinMode(pin3, OUTPUT); // sets the pin as output
- pinMode(pin4, OUTPUT); // sets the pin as output
- pinMode(ledpin, OUTPUT); // sets the pin as output
- }
- void loop()
- {
- for (int i=0; i<24; i++)
- {
- digitalWrite(pin1, HIGH); // on
- digitalWrite(pin2, LOW); // off
- digitalWrite(pin3, HIGH); // on
- digitalWrite(pin4, LOW); // off
- delay(10); // waits for a second
- digitalWrite(pin1, LOW); // off
- digitalWrite(pin2, HIGH); // on
- digitalWrite(pin3, HIGH); // on
- digitalWrite(pin4, LOW); // off
- delay(10); // waits for a second
- digitalWrite(pin1, LOW); // off
- digitalWrite(pin2, HIGH); // on
- digitalWrite(pin3, LOW); // off
- digitalWrite(pin4, HIGH); // on
- delay(10); // waits for a second
- digitalWrite(pin1, HIGH); // on
- digitalWrite(pin2, LOW); // off
- digitalWrite(pin3, LOW); // off
- digitalWrite(pin4, HIGH); // on
- delay(10); // waits for a second
- }
- blink();
- for (int i=0; i<24; i++)
- {
- digitalWrite(pin1, HIGH); // on
- digitalWrite(pin2, LOW); // off
- digitalWrite(pin3, LOW); // off
- digitalWrite(pin4, HIGH); // on
- delay(10); // waits for a second
- digitalWrite(pin1, LOW); // off
- digitalWrite(pin2, HIGH); // on
- digitalWrite(pin3, LOW); // off
- digitalWrite(pin4, HIGH); // on
- delay(10); // waits for a second
- digitalWrite(pin1, LOW); // off
- digitalWrite(pin2, HIGH); // on
- digitalWrite(pin3, HIGH); // on
- digitalWrite(pin4, LOW); // off
- delay(10); // waits for a second
- digitalWrite(pin1, HIGH); // on
- digitalWrite(pin2, LOW); // off
- digitalWrite(pin3, HIGH); // on
- digitalWrite(pin4, LOW); // off
- delay(10); // waits for a second
- }
- blink();
- for (int i=0; i<6; i++)
- {
- digitalWrite(pin1, HIGH); // on
- digitalWrite(pin2, LOW); // off
- digitalWrite(pin3, HIGH); // on
- digitalWrite(pin4, LOW); // off
- delay(10); // waits for a second
- digitalWrite(pin1, LOW); // off
- digitalWrite(pin2, HIGH); // on
- digitalWrite(pin3, HIGH); // on
- digitalWrite(pin4, LOW); // off
- delay(10); // waits for a second
- digitalWrite(pin1, LOW); // off
- digitalWrite(pin2, HIGH); // on
- digitalWrite(pin3, LOW); // off
- digitalWrite(pin4, HIGH); // on
- delay(10); // waits for a second
- digitalWrite(pin1, HIGH); // on
- digitalWrite(pin2, LOW); // off
- digitalWrite(pin3, LOW); // off
- digitalWrite(pin4, HIGH); // on
- delay(10); // waits for a second
- }
- blink();
- for (int i=0; i<6; i++)
- {
- digitalWrite(pin1, HIGH); // on
- digitalWrite(pin2, LOW); // off
- digitalWrite(pin3, LOW); // off
- digitalWrite(pin4, HIGH); // on
- delay(10); // waits for a second
- digitalWrite(pin1, LOW); // off
- digitalWrite(pin2, HIGH); // on
- digitalWrite(pin3, LOW); // off
- digitalWrite(pin4, HIGH); // on
- delay(10); // waits for a second
- digitalWrite(pin1, LOW); // off
- digitalWrite(pin2, HIGH); // on
- digitalWrite(pin3, HIGH); // on
- digitalWrite(pin4, LOW); // off
- delay(10); // waits for a second
- digitalWrite(pin1, HIGH); // on
- digitalWrite(pin2, LOW); // off
- digitalWrite(pin3, HIGH); // on
- digitalWrite(pin4, LOW); // off
- delay(10); // waits for a second
- }
- blink();
- }
- void blink()
- {
- digitalWrite(ledpin, HIGH); // on
- delay(1000); // waits for a second
- digitalWrite(ledpin, LOW); // off
- }