#include #include #include #include int modo = 0; String html = R"***( SHOW SACK

MODOS

MODO 1

MODO 2

MODO 3

)***"; //-------------------------------------- const char* ssid = "SHOW SACK"; IPAddress IPaddr (192, 168, 168, 168); IPAddress IPmask(255, 255, 255, 0); ESP8266WebServer server(80); //-------------------------------------- void handleRoot() { server.send(200, "text/html", html); } void mode1() { modo=1; server.send(200, "text/html", html); } void mode2() { modo=2; server.send(200, "text/html", html); } void mode3() { modo=3; server.send(200, "text/html", html); } //=============================================== Servo servo1; Servo servo2; Servo servo3; Servo servo4; unsigned long previousMillis = 0; const long interval = 500; int cycle = 0; int boton = 16; int estadoboton = 0; void setup() { servo1.attach(12); servo2.attach(13); servo3.attach(2);// servo4.attach(4); pinMode(boton, INPUT_PULLUP); pinMode(LED_BUILTIN, OUTPUT); WiFi.softAP(ssid); WiFi.softAPConfig(IPaddr, IPaddr, IPmask); IPAddress myIP = WiFi.softAPIP(); server.on("/", handleRoot); server.on("/MODO1", mode1); server.on("/MODO2", mode2); server.on("/MODO3", mode3); server.begin(); Serial.println("HTTP server started"); } void loop() { server.handleClient(); switch (modo) { case 0: estadoboton =digitalRead(boton); if (estadoboton == LOW) { delay(200); modo = 1; } break; case 1: { digitalWrite(LED_BUILTIN, HIGH);//--------------------------------------- estadoboton =digitalRead(boton); if (estadoboton == LOW) { delay(200); modo = 2; } unsigned long currentMillis = millis(); if (currentMillis - previousMillis >= interval) { previousMillis = currentMillis; if (cycle == 0) { servo1.write(0); servo2.write(0); servo3.write(180); servo4.write(180); cycle = 1; } else { servo1.write(150); servo2.write(150); servo3.write(30); servo4.write(30); cycle = 0; } } } break; case 2: { digitalWrite(LED_BUILTIN, LOW);//-------------------------------------- estadoboton =digitalRead(boton); if (estadoboton == LOW) { delay(200); modo = 3; } unsigned long currentMillis = millis(); if (currentMillis - previousMillis >= interval) { previousMillis = currentMillis; if (cycle == 0) { servo1.write(0); servo2.write(0); servo3.write(30); servo4.write(30); cycle = 1; } else { servo1.write(150); servo2.write(150); servo3.write(180); servo4.write(180); cycle = 0; } } } break; case 3: { estadoboton =digitalRead(boton); if (estadoboton == LOW) { delay(200); modo = 4; } unsigned long currentMillis = millis(); if (currentMillis - previousMillis >= interval) { previousMillis = currentMillis; if (cycle == 0) { servo1.write(0); servo2.write(150); servo3.write(30); servo4.write(180); digitalWrite(LED_BUILTIN, HIGH); cycle = 1; } else { servo1.write(120); servo2.write(60); servo3.write(120); servo4.write(60); digitalWrite(LED_BUILTIN, LOW); cycle = 0; } } } break; case 4: servo1.write(0); servo2.write(0); servo3.write(180); servo4.write(180); delay(1000); modo = 0; break; } }