-ESP32
-JOSTYCK ANALOG
-SERVO
El código buscando en la red es el siguiente
// Código para controlar dos servos con un joystick
//(incluyendo el botón SEL) en Wokwi usando un ESP32
#include <ESP32Servo.h>
// Configura los pines del joystick
const int joystickXPin = 34; // Pin para el eje X (horizontal)
const int joystickSWPin = 32; // Pin para el botón SW (SEL)
// Configura los pines de los servos
const int servoHorizontalPin = 26;
// Crea objetos de servo
Servo servoHorizontal;
void setup() {
Serial.begin(115200);
// Inicializa los servos en los pines correspondientes
servoHorizontal.attach(servoHorizontalPin);
// Configura el pin del botón del joystick como entrada
//con resistencia pull-up
// Esto es necesario para que el pin esté en alto por
//defecto (no presionado)
pinMode(joystickSWPin, INPUT_PULLUP);
}
void loop() {
// Lee el estado del botón del joystick (HIGH = no presionado,
//LOW = presionado)
int swState = digitalRead(joystickSWPin);
if (swState == LOW) {
// Si se presiona el botón, centra ambos servos
servoHorizontal.write(90);
Serial.println("Botón presionado: ¡Servos centrados!");
delay(500); // Pequeña pausa para evitar rebotes del botón
} else {
// Si no se presiona el botón, lee los valores del joystick
//y mueve los servos
int xValue = analogRead(joystickXPin);
// Mapea los valores del joystick (0-4095) al rango del
//servo (0-180)
int servoAngleX = map(xValue, 0, 4095, 180, 0);
// vamos a modificar los valores para ver que pasa
// Escribe los valores de los ángulos a los servos
servoHorizontal.write(servoAngleX);
// Imprime los valores en el monitor serial para depuración
Serial.print("Eje X (Horizontal): ");
Serial.print(xValue);
Serial.print(" -> Angulo X: ");
Serial.println(servoAngleX);
}
delay(20); // Un pequeño retraso para una lectura más estable
}
El gráfico de las conexiones es el siguiente
0 comentarios:
Publicar un comentario