Hi guys,
I would like to use a slider to increase or decrease the pwm for the motor,or i try with several conidtion and i din't find a solution.
Here the screen of the slider control
If someboy have a idea.
Many thanks
here the code for the esp32
Blockquote
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <ArduinoOTA.h>// connections for drive Motors
int PWM_A = D1;
//int PWM_B = D2;
int DIR_A = D3;
//int DIR_B = D4;const int buzPin = D5; // set digital pin D5 as buzzer pin (use active buzzer)
const int ledPin = D8; // set digital pin D8 as LED pin (use super bright LED)
const int wifiLedPin = D0; // set digital pin D0 as indication, the LED turn on if NodeMCU connected to WiFi as STA modeString command; // String to store app command state.
int SPEED = 100; // 330 - 1023.
int speed_Coeff = 3;ESP8266WebServer server(80); // Create a webserver object that listens for HTTP request on port 80
unsigned long previousMillis = 0;
String sta_ssid = "";
String sta_password = "";void setup(){
Serial.begin(115200); // set up Serial library at 115200 bps
Serial.println();
Serial.println("WiFi Train Control Mode");
Serial.println("--------------------------------------");pinMode(buzPin, OUTPUT); // sets the buzzer pin as an Output
pinMode(ledPin, OUTPUT); // sets the LED pin as an Output
pinMode(wifiLedPin, OUTPUT); // sets the Wifi LED pin as an Output
digitalWrite(buzPin, LOW);
digitalWrite(ledPin, LOW);
digitalWrite(wifiLedPin, HIGH);// Set all the motor control pins to outputs
pinMode(PWM_A, OUTPUT);
//pinMode(PWM_B, OUTPUT);
pinMode(DIR_A, OUTPUT);
//pinMode(DIR_B, OUTPUT);// Turn off motors - Initial state
digitalWrite(DIR_A, LOW);
// digitalWrite(DIR_B, LOW);
analogWrite(PWM_A, 0);
//analogWrite(PWM_B, 0);// set NodeMCU Wifi hostname based on chip mac address
String hostname("Train-APP");
Serial.println();
Serial.println("Hostname: "+hostname);// first, set NodeMCU as STA mode to connect with a Wifi network
WiFi.mode(WIFI_STA);
WiFi.begin(sta_ssid.c_str(), sta_password.c_str());
Serial.println("");
Serial.print("Connecting to: ");
Serial.println(sta_ssid);
//Serial.print("Password: ");
//Serial.println(sta_password);// try to connect with Wifi network about 10 seconds
unsigned long currentMillis = millis();
previousMillis = currentMillis;
while (WiFi.status() != WL_CONNECTED && currentMillis - previousMillis <= 10000) {
delay(500);
Serial.print(".");
currentMillis = millis();
}// if failed to connect with Wifi network set NodeMCU as AP mode
if (WiFi.status() == WL_CONNECTED) {
Serial.println("");
Serial.println("WiFi-STA-Mode");
Serial.print("IP: ");
Serial.println(WiFi.localIP());
digitalWrite(wifiLedPin, LOW); // Wifi LED on when connected to Wifi as STA mode
delay(3000);
} else {
WiFi.mode(WIFI_AP);
WiFi.softAP(hostname.c_str());
IPAddress myIP = WiFi.softAPIP();
Serial.println("");
Serial.println("WiFi failed connected to " + sta_ssid);
Serial.println("");
Serial.println("WiFi-AP-Mode");
Serial.print("AP IP address: ");
Serial.println(myIP);
digitalWrite(wifiLedPin, HIGH); // Wifi LED off when status as AP mode
delay(3000);
}server.on ( "/", HTTP_handleRoot ); // call the 'handleRoot' function when a client requests URI "/"
server.onNotFound ( HTTP_handleRoot ); // when a client requests an unknown URI (i.e. something other than "/"), call function "handleNotFound"
server.begin(); // actually start the serverArduinoOTA.begin(); // enable to receive update/uploade firmware via Wifi OTA
}void loop() {
ArduinoOTA.handle(); // listen for update OTA request from clients
server.handleClient(); // listen for HTTP requests from clientscommand = server.arg("State"); // check HTPP request, if has arguments "State" then saved the value if (command == "F") Forward(); // check string then call a function or set a value else if (command == "B") Backward(); else if (command == "R") TurnRight(); else if (command == "L") TurnLeft(); else if (command == "G") ForwardLeft(); else if (command == "H") BackwardLeft(); else if (command == "I") ForwardRight(); else if (command == "J") BackwardRight(); else if (command == "S") Stop(); else if (command == "V") BeepHorn(); else if (command == "W") TurnLightOn(); else if (command == "Z") TurnLightOff(); else if (command == "0") SPEED = 50; else if (command == "1") SPEED = 60; else if (command == "2") SPEED = 70; else if (command == "3") SPEED = 80; else if (command == "4") SPEED = 90; else if (command == "5") SPEED = 100; else if (command == "6") SPEED = 750; else if (command == "7") SPEED = 820; else if (command == "8") SPEED = 890; else if (command == "9") SPEED = 960; else if (command == "q") SPEED = 1023;
}
// function prototypes for HTTP handlers
void HTTP_handleRoot(void){
server.send ( 200, "text/html", "" ); // Send HTTP status 200 (Ok) and send some text to the browser/clientif( server.hasArg("State") ){
Serial.println(server.arg("State"));
}
}void handleNotFound(){
server.send(404, "text/plain", "404: Not found"); // Send HTTP status 404 (Not Found) when there's no handler for the URI in the request
}// function to move forward
void Forward(){
digitalWrite(DIR_A, HIGH);
// digitalWrite(DIR_B, HIGH);
analogWrite(PWM_A, SPEED);
//analogWrite(PWM_B, SPEED);
}// function to move backward
void Backward(){
digitalWrite(DIR_A, LOW);
//digitalWrite(DIR_B, LOW);
analogWrite(PWM_A, SPEED);
//analogWrite(PWM_B, SPEED);
}// function to turn right
void TurnRight(){
digitalWrite(DIR_A, LOW);
//digitalWrite(DIR_B, HIGH);
analogWrite(PWM_A, SPEED);
//analogWrite(PWM_B, SPEED);
}// function to turn left
void TurnLeft(){
digitalWrite(DIR_A, HIGH);
//digitalWrite(DIR_B, LOW);
analogWrite(PWM_A, SPEED);
//analogWrite(PWM_B, SPEED);
}// function to move forward left
void ForwardLeft(){
digitalWrite(DIR_A, HIGH);
//digitalWrite(DIR_B, HIGH);
analogWrite(PWM_A, SPEED);
//analogWrite(PWM_B, SPEED/speed_Coeff);
}// function to move backward left
void BackwardLeft(){
digitalWrite(DIR_A, LOW);
//digitalWrite(DIR_B, LOW);
analogWrite(PWM_A, SPEED);
//analogWrite(PWM_B, SPEED/speed_Coeff);
}// function to move forward right
void ForwardRight(){
digitalWrite(DIR_A, HIGH);
//digitalWrite(DIR_B, HIGH);
analogWrite(PWM_A, SPEED/speed_Coeff);
//analogWrite(PWM_B, SPEED);
}// function to move backward left
void BackwardRight(){
digitalWrite(DIR_A, LOW);
//digitalWrite(DIR_B, LOW);
analogWrite(PWM_A, SPEED/speed_Coeff);
//analogWrite(PWM_B, SPEED);
}// function to stop motors
void Stop(){
digitalWrite(DIR_A, LOW);
//digitalWrite(DIR_B, LOW);
analogWrite(PWM_A, 0);
//analogWrite(PWM_B, 0);
}// function to beep a buzzer
void BeepHorn(){
digitalWrite(buzPin, HIGH);
delay(150);
digitalWrite(buzPin, LOW);
delay(80);
}// function to turn on LED
void TurnLightOn(){
digitalWrite(ledPin, HIGH);
}// function to turn off LED
void TurnLightOff(){
digitalWrite(ledPin, LOW);
}
Blockquote