Problème passage USB alim externe...

Bonjour à tous.

J'ai un problème sur certains de mes projets dès je passe de l'alim USB du PC à une alimentation externe 5V.

Le but est d'ouvrir/fermer un relais selon qu'une personne touche ou non une plaque de métal.

J'utilise CapacitiveSensor.h.

Afin de tester mon alim, j'ai d'abord fait un petit code qui ouvre/ferme mon relais toutes les 2 secondes.

En USB ça fonctionne, avec mon alim 5V ça fonctionne.

Ensuite j'ajoute le sensor et le code avec le sensor.

En USB ça fonctionne, en 5V externe ça ne fonctionne plus.

Voici le montage en USB.

Mon alim 5V (qui arrive sur le domino) alimente la pin 5V de l'arduino et est reliée au GND (les 2 autres fils que vous voyez sont dans le vide). Le sensor en 5_4.

Est-ce que ça peut être dû au Serial.begin(9600); ou Serial.println ?

Je deviens fou je ne comprends rien ...

Merci à vous.

Poste ton programme entre balises CODE (les "</>") STP, ce sera plus facile de t'aider...
Comment as-tu câblé le capteur capacitif ? As-tu bien fait comme ça :

The physical setup includes a medium to high value (100 kilohm - 50 megohm) resistor between 
the send pin and the receive (sensor) pin.
CapacitiveSensor CapacitiveSensor(byte sendPin, byte receivePin)

Donc chez toi :

  • sendPin = 5
  • receivePin = 4

Dans l'exemple :

long total2 =  cs_4_5.capacitiveSensor(30);

le temps peut aussi jouer : essaye de faire varier ce nombre (30) pour voir si ça marche mieux. De mémoire, je crois que ça marchait pour moi avec des valeurs de l'ordre de 200 à 500. La taille de la plaque métallique influe puisqu'elle détermine la valeur de la capacité du capteur donc sa constante de temps.

Merci de ta rapidité !

Voici mon code (qui je le répète fonctionne super en USB !):

int inputPin = 3;  

int pinValue ;

void setup() {

cs_5_4.set_CS_AutocaL_Millis(0xFFFFFFFF);
Serial.begin(9600);

pinMode(ledRel1,OUTPUT);
   
pinMode(inputPin,INPUT);

digitalWrite(ledRel1,LOW); 
   
}

void loop() { 

pinValue=digitalRead(inputPin);
long total1 =  cs_5_4.capacitiveSensor(30);


Serial.println(pinValue);

    if(total1>50){
  digitalWrite(ledRel1,HIGH);
  } 
  else{
  digitalWrite(ledRel1,LOW);
  }

  
}

Pour le câblage (qui fonctionne en USB, j'insiste =p) :

Je viens aussi de passer mon (30) en (500), même problème. Ça fonctionne en USB, ça ne marche plus dès que je l'enlève et je passe donc sur mon alim seule.

Ma plaque fait 10 x 15 cm.

Bonjour,

Le problème semble simple...Regardez le dessin du message de Lesept et en particulier Cpin.
En alimentant l'arduino par l'USB, vous avez une capacité par rapport à la terre via votre PC (voire une connexion directe avec une tour).
Avec une petite alimentation complétement isolée de la terre, Cpin est beaucoup plus faible d'où vos constatations.

https://playground.arduino.cc/Main/CapacitiveSensor?from=Main.CapSense

Cordialement

Si c'est un problème de masse, alors :

Grounding and other known issues
The grounding of the Arduino board is very important in capacitive sensing. The board needs to have some
 connection to ground, even if this is not a low-impedance path such as a wire attached to a water pipe.


Capacitive sensing has some quirks with laptops unconnected to mains power. The laptop itself tends to
 become sensitive and bringing a hand near the laptop will change the returned values.


Connecting the charging cord to the laptop will usually be enough to get things working correctly.
Connecting the Arduino ground to an earth ground (for example, a water pipe) could be another solution.

Another solution that seems to have worked well on at least one installation, is to run a foil ground
plane under the sensor foil (insulated by plastic, paper, etc.), and connected by a wire to ground. 
This worked really well to stabilize sensor values and also seemed to dramatically increase sensor
sensitivity.

A tester...

C'est EXACTEMENT ça !!!

Merci !

J'ai juste ajouté un GND sur mon Arduino, relié au sol (via moi pour l'instant =p) et bam ! Nickel.

Super les gars.

J'ai continué la suite du montage et j'ai un autre problème qui doit être du même genre =p

