/* Monte no wokwi um circuito onde recebe um comando
e altera o sentido do motor.
Desafio: Recebe comandos para mudar o
micro step, iniciar e parar o motor via
controle do pino enabled do a4988
O que entregar
Video do funcionamento
Nome dos integrantes da dupla
Codigo .ino do projeto com o nome da dupla.
23538 - Rafaela F. Dos Santos
23309 - Doralice */
#define mStep 2
#define dirPin 3
#define enablePin 4
#define ms1 5
#define ms2 6
#define ms3 7
bool motorEnable = false;
bool motorDirection = false;
void setup() {
pinMode(mStep, OUTPUT);
pinMode(dirPin, OUTPUT);
pinMode(enablePin, OUTPUT);
pinMode(ms1, OUTPUT);
pinMode(ms2, OUTPUT);
pinMode(ms3, OUTPUT);
Serial.begin(115200);
Serial.println("Iniciando");
digitalWrite(enablePin, HIGH);
}
void loop() {
// vamos dar uma volta a cada 3 segundos
if (Serial.available() > 0){
char comando = Serial.read();
switch(comando){
case's':
motorEnable = !motorEnable;
digitalWrite(enablePin, motorEnable ? LOW : HIGH);
Serial.println(motorEnable ? "Motor ligado" : "Motor Desligado");
break;
case'd':
motorDirection = !motorDirection;
digitalWrite(dirPin, motorDirection);
Serial.println(motorDirection ? "Direção horária" : "Direção Anti-horária");
break;
}
}
if (motorEnable){
digitalWrite(mStep, HIGH);
delayMicroseconds(1500);
digitalWrite(mStep, LOW);
delayMicroseconds(1500);
}
}
/*
for(int i = 0; i < 3200; i++){
digitalWrite(mStep, HIGH);
delayMicroseconds(1500);
digitalWrite(mStep, LOW);
delayMicroseconds(1500);
}
delay(5000);*/