Commande analogRead et proximité d'une main

Bonjour à tous et à toutes.

Il y a peu de temps j'ai réalisé ce montage https://photos.app.goo.gl/bGRA3jMYeLXjK8ir5

J'ai utilisé le code suivant :

int led = 13;
int fil = A0;
void setup() {
  // put your setup code here, to run once:
  pinMode(led, OUTPUT);
  pinMode(fil, INPUT);
  Serial.begin (9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  int Val = analogRead(fil);

  digitalWrite(led, LOW);
  if (Val > 0)

  {
    digitalWrite(led, HIGH);


  }
  Serial.println (Val);
  delay (1);
}

Avec ce montage (résistance d'environ 50Kohm) la proximité d'une main permet d'allumer la led (cela fonctionne aussi avec un portable).

J'ai cherché un peu partout sur internet et n'ai pas trouvé d'explication à ce phénomène.

Quelqu'un pourrait t'il m'éclairer ?
Merci d'avance.

D'un coté :

La spirale de fil que tu as dessiné se comporte comme une antenne.
Ton corps aussi est une antenne qui reçoit et qui émet.
En approchant la main les deux effets peuvent s'additionner.

De l'autre coté :
Une entrée de microcontrôleur est équivalente à une résistance de plusieurs millions d'ohm avec en parallèle une petite capacité de quelques pico farad ( pico = 1/1000 000 000 000).
Une entrée de microcontroleur est aussi protégée contre l'énergie statique par deux diodes câblées en inverse.

Au final :
Quand on approche la main l'entrée reçoit une grande quantité de signal alternatif (Radio, télévision, Wifi, bluetooth, 3G , 4G, micro-onde ,etc...).
Du fait de la présence des diodes câblées en inverse seules les alternances positives sont conservées.
La petite capacité se charge et le convertisseur analogique digital croit détecter une tension.

Bonjour,

Je suis un peu étonné que le phénomène se produise avec un résistance de 50k au gnd.
Tu es sur de ta résistance ? D'ailleurs pourquoi environ 50k? Ce n'est pas une résistance de 47k?

Je suis un peu étonné que le phénomène se produise avec un résistance de 50k au gnd.

Tout dépend du gain de l'antenne.

Je ne l'avais pas fais remarquer me contentant de tenter d'expliquer le phénomène mais ce qui me surprend le plus c'est ça :

 int Val = analogRead(fil);
 digitalWrite(led, LOW);
  if (Val > 0)
{
   digitalWrite(led, HIGH);
}

Si la carte utilise un micro avr (carte Uno ou Méga), connaissant la médiocrité des implantations arduino en ce qui concerne l'analogique, la del devrait être toujours allumée car à mon avis Val ne peut pas être égal à 0, la ligne Aref est beaucoup trop bruitée.

Je n'avais pas vu non plus.
La ça peut s'expliquer: avec une résistance de 50k au gnd on doit avoir une valeur de 0 et en approchant la main, on peut avoir une variation de 1 ou 2 pas ce qui allume la led.

Merci à tous les deux pour vos réponses !

Je suis un peu étonné que le phénomène se produise avec un résistance de 50k au gnd.
Tu es sur de ta résistance ? D'ailleurs pourquoi environ 50k? Ce n'est pas une résistance de 47k?

En fait j'utilise un potentiomètre de 100k pour faire varier la résistance (plus la résistance est grande plus le phénomène est visible).

Si la carte utilise un micro avr (carte Uno ou Méga), connaissant la médiocrité des implantations arduino en ce qui concerne l'analogique, la del devrait être toujours allumée car à mon avis Val ne peut pas être égal à 0, la ligne Aref est beaucoup trop bruitée.

En fait relier le fil au gnd par l'intermédiaire de la résistance permet de limiter les parasites.

La ça peut s'expliquer: avec une résistance de 50k au gnd on doit avoir une valeur de 0 et en approchant la main, on peut avoir une variation de 1 ou 2 pas ce qui allume la led.

J'ai observé des variations de pas jusqu'à 11.

Bonjour,

J'ai observé des variations de pas jusqu'à 11. .....

Avec un résultat max égal à 11 sur une référence de 5V et un convertisseur 10 bits (1024 valeurs) on se retrouve avec un bruit parasite vers 50 mV dans le cas de proximité d'une main du bout de fil qui fait antenne.
Bon, je ne suis pas trop étonné.

Serge .D

Je reviens vers vous pour vous faire part de quelques observations.

Tout d'abord ce n'est pas réellement ma main qui déclenchait le système. La présence de mon smartphone dans ma poche s'avère indispensable. C'est donc mon portable qui déclenche le système.

Ensuite j'ai pu voir que selon le modèle de téléphone la distance nécessaire pour que l'arduino capte un signal varie (certains smartphone ne déclenchant même pas du tout). J'ai comparé les DAS de ces smartphones sans trouvé de corrélations.

Qu'est ce qui pourrait alors expliquer les différences observées entre les téléphones ?

Essaye avec une plaque de métal...?