/*
Stepper Motor Test
stepper-test01.ino
Uses MA860H or similar Stepper Driver Unit
Has speed control & reverse switch
DroneBot Workshop 2019
https://dronebotworkshop.com
*/
// Defin pins
int SW_L = 2; // Push button for reverse
int SW_R = 3;
int PUL = 5; // PUL- pin
int DIR = 4; // DIR- pin
int Relay = 11;
int spd = A0; // Potentiometer
// Variables
int pd = 500; // Pulse Delay period
int rt = 1000;
boolean setdir_R = LOW; // Set Direction
boolean setdir_L = HIGH;
// Interrupt
void revers()
{
setdir_R = !setdir_R;
}
void forward()
{
setdir_L = !setdir_L;
}
void setup() {
pinMode(PUL, OUTPUT);
pinMode(DIR, OUTPUT);
pinMode(Relay, OUTPUT);
attachInterrupt(digitalPinToInterrupt(SW_L), revers, HIGH);
attachInterrupt(digitalPinToInterrupt(SW_R), forward, HIGH);
digitalWrite(Relay, LOW);
}
void left()
{
if(digitalRead(SW_L) == 0)
{
pd = map((analogRead(spd)),0,1023,2000,50);
digitalWrite(Relay, HIGH);
delayMicroseconds(rt);
digitalWrite(DIR, setdir_L);
digitalWrite(PUL, HIGH);
delayMicroseconds(pd);
digitalWrite(PUL, LOW);
delayMicroseconds(pd);
}
if(digitalRead(SW_L) != 0)
{
delayMicroseconds(rt);
digitalWrite(Relay, LOW);
}
}
void right()
{
if(digitalRead(SW_R) == 0)
{
pd = map((analogRead(spd)),0,1023,2000,50);
digitalWrite(Relay, HIGH);
delayMicroseconds(rt);
digitalWrite(DIR, setdir_R);
digitalWrite(PUL, HIGH);
delayMicroseconds(pd);
digitalWrite(PUL, LOW);
delayMicroseconds(pd);
}
if(digitalRead(SW_R) != 0)
{
delayMicroseconds(rt);
digitalWrite(Relay, LOW);
}
}
void loop()
{
left();
right();
}
nano:12
nano:11
nano:10
nano:9
nano:8
nano:7
nano:6
nano:5
nano:4
nano:3
nano:2
nano:GND.2
nano:RESET.2
nano:0
nano:1
nano:13
nano:3.3V
nano:AREF
nano:A0
nano:A1
nano:A2
nano:A3
nano:A4
nano:A5
nano:A6
nano:A7
nano:5V
nano:RESET
nano:GND.1
nano:VIN
nano:12.2
nano:5V.2
nano:13.2
nano:11.2
nano:RESET.3
nano:GND.3
pot1:GND
pot1:SIG
pot1:VCC
drv1:ENABLE
drv1:MS1
drv1:MS2
drv1:MS3
drv1:RESET
drv1:SLEEP
drv1:STEP
drv1:DIR
drv1:GND.1
drv1:VDD
drv1:1B
drv1:1A
drv1:2A
drv1:2B
drv1:GND.2
drv1:VMOT
stepper1:A-
stepper1:A+
stepper1:B+
stepper1:B-
sw1:1a
sw1:2a
sw1:3a
sw1:4a
sw1:5a
sw1:6a
sw1:7a
sw1:8a
sw1:8b
sw1:7b
sw1:6b
sw1:5b
sw1:4b
sw1:3b
sw1:2b
sw1:1b
gnd1:GND
vcc1:VCC
r1:1
r1:2
relay1:VCC
relay1:GND
relay1:IN
relay1:NC
relay1:COM
relay1:NO
relay2:VCC
relay2:GND
relay2:IN
relay2:NC
relay2:COM
relay2:NO
r2:1
r2:2