Zkoušel jsem to vložit do kódu co už mi funguje na spuštění, ale motor nejde zastavit. Neumím ho dostat do režimu kontinuálního otáčení, ale jen na určitý počet otáček a tam to asi nikam vložit nepůjde.
Je na to nějaká finta?
Kód: Vybrat vše
#include <Arduino.h>
#include "A4988.h"
const int Step = 3; //GPIO3 in Arduino UNO --- Step of stepper motor driver
int Dire = 2; //GPIO2 in Arduino UNO --- Direction of stepper motor driver
int Sleep = 4; //GPIO4 in Arduino UNO --- Control Sleep Mode on A4988
int MS1 = 7; //GPIO7 in Arduino UNO --- MS1 for A4988
int MS2 = 6; //GPIO6 in Arduino UNO --- MS2 for A4988
int MS3 = 5; //GPIO5 in Arduino UNO --- MS3 for A4988
int BLT_pin = 11;
int ENB_pin = 9;
int STEP_pin = 10;
const int SW_pin = 8;
//Motor Specs
const int spr =200; //Steps per revolution
int RPM = 64; //Motor Speed in revolutions per minute
int Microsteps = 16; //Stepsize (1 for full steps, 2 for half steps, 4 for quarter steps, etc)
//Providing parameters for motor control
A4988 stepper(spr, Dire, Step, MS1, MS2, MS3);
void setup() {
Serial.begin(9600);
pinMode(MS1, INPUT_PULLUP);
pinMode(MS2, INPUT_PULLUP);
pinMode(MS3, INPUT_PULLUP);
pinMode(SW_pin, INPUT);
pinMode(STEP_pin, INPUT);
pinMode(BLT_pin, OUTPUT);
pinMode(ENB_pin, OUTPUT);
pinMode(Step, OUTPUT); //Step pin as output
pinMode(Dire, OUTPUT); //Direcction pin as output
pinMode(Sleep, OUTPUT); //Set Sleep OUTPUT Control button as output
digitalWrite(Step, LOW); // Currently no stepper motor movement
digitalWrite(Dire, LOW);
digitalWrite(Sleep, HIGH); //A logic high allows normal operation of the A4988 by removing from sleep
digitalWrite(ENB_pin, HIGH);
delay(1000);//Wait 1000 milliseconds (1 second) proceeding
digitalWrite(BLT_pin, LOW);
digitalWrite(ENB_pin, LOW);
digitalWrite(SW_pin, LOW);
digitalWrite(STEP_pin, HIGH);
// Set target motor RPM to and microstepping setting
stepper.begin(RPM, Microsteps);
delay(5000);
}
void loop() {
digitalRead(STEP_pin);
if(digitalRead(STEP_pin) == LOW){
digitalWrite(Sleep, HIGH); //A logic high allows normal operation of the A4988 by removing from sleep
stepper.move(3200);//Move steps clockwise
delay(200);//Wait 1000 milliseconds
digitalWrite(BLT_pin, LOW);
delay(500);//Wait 1000 milliseconds
digitalWrite(BLT_pin, HIGH);
delay(1500);//Wait 1000 milliseconds
digitalWrite(STEP_pin, LOW);
}
}