Ma plaque de métal est désormais bien fonctionnelle, comme un bouton, que je sois en USB ou en externe 5V (j'ai bien ajouté ce fameux GND).

Je place un second capteur :

Et j'ai donc coup revu un peu les branchements (mais la plaque/bouton fonctionne toujours avec ce branchement) pour l'alimenter.

Le capteur est en Pin3, alimenté et GND à l'aide d'un stripboard, directement relié à l'alim 5V.

Là le relais fonctionne bien, s'ouvre et se ferme, selon que je touche la plaque sur la droite ou non.

C'est le capteur (qui pendouille sous la table =p) qui me refait n'importe quoi.

Il est sensé capter un HIGH quand je le "ferme" en touchant les 2 ronds. Sauf que là, dès que je touche le rond de droite, rien ne se passe et quand je touche le rond de gauche, j'ai des 00001110000111000 ... et mon relais mitraille.

MErci !

En effet, il faut toucher les deux ronds : peux-tu poster ton code ?
Est-ce que le capteur DFRobot fonctionne lorsqu'il est seul (sans la plaque) ?

Merci lesept !

Voici mon code :

#include <CapacitiveSensor.h>

CapacitiveSensor   cs_5_4 = CapacitiveSensor(5,4);     

int ledRel1 = 2;

int buttonPin1 = 3;
         
int pinValue ;

int buttonState1 ;


void setup() {

   cs_5_4.set_CS_AutocaL_Millis(0xFFFFFFFF);
  Serial.begin(9600);
  pinMode(ledRel1,OUTPUT);
  pinMode(buttonPin1,INPUT);
  
digitalWrite(ledRel1,LOW); 

   
}

void loop() { 


 long total1 =  cs_5_4.capacitiveSensor(30);
buttonState1=digitalRead(buttonPin1);



    if(total1>20){
  digitalWrite(ledRel1,HIGH);
  } 
  else{
  digitalWrite(ledRel1,LOW);
  }

if(buttonState1==HIGH){
 digitalWrite(ledRel1,HIGH);
 } 
 else{}

Serial.println(buttonState1);

}

Et pour le DFRobot seul, il fonctionne quand j'enlève la plaque, mais UNIQUEMENT en USB.
Encore un problème de GND je ne sais où...

Sachant que j'ai toujours bien le fil de GND que j'ai ajouté sur mon Arduino et qui traîne à terre pour faire GND comme vu précédemment avec le problème de la plaque.

D'une manière générale, l'ensemble de ton montage (Arduino et capteurs, quels qu'ils soient) doit avoir une masse unique et commune. Tu peux déjà vérifier si c'est bien le cas.

Ton problème peut aussi venir de ton alim externe : lis ceci. C'est quoi qui fournit ces 5V ? Elle est branchée sur quelle pin ? Quel courant peut-elle délivrer ?

Concernant la masse, j'ai la masse de mon alim 5V qui part sur un domino.

De ce domino partent 2 fils. L'un rejoint le GND de l'arduino, l'autre par sur un stripboard.

De cette bande du stripboard part un fil vers le GND du relais et un autre fil vers le GND du capteur DFRobot.

Et j'ai aussi mon GND qui part de l'Arduino vers le sol.

Merci.

Pour aller plus loin avec ce type de montage, il faut que vous soyez plus attentif à votre câblage. les capacités en jeu (quelques pF) et les valeurs de résistances (MOhms) rendent très sensible le montage et son comportement à toutes les perturbations.
La longueur des fils, les connexions en vrac que nous voyons sur la photo vont probablement vous créer des problèmes.

Et effectivement, il faut être vigilant sur les appels de courant de la plaquette avec les relais qui peuvent faire dérailler votre alimentation. Un découplage avec un condensateur serait le bienvenu.

Cordialement

Bonjour,

j'ai avancé sur le sujet des alims et sur mon capteur DFRobot.

Voici les tests :

J'ai testé cette alim 12V2A

https://fr.aliexpress.com/item/12V-LED-Adapter-AC-220V-to-DC-12V-Power-Supply-1A-2A-3A-5A-6A-8A/32798856583.html?spm=a2g0s.9042311.0.0.9k4kmO

Ensuite avec 2 chargeur de portable, tous les 2 avec prise USB, du genre :

https://www.darty.com/nav/achat/telephonie/accessoire_pour_telephone_mobile/chargeur_pour_telephone_mobile/samsung_chargeur_eta080_micro_usb.html

dans lesquels j'ai mis de câble USB de l'arduino. Pour alimenter de l'USB de d'adaptateur à l'USB de l'Arduino.

Et avec les mêmes chargeurs, j'ai aussi coupé le fil (qui contient rouge noir vert blanc) et j'ai branché noir et rouge sur GND et 5V de l'arduino.

Ensuite avec 1 chargeur de portable non USB, ou j'ai coupé le bout pour avoir rouge et noir, que j'ai branché sur GND et 5V.

Dans TOUS les cas cités précédemment, même problème, ça mitraille dès que je touche le rond du capteur.

Par contre, j'ai ensuite testé avec une pile 9V et un adaptateur jack et là, ça marche !!!

Alors évidemment je ne vais pas tout brancher sur pile, mais je me dis que c'est un indice intérressant !

Enfin j'espère ...