hi I am making a prototype in which I use an application interface and it contains switches that when enabled have to rotate or servo motor by 120 degrees and when disabled return.
However I couldn't create a programming logic in the Arduino IDE and only managed to activate a relay module.
I would like help from something in solving the problem to rotate servo motor .
Database = Firebase Realtime Database
The logic done in the Arduino IDE along with other information is below:
//servo motor drive so far
#include <FirebaseESP32.h>
#include <WiFi.h>
#include <ESP32Servo.h>
#include <analogWrite.h>
#include <ESP32Tone.h>
#include <ESP32PWM.h>
Servo motor;
#define FIREBASE_HOST "-default-rtdb.firebaseio.com"
#define FIREBASE_AUTH "nK6EDkRyDKsw8Zb7B76cwXDn0GnsrvlSs"
#define WIFI_SSID "INTELBRAS"
#define WIFI_PASSWORD "tremdas11"
FirebaseData firebaseData;
int L1= 26;
int pos;
String Switch1;
void setup() {
pinMode(L1, OUTPUT);
motor.write(0);
motor.attach(26);
pos=0;
delay(500);
Serial.begin(115200);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("Wifi");
while(WiFi.status() !=WL_CONNECTED)
{
Serial.print(".");
delay(100);
}
Serial.println();
Serial.print("IP");
Serial.println(WiFi.localIP());
Serial.println();
Serial.println("------------");
Serial.println("carregando...");
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
Firebase.reconnectWiFi(true);
Firebase.setReadTimeout(firebaseData, 1000 * 60);
Firebase.setwriteSizeLimit(firebaseData,"tiny");
}
void loop() {
if(Firebase.getString(firebaseData,"/SWITCH/L1")){
Switch1= firebaseData.stringData();}
if (Firebase.getString(firebaseData,"/SWITCH/L2")){
Switch1= firebaseData.stringData();}
if (Firebase.getString(firebaseData,"/SWITCH/L3")){
Switch1= firebaseData.stringData();}
if (Switch1=="1" && pos == 120) {
for (pos = 120; pos > 0; pos -= 1){
motor.write(pos);
delay(1000);
}
}
else if (Switch1== "0" && pos == 0) {
for (pos = 0; pos < 120; pos += 1 ){
motor.write(pos);
delay(1000);
}
}
}