Juste un petit retour sur le pullup nécessaire au switch (bizarrement oublié sur mon script modèle de kit). Toujours cette complexité des pins disponibles sur les très nombreuses déclinaisons de cette plaquette géniale.
Je viens de tester un joystick sur une Wroom U (avec port antenne 2.4 Ghz). Le switch, comme tout bouton poussoir, a besoin d'un pullup pour que l'entrée digitale soit clairement 0 ou 1. Les pins 34 à 39 étant uniquement input, ils sont inutilisables. Je l'ai mis sur le 27. C'est OK.
Est-il vraiment utile d'utiliser une librairie spécialisée ?
/* Projet joystick partiel pour commander un modèle roulant
*
ATTENTION pour le switch, PULLUP nécessaire, pas possible sur 34-39 only input (PULLUP = 1 forcé 5v + pin vers la terre en SORTIE
car pullup = courant sort donc input 0 ou négatif)
J'avais fait l'erreur. pin 27 EN INPUT_PULLUP ok pour SWITCH
*/
const int SW_pin = 27; // digital pin connected to switch output
const int X_pin = 25; // analog pin connected to X output
const int Y_pin = 33; // analog pin connected to Y output
void setup() {
pinMode(SW_pin, INPUT_PULLUP);
digitalWrite(SW_pin, HIGH);
Serial.begin(115000);
}
void loop() {
Serial.print("Switch: ");
Serial.print(digitalRead(SW_pin));
Serial.print("\n");
Serial.print("X-axis: ");
Serial.print(analogRead(X_pin));
Serial.print("\n");
Serial.print("Y-axis: ");
Serial.println(analogRead(Y_pin));
Serial.print("\n\n");
delay(300); // 500 original
}
//XXXX