#include <Servo.h>
Servo monServo;
Servo monServo2;
int pinJoystickX = A0; // Broche analogique utilisée pour l'axe X du joystick
int pinJoystickY = A1; // Broche analogique utilisée pour l'axe Y du joystick
int pinJoystickClick = 2; // Broche digitale utilisée pour le clic du joystick
bool ledAllumee = false;
unsigned long dernierClic = 0;
void setup() {
monServo.attach(9); // Broche 9 utilisée pour contrôler le servo
monServo2.attach(10); // Broche 10 utilisée pour contrôler le servo
pinMode(pinJoystickClick, INPUT_PULLUP); // Configure la broche du clic du joystick en entrée avec résistance de pull-up
Serial.begin(115200);
}
void loop() {
int valeurX = analogRead(pinJoystickX); // Lire la valeur de l'axe X
int valeurY = analogRead(pinJoystickY); // Lire la valeur de l'axe Y
bool boutonClique = !digitalRead(pinJoystickClick); // Lire l'état du bouton (inversé à cause de la résistance de pull-up)
// Convertir les valeurs lues en angles pour le servo (0 à 180 degrés)
int angleX = map(valeurX, 0, 1023, 0, 180);
int angleY = map(valeurY, 0, 1023, 0, 180);
// Déplacer le servo à l'angle calculé
monServo.write(angleX);
if (angleX != 90) {
Serial.print("monServo : ");
Serial.println(angleX);
}
monServo2.write(angleY);
if (angleY != 90) {
Serial.print("monServo2 : ");
Serial.println(angleY);
}
// Vérifier si le bouton est cliqué
if (boutonClique && (millis() - dernierClic > 200)) {
dernierClic = millis();
ledAllumee = !ledAllumee;
digitalWrite(LED_BUILTIN, ledAllumee ? HIGH : LOW);
Serial.print("ledAllumee : ");
Serial.println(ledAllumee);
Serial.print("LED_BUILTIN : ");
Serial.println(digitalRead(LED_BUILTIN));
}
}