Valeur inconstante AnalogRead()

Bonjour j'essaye de faire tourner le code suivant :

#include <Servo.h> //On fait appelle à la bibliothéque Servo qui va contrôler le servomoteur

int analogPin = 3; // Pin dans laquelle j'envoi du courant
int ledverte=10;
int val = 0; // variable to store the value read
int ibase = 9;
int pinServoclapet = 8; //pin qui va contrôler le sevomoteur
Servo moteurclapet; // On créer l'objet Servomoteurclapet

void setup()
{
moteurclapet.attach(pinServoclapet); // On lie l'objet le premier moteur au pin
Serial.begin(9600);
pinMode(ledverte,OUTPUT); // setup serial
pinMode(ibase,OUTPUT);
pinMode(pinServoclapet,OUTPUT);
}

void loop()
{
pinMode(pinServoclapet,OUTPUT);
delay(500);
digitalWrite(ledverte,HIGH); //Signal que la poubelle est disponible
val = analogRead(analogPin); // read the input pin
Serial.println(val); // debug value
if(val >= 1000) // ça veut dire que le pin analogique reçoit bien du courant
{
Serial.println("Porte ouverte");
while(val >= 1000){ // Tant que le pin analogique reçoit du courant

val = analogRead(analogPin);
Serial.println(val);
Serial.println("Porte tjrs ouverte");
}
digitalWrite(ibase,HIGH); // La condition que la pin reçoit du courant est fausse
}

}

Tout fonctionne parfaitement sauf que la valeur que lit analogRead passe en dessous de 1000 alors que j'ai pas débranché la connexion ce que je voudrais faire c'est tant que le pin analog reçoit du courant (val>1000) fait ceci...

Si vous pouviez m'aider merci bien :slight_smile:

Bonjour

utilisation du forum : mettre le code entre balises code ( icône </>) comme indiqué dans les messages épinglés en tête de forum , messages destinés en particulier aux nouveaux venus.
Le code apparaitra alors dans une zone comme celle-ci: (avec un lien permettant de copier coller ce code dans l'IDE Arduino pour faciliter son examen)

mon code sur le forum......

On n'envoie pas de courant dans cette entrée.
Cette entrée reçoit une tension , même quand rien n'est connecté (effet d'antenne)

Il suffit d'approcher le doigt et de voir le résultat d'un analogRead()

Il faut donc maîtriser la tension dans tous les cas , la maintenir faible ou élevée s'il s'agit de détecter le branchement de quelque chose

Et analogPin est connectée à quoi??

très probablement rien.... mais rien c'est déjà beaucoup (Gainsbourg)..... et "inconstant" (pour analogRead)

al1fch:
très probablement rien.... mais rien c'est déjà beaucoup (Gainsbourg)..... et "inconstant" (pour analogRead)

Paroles de la chanson "Ces petits riens" par Serge Gainsbourg 8)

Mieux vaut n'penser à rien 
Que n'pas penser du tout 
Rien c'est déjà 
Rien c'est déjà beaucoup 
On se souvient de rien 
Et puisqu'on oublie tout 
Rien c'est bien mieux 
Rien c'est bien mieux que tout 
...

Woshu:
Bonjour j'essaye de faire tourner le code suivant :
[...]
int analogPin = 3; // Pin dans laquelle j'envoi du courant
[...]
Tout fonctionne parfaitement sauf que la valeur que lit analogRead passe en dessous de 1000 alors que j'ai pas débranché la connexion ce que je voudrais faire c'est tant que le pin analog reçoit du courant (val>1000) fait ceci...

Si vous pouviez m'aider merci bien :slight_smile:

Salut,

La broche 3 n'est pas analogique, utilise digitalRead() et ajoute une résistance de pull down.

Bonjour ChristopheFR

ChristopheFr:
Salut,

La broche 3 n'est pas analogique, utilise digitalRead() et ajoute une résistance de pull down.

analogRead(3) adresse le canal analogique 3

Voir arduino - analogRead(0) or analogRead(A0) - Electrical Engineering Stack Exchange

Cordialement,
bidouilleelec

Oui mais c'est le meilleur moyen de rendre un code incompréhensible au bout de quelques semaines.
Un peu de discipline et de rigueur ne peut qu'aller dans le bon sens.

Bonjour 68tjs

68tjs:
Oui mais c'est le meilleur moyen de rendre un code incompréhensible au bout de quelques semaines.

C'est , malheureusement ou pas , la programmation utilisée dans l'exemple de la référence pour analogRead et de très nombreux tutoriaux d'auteurs très connus.

Un peu de discipline et de rigueur ne peut qu'aller dans le bon sens.

C'est plutôt une question de compréhension.

Cordialement,
bidouilleelec