Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <SPI.h>;
- const int stp = 9;
- const int dir = 10;
- const int slaveSelectPin = 11; // Chip selection pin ,must be high when register is written
- const int nSleep = 6; // pin which wakes up the board
- float StepsPerRev = 200;
- float microStep = 8;
- float roundPerMinute = 60;
- int P = (roundPerMinute * microStep * StepsPerRev)/(60); // steps per second
- int D = (1000000/(2*P)); // delay time for steps, 1 000 000 = 1 second in microsecond
- void setup()
- {
- pinMode(nSleep, OUTPUT); // pin for the nSleep which wakes up the board
- pinMode(slaveSelectPin, OUTPUT); // SCS
- pinMode(stp, OUTPUT);
- pinMode(dir, OUTPUT);
- digitalWrite(nSleep, HIGH); // HIGH wakes up board
- SPI.setBitOrder(MSBFIRST);
- SPI.begin();
- // CTRL Register
- digitalWrite(slaveSelectPin, HIGH); // slave select(SCS) has to be high in order to write register
- SPI.transfer(0x0f); //
- SPI.transfer(0x19); // 8 microsteps
- delay(15);
- digitalWrite(slaveSelectPin, LOW);
- delay(150);
- // TORQUE Register
- digitalWrite(slaveSelectPin, HIGH);
- SPI.transfer(0x10);
- SPI.transfer(0xba);
- delay(15);
- digitalWrite(slaveSelectPin, LOW);
- delay(150);
- // OFF Register
- digitalWrite(slaveSelectPin, HIGH);
- SPI.transfer(0x20);
- SPI.transfer(0x30);
- delay(15);
- digitalWrite(slaveSelectPin, LOW);
- delay(150);
- // BLANK Register
- digitalWrite(slaveSelectPin, HIGH);
- SPI.transfer(0x31);
- SPI.transfer(0x08);
- delay(15);
- digitalWrite(slaveSelectPin, LOW);
- delay(150);
- // DECAY Register
- digitalWrite(slaveSelectPin, HIGH);
- SPI.transfer(0x43);
- SPI.transfer(0x10);
- delay(15);
- digitalWrite(slaveSelectPin, LOW);
- delay(150);
- // STALL Register
- digitalWrite(slaveSelectPin, HIGH);
- SPI.transfer(0x5f);
- SPI.transfer(0x40);
- delay(15);
- digitalWrite(slaveSelectPin, LOW);
- delay(150);
- // Drive Register
- digitalWrite(slaveSelectPin, HIGH);
- SPI.transfer(0x60);
- SPI.transfer(0x55);
- delay(15);
- digitalWrite(slaveSelectPin, LOW);
- delay(150);
- // STATUS Register
- digitalWrite(slaveSelectPin, HIGH);
- SPI.transfer(0x70);
- SPI.transfer(0x80);
- delay(15);
- digitalWrite(slaveSelectPin, LOW);
- delay(150);
- digitalWrite(dir, LOW);
- digitalWrite(stp, LOW);
- }
- void loop()
- {
- digitalWrite(stp,HIGH);
- delayMicroseconds(D);
- digitalWrite(stp,LOW);
- delayMicroseconds(D);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement