#include <ESP32Servo.h>
Servo myServo;
const int ServoPin = 2;
const int PotPin = 35;
const int enable = 18;
const int MS1 = 5;
const int MS2 = 4;
const int MS3 = 15;
const int step = 25;
const int dir = 26;
TaskHandle_t Task1;
TaskHandle_t Task2;
void setup() {
pinMode(enable, OUTPUT);
pinMode(MS1, INPUT);
pinMode(MS2, INPUT);
pinMode(MS3, INPUT);
pinMode(step, OUTPUT);
pinMode(dir, INPUT_PULLUP);
Serial.begin(115200);
xTaskCreatePinnedToCore(Task1code, "Task1", 10000, NULL, 1, &Task1, 0);
xTaskCreatePinnedToCore(Task2code, "Task2", 10000, NULL, 1, &Task2, 1);
}
void Task1code( void * parameter )
{
Serial.print("Stepper Motor is running on core: ");
Serial.println(xPortGetCoreID());
digitalWrite(enable, LOW);
digitalWrite(MS1, LOW);
digitalWrite(MS2, LOW);
digitalWrite(MS3, LOW);
for (;;)
{
int val = analogRead(PotPin);
int mapval = map(val, 0, 4095, 0, 2049);
bool Btn_Sts = digitalRead(dir);
if (Btn_Sts == false)
{
for (int i = 0; i < mapval; i++)
{
digitalWrite(step, HIGH);
delay(100);
digitalWrite(step, LOW);
delay(100);
}
}
else if (Btn_Sts == true)
{
for (int i = mapval; i >= 0; i--)
{
digitalWrite(step, HIGH);
delay(100);
digitalWrite(step, LOW);
delay(100);
}
}
}
}
void Task2code( void * parameter ) {
Serial.print("Servo Motor is running on core: ");
Serial.println(xPortGetCoreID());
myServo.attach(ServoPin);
for (;;) {
int val = analogRead(PotPin);
int mapval = map(val, 0, 4095, 0, 180);
myServo.write(mapval);
}
}
void loop() {
}