Bouton sur pin analogique

Bonjour,

je suis actuellement en train de construire un robot à base d'Arduino. Le but est que ce robot détecte les obstacles devant lui et qu'il fasse une manoeuvre pour changer sa direction. Le tout marche normalement, mais il arrive parois que le robot recule dans des objets. C'est pourquoi je voudrais installer un capteur arrière. J'ai déjà construis ce capteur en prenant des ressorts de stylo qui font contact sur une borne quand le robot fonce dans quelquechose (ceci revient à mettre un bouton poussoir...). Malheureusement, je n'ai plus aucun pin digital dispo, mais il me reste encore tous les pins analogiques...

J'ai donc connecté la première borne de mon capteur au GND de l'arduino et la seconde à A0. Je pensais mettre dans mon programme "pinMode(A0, INPUT_PULLUP)" et "if(analogRead == 0){ //Le robot s'arrête}". Hélas, quand je mets ceci dans le programme, le robot n'en tient pas compte et continue à reculer... :confused:

Je me suis dis que si je supprime le "pinMode(A0, INPUT_PULLUP)", je supprime avec la résistance de pullup et donc le retour analogique sera toujours de 0 (et donc l'arduino considererait que le robot touche un objet)...

Pourriez-vous me dire où se situe mon erreur ? *

Merci d'avance

Bonjour,

Tu peux te servir des pins analogiques de la même manière que les digitaux.

Si je dis pas de bêtises, la syntaxe est celle ci: digitalRead(Ax)

Sur les cartes arduino, avr atmega328p pour UNO, avr atmega 2560 pour Mega et avr atmega 32U4 pour Léonardo, mais pas forcément sur tous les avr existants, la broche "physique" au niveau du boîtier de ce que l'on appelle par raccourci une entrée analogique est reliée en interne :

  1. à une entrée d'un port digital
  2. à une entrée du multiplexeur analogique

Si tu appelle une fonction numérique (pinMode(Ax), digitalWrite(Ax), digitalRead(Ax) le "coté multipleuxeur analogique" sera désactivé.
Si tu appelle une fonction analologique analogRead(Ax) le coté "numérique" sera désactivé et le convertisseur analogique/digital sera activé