Here is my program
void setup()
{
pinMode(8, OUTPUT); // FORWARD(LEFT) = LOW; REVERSE(RIGHT) = HIGH
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, HIGH);
pinMode(2, INPUT_PULLUP); // BUTTON2 - 5GAL HEAD
pinMode(3, INPUT_PULLUP); // BUTTON3 - 15GAL HEAD
pinMode(4, INPUT_PULLUP); // BUTTON4 - LEFT JOG
pinMode(5, INPUT_PULLUP); // BUTTON5 - RIGHT JOG
}
void loop()
{
//__________________________________________________________________________________
if (digitalRead(2) == LOW)// Button 2 PRESSED - 5GAL
{
digitalWrite(8, LOW); // TURN COUNTERCLOCKWISE - CUTTING
for (int loop=0; loop<4500; loop++) // FAST MOVEMENT -
{
digitalWrite(9, HIGH);
delay(1);
digitalWrite(9, LOW);
delay(1);
}
for (int loop=0; loop<1125; loop++) // SLOW CUTTING - SET NUMBER OF LOOPS (1000 = ~1")
{
digitalWrite(9, HIGH);
delay(400);
digitalWrite(9, LOW);
delay(1);
}
delay(10000); // PAUSE TO FINALLIZE CUT
digitalWrite(8, HIGH); // TURN CLOCKWISE - RETREATING
for (int loop=0; loop<5625; loop++) // BACKING UP - SET NUMBER OF LOOPS (1000 = ~1")
{
digitalWrite(9, HIGH);
delay(1);
digitalWrite(9, LOW);
delay(1);
}
}
//__________________________________________________________________________________
if (digitalRead(3) == LOW)// Button 3 PRESSED - 15GAL
{
digitalWrite(8, LOW); // TURN COUNTERCLOCKWISE - CUTTING
for (int loop=0; loop<3200; loop++) // FAST MOVEMENT -
{
digitalWrite(9, HIGH);
delay(1);
digitalWrite(9, LOW);
delay(1);
}
for (int loop=0; loop<1125; loop++) // SLOW CUTTING - SET NUMBER OF LOOPS (1000 = ~1")
{
digitalWrite(9, HIGH);
delay(400);
digitalWrite(9, LOW);
delay(1);
}
delay(10000); // PAUSE TO FINALLIZE CUT
digitalWrite(8, HIGH); // TURN CLOCKWISE - RETREATING
for (int loop=0; loop<4325; loop++) // BACKING UP - SET NUMBER OF LOOPS (1000 = ~1")
{
digitalWrite(9, HIGH);
delay(1);
digitalWrite(9, LOW);
delay(1);
}
}
//__________________________________________________________________________________
if (digitalRead(4) == LOW) // BUTTON 4 PRESSED - COUNTER-CLOCKWISE - LEFT ONCE
{
digitalWrite(8, LOW); // FORWARD - CUTTING
digitalWrite(9, HIGH);
delay(5);
digitalWrite(9, LOW);
delay(1);
}
//__________________________________________________________________________________
if (digitalRead(5) == LOW) // BUTTON 5 PRESSED - CLOCKWISE - RIGHT ONCE
{
digitalWrite(8, HIGH); // REVERSE - RETREATING
digitalWrite(9, HIGH);
delay(5);
digitalWrite(9, LOW);
delay(1);
}
//__________________________________________________________________________________
}
The shutting down to protect itself makes sense. I was looking at a DQ542MA with the following specs:
Input Voltage: 18-50 VDC
Input Current: < 4A
Output Current: 1.0A~4.2A
Consumption: 80W; Internal Insurance: 6A
Working Temperature: -10℃~45℃
Stocking Temperature: -40℃~70℃
Humidity: Not condensation, no water droplets
Gas: Prohibition of combustible gases and conductive dust
Weight: 200G
Would this handle it better?