Estou desenvolvendo uma pequena automação onde estou utilizando Mini Wemos juntamente com um motor de passo.
Quero que quando envio a solicitação 'L' ou 'R' o motor de passo alterne a rotação.
Problemas que estou tendo em minha codificação.
A rotação esta parando, quero que fique rodando a todo momento até que faça outra solicitação.
Quando faço a solicitação 192.168.4.1/L ou 192.168.4.1/R quero que interrompa o que esta fazendo e faça a solicitação.
#include <ESP8266WebServer.h>
#include <Stepper.h>
const char *ssid = "esp8266-AccessPoint";
const char *password = "1234567890";
char comando;
const int stepsPerRevolution = 500;
Stepper myStepper(stepsPerRevolution, D1, D2, D5, D6);
ESP8266WebServer server(80);
void handleRoot() {
response();
}
void handleLedOn() {
comando = 'L';
response();
}
void handleLedOff() {
comando = 'R';
response();
}
void response(){
if(comando == 'L'){
giraAH();
}else{
giraH();
}
}
void setup() {
delay(1000);
Serial.begin(115200);
Serial.println();
WiFi.softAP(ssid, password);
IPAddress apip = WiFi.softAPIP();
Serial.print("visit: \n");
Serial.println(apip);
server.on("/", handleRoot);
server.on("/L", handleLedOn);
server.on("/R", handleLedOff);
server.begin();
Serial.println("HTTP server beginned");
myStepper.setSpeed(60);
}
void loop() {
server.handleClient();
}
void giraH()
{
for(int i = 0; i < 32; i++)
{
for(int j = 0; j < 64; j++)
{
myStepper.step(1);
delay(10);
}
}
}
void giraAH()
{
for(int i = 0; i < 32; i++)
{
for(int j = 0; j < 64; j++)
{
myStepper.step(-1);
delay(10);
}
}
}