Aller au contenu


Photo
- - - - -

Problème avec mon shield...


37 réponses à ce sujet

#1 Sharklove

Sharklove

    Nouveau membre

  • Membres
  • 20 messages
  • Gender:Male

Posté 07 septembre 2024 - 04:28

Je travaille avec un Arduino Uno R4 WiFi et un module PCA9685 pour contrôler un servomoteur. Bien que l'IDE Arduino indique que le code s'exécute correctement et tente de déplacer le servomoteur, ce dernier ne répond pas et ne bouge pas. Le problème persiste même si le code est correctement téléversé et que le Moniteur Série affiche que l'IDE exécute le code.

J'ai vérifié les éléments suivants : (  j'ai essayé 3 modules pca d'une commande sur amazon )  

Connexions I2C :

  • Les broches SDA et SCL sont correctement connectées du PCA9685 aux broches SDA et SCL correspondantes de l'Arduino Uno R4 WiFi.
  • Je ne suis pas certain si les broches SDA et SCL doivent être connectées aux broches A4 et A5 respectivement, mais j'utilise les broches SDA et SCL dédiées sur le Uno R4 WiFi.

Détection des Appareils I2C :

  • Un code de scanner a été utilisé pour détecter les appareils I2C sur le bus, mais rien n'apparaît dans le Moniteur Série. Cela suggère que le PCA9685 pourrait ne pas être détecté sur le bus I2C.

Alimentation :

  • Je suis préoccupé par le fait que le PCA9685 et le servomoteur reçoivent suffisamment de puissance. j'ai une alimentation 5v2A branchée à la prise, puis au module viaà une connecteur LED

Fonctionnalité du Code :

  • Le code est conçu pour contrôler le servomoteur via le module PCA9685. Le code semble fonctionner comme prévu lorsqu'il est exécuté manuellement, mais le servomoteur ne bouge pas. Le servo fonctionne bien, branché directement à l'arduino. 

merci à tous si vous pouvez m'aiguiller 



#2 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 10 164 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 07 septembre 2024 - 04:33

Peux tu poster une image de ton câblage ? 
Et poster le code que tu testes ? 

 

 

 

Détection des Appareils I2C :

  • Un code de scanner a été utilisé pour détecter les appareils I2C sur le bus, mais rien n'apparaît dans le Moniteur Série. Cela suggère que le PCA9685 pourrait ne pas être détecté sur le bus I2C.

 

 

Mon hypothèse  ( en supposant que les modules PCA ne sont pas HS ) c'est que le câblage n'est pas correct... 
Tant que le module ne sera pas détecté lors d'un test scan I2C alors ça ne sert pas à grand chose d'aller plus loin ...
 


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#3 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 7 030 messages
  • Gender:Male

Posté 07 septembre 2024 - 06:27

Indépendamment de ton problème, pourquoi utilises tu un PCA9685, alors qu'un simple Shield fait très bien l'affaire.

 

Avec quelle tension est alimenté le Uno R4 ?



#4 Sharklove

Sharklove

    Nouveau membre

  • Membres
  • 20 messages
  • Gender:Male

Posté 08 septembre 2024 - 12:27

Bonjour merci pour vos réponses je vous réponses, je répondrais indépendamment à chacun , tout d'abord Oracid, je suis un novice un vrai de vrai jamais tapé la moindre ligne de code je me suis renseigné sur youtube d'où mon choix, je souhaite lancer les servomoteurs à l'aide de webhooks mais pour le moment j'en suis pas là, je dois d'abord comprendre pourquoi aucun de mes 3 pca n'a marché. j'ai choisi ce modèle car  c'est ce qui étais conseillé sur YT, mais si tu pense qu'un shield pourrais être mieux pour contrôler  ou 7 servo je peux opter pour cette option... cependant qu'appelle tu un shield ( novice j'ai dit ).

Concernant la tension, je ne l'alimente pas il est directement branché à mon pc par usbc mais le pca comme tu peux voir sur les photos est branché à la prise secteur avec un power supply de 5v 2A

Dans l'attente de vous relire



#5 Sharklove

Sharklove

    Nouveau membre

  • Membres
  • 20 messages
  • Gender:Male

Posté 08 septembre 2024 - 12:37

Pour Mike : 

 

030ad1a6-e876-49b3-a844-f6d907fc1439.jpg
 
4767f193-17b8-4f63-abe8-acb33e69e0bb.jpg
 
eb3c5dee-cf45-4e59-bc4e-f919c8a55372.jpg
 
Voici en réponse à tes questions, je en sais pas si c'est normal, mais quand je laisse uniquement le connecteur LED la diode power n'est pas allumée.;. et c'est pareil pour les 3 PCA que j'ai essayé.
 
Concernant le code utilisé pour détecter l'I2C  il a fini par me donner un résultat  ; No I2C devices found
 
Le code que je teste : 
 

#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>

// Création de l'objet PCA9685
Adafruit_PWMServoDriver pca9685 = Adafruit_PWMServoDriver();

#define SERVOMIN  150 // Angle minimum pour le servo (en microsecondes)
#define SERVOMAX  600 // Angle maximum pour le servo (en microsecondes)

void setup() {
  Serial.begin(9600);
  
  // Initialisation du PCA9685
  pca9685.begin();
  pca9685.setPWMFreq(60);  // Fréquence pour les servomoteurs à 60 Hz

  delay(10);
}

void loop() {
  // Positionner le servo à un angle de pression (par exemple, 120 degrés)
  int pressPosition = map(120, 0, 180, SERVOMIN, SERVOMAX);
  pca9685.setPWM(1, 0, pressPosition);  // Servo sur la borne 1
  delay(1000);  // Maintenir la position pendant 1 seconde

  // Retourner le servo à sa position initiale (0 degré)
  int initialPosition = map(0, 0, 180, SERVOMIN, SERVOMAX);
  pca9685.setPWM(1, 0, initialPosition);
  delay(1000);  // Attendre 1 seconde avant la prochaine pression
}

Je précise que je n'ai aucun mal à faire fonctionner le servo directement connecté à l'arduino. 



#6 Sharklove

Sharklove

    Nouveau membre

  • Membres
  • 20 messages
  • Gender:Male

Posté 08 septembre 2024 - 12:40

#include <Wire.h>

void setup() {
  Wire.begin();
  Serial.begin(9600);
  Serial.println("Scanning I2C...");

  byte count = 0;
  for (byte i = 8; i < 120; i++) {
    Wire.beginTransmission(i);
    if (Wire.endTransmission() == 0) {
      Serial.print("I2C device found at address 0x");
      Serial.println(i, HEX);
      count++;
    }
  }
  if (count == 0) {
    Serial.println("No I2C devices found");
  } else {
    Serial.println("Done");
  }
}

void loop() {
}

Code utilisé pour vérifier 



#7 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 7 030 messages
  • Gender:Male

Posté 08 septembre 2024 - 07:01

cependant qu'appelle tu un shield ( novice j'ai dit ).

Ok, désolé, je vais être plus précis.

 

Un Shield (bouclier) est une carte qui s'enfiche sur l'Arduino UNO. Il permet de connecter des capteurs, des servos, des moteurs ou des cartes I2C directement.

Pour un servo, le connecteur à 3 fils s'enfiche directement sur une entrée/sortie du Shield. Pour un connecteur I2C, à 4 fils, pareil, il s'enfiche directement sur un connecteur dédié.

L'avantage, c'est d'éviter le "plat de spaghettis" avec tout un tas de fils qui peuvent générer des erreurs de connexion.

En fait, le "plat de spaghettis est intégrer dans le Shield, mais c'est transparent pour l'utilisateur.

La plupart du temps, on alimente le Shield qui alimente le UNO, mais c'est à vérifier.

 

Voici un Shield que tu peux enficher directement sur ton Arduino UNO. Tu pourras y connecter au moins 12 servos sur les entrées/sorties de 2 à 13 et même plus, si besoin.

https://fr.aliexpres...rch|query_from:

 

C'est ce type de Shield que j'utilise pour mes quadrupèdes qui ont 8 ou 12 servos et une caméra en I2C.



#8 Sharklove

Sharklove

    Nouveau membre

  • Membres
  • 20 messages
  • Gender:Male

Posté 08 septembre 2024 - 10:01

Ok, désolé, je vais être plus précis.

 

Un Shield (bouclier) est une carte qui s'enfiche sur l'Arduino UNO. Il permet de connecter des capteurs, des servos, des moteurs ou des cartes I2C directement.

Pour un servo, le connecteur à 3 fils s'enfiche directement sur une entrée/sortie du Shield. Pour un connecteur I2C, à 4 fils, pareil, il s'enfiche directement sur un connecteur dédié.

L'avantage, c'est d'éviter le "plat de spaghettis" avec tout un tas de fils qui peuvent générer des erreurs de connexion.

En fait, le "plat de spaghettis est intégrer dans le Shield, mais c'est transparent pour l'utilisateur.

La plupart du temps, on alimente le Shield qui alimente le UNO, mais c'est à vérifier.

 

Voici un Shield que tu peux enficher directement sur ton Arduino UNO. Tu pourras y connecter au moins 12 servos sur les entrées/sorties de 2 à 13 et même plus, si besoin.

https://fr.aliexpres...rch|query_from:

 

C'est ce type de Shield que j'utilise pour mes quadrupèdes qui ont 8 ou 12 servos et une caméra en I2C.

 

En effet je vais en commander de ce pas, mais mon projet est assez urgent Ali express prends trop de temps, crois tu que ce modèle pourrais ma convenir même si 10x plus cher ? PS, je veux toujours savoir qu'est ce qui deconne avec mes PCA mon but est d'apprendre donc j'attends tjrs la réponse de Mike au cas où il lis ce message 

 

Concernant le modele sur amazon : https://www.amazon.f...o,aps,71&sr=8-1



#9 Sharklove

Sharklove

    Nouveau membre

  • Membres
  • 20 messages
  • Gender:Male

Posté 08 septembre 2024 - 10:12

Je viens aussi de trouer cela, vu les connectiques il devrait être capable de contrôler plusieurs servo directement branchés à l'arduino ? tant qu'il est alimenté 5v? https://fr.aliexpres...rch|query_from:



#10 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 7 030 messages
  • Gender:Male

Posté 08 septembre 2024 - 11:04

 Ali express prends trop de temps, 

Si tu regardes bien, ils te promettent une livraison en 8 jours par avion. En général, ils tiennent bien leur promesse.

 

Le modèle sur Amazon peut également te convenir. C'est d'ailleurs celui que j'utilise avec le UNO (habituellement, j'utilise un Arduino Nano). 

Il est plus ancien, mais a l'avantage de pouvoir utiliser une tension supérieure à 5V. J'en ai parlé ici, https://www.robot-ma...duino/?p=101444

 

Bravo pour ton dernier lien. Il s'agit d'un clone Arduino UNO R4. Cette carte est très intéressante car elle possède, entre autres, les connecteurs précablés de D0 à D13 et A0 à A7. Dans ce cas, tu n'aurais même pas besoin d'un Shield. Bonne pioche ! Je viens de la commander sans WiFi, ici, livrée en 8 jours. https://fr.aliexpres...ler|query_from:

 

Attention, si tu commandes cette carte, il y a un connecteur I2C précablé sur le Minima, mais il ne semble pas être présent sur le WIFI. Mais bien sûr, tu peux toujours utiliser les pins de base.



#11 Sharklove

Sharklove

    Nouveau membre

  • Membres
  • 20 messages
  • Gender:Male

Posté 08 septembre 2024 - 11:12

Si tu regardes bien, ils te promettent une livraison en 8 jours par avion. En général, ils tiennent bien leur promesse.

 

Le modèle sur Amazon peut également te convenir. C'est d'ailleurs celui que j'utilise avec le UNO (habituellement, j'utilise un Arduino Nano). 

Il est plus ancien, mais a l'avantage de pouvoir utiliser une tension supérieure à 5V. J'en ai parlé ici, https://www.robot-ma...duino/?p=101444

 

Bravo pour ton dernier lien. Il s'agit d'un clone Arduino UNO R4. Cette carte est très intéressante car elle possède, entre autres, les connecteurs précablés de D0 à D13 et A0 à A7. Dans ce cas, tu n'aurais même pas besoin d'un Shield. Bonne pioche ! Je viens de la commander sans WiFi, ici, livrée en 8 jours. https://fr.aliexpres...ler|query_from:

 

 

 

Merci pour ta réponse! Je vais la commander avec wifi dans mon cas , je vais utiliser la r4 pour mon projet mais je vais garder celle ci au cas ou j'ai un soucis avec mon arduino, et la diffd e prix est enorme tout de même va savoir pourquoi... même la votre est plus cher sans wifi, il y' at''il une raison ? 



#12 TNERA

TNERA

    Membre occasionnel

  • Membres
  • Pip
  • 138 messages

Posté 08 septembre 2024 - 12:22

Hi Sharklove,

 

I use the PCA9685 for many projects.  Here are a couple of thoughts. 

Yes, the LED on the board lights up when the PCA9685 is receiving power/ground for the logic (not ther servo power).  This means that it is receiving the 5V and gnd from your Arduino.
Your wiring for the PCA9685 looks correct. The SCL and SDA are connected correctly.

 

The one thing I can not verify in the pictures are the connectors and wires.  Be sure they are tightly connected.  Also, perhaps try different jumpers? The ones used may be defective or loose.

given that the issue is the I2C detection, i would focus on those connections.

 

I have not encountered this problem in my experience. One suggestion from other sources, suggests slowing down the I2C timing since your Arduino board is relativitly new. This can be done with:

 

In your setup() of your scanning code.

Wire.setClock(100000);

good luck!



#13 Sharklove

Sharklove

    Nouveau membre

  • Membres
  • 20 messages
  • Gender:Male

Posté 10 septembre 2024 - 01:08

Hi Sharklove,

 

I use the PCA9685 for many projects.  Here are a couple of thoughts. 

Yes, the LED on the board lights up when the PCA9685 is receiving power/ground for the logic (not ther servo power).  This means that it is receiving the 5V and gnd from your Arduino.
Your wiring for the PCA9685 looks correct. The SCL and SDA are connected correctly.

 

The one thing I can not verify in the pictures are the connectors and wires.  Be sure they are tightly connected.  Also, perhaps try different jumpers? The ones used may be defective or loose.

given that the issue is the I2C detection, i would focus on those connections.

 

I have not encountered this problem in my experience. One suggestion from other sources, suggests slowing down the I2C timing since your Arduino board is relativitly new. This can be done with:

 

In your setup() of your scanning code.

Wire.setClock(100000);

good luck!

Thank you for your response. I confirm that the 3 PCA9685 units were defective and had the same issue. I have therefore bought a shield, which works very well (electrically). It is properly powered, but my problem now is that it is not detected by my Arduino. When I run the following code:

#include <Wire.h>

void setup() {
Wire.begin();
Serial.begin(9600);
Serial.println("\nScanner I2C...");
Wire.setClock(100000);

byte count = 0;
for (byte i = 0x40; i < 0x41; i++) { // Check only address 0x40
Wire.beginTransmission(i);
if (Wire.endTransmission() == 0) {
Serial.print("Found I2C address: 0x");
Serial.println(i, HEX);
count++;
delay(1);
}
}
if (count == 0) {
Serial.println("No I2C devices found.");
} else {
Serial.println("Scanning complete.");
}
}

void loop() {}



#14 Sharklove

Sharklove

    Nouveau membre

  • Membres
  • 20 messages
  • Gender:Male

Posté 10 septembre 2024 - 01:58



#15 Sharklove

Sharklove

    Nouveau membre

  • Membres
  • 20 messages
  • Gender:Male

Posté 10 septembre 2024 - 02:01

Si tu regardes bien, ils te promettent une livraison en 8 jours par avion. En général, ils tiennent bien leur promesse.

 

Le modèle sur Amazon peut également te convenir. C'est d'ailleurs celui que j'utilise avec le UNO (habituellement, j'utilise un Arduino Nano). 

Il est plus ancien, mais a l'avantage de pouvoir utiliser une tension supérieure à 5V. J'en ai parlé ici, https://www.robot-ma...duino/?p=101444

 

Bravo pour ton dernier lien. Il s'agit d'un clone Arduino UNO R4. Cette carte est très intéressante car elle possède, entre autres, les connecteurs précablés de D0 à D13 et A0 à A7. Dans ce cas, tu n'aurais même pas besoin d'un Shield. Bonne pioche ! Je viens de la commander sans WiFi, ici, livrée en 8 jours. https://fr.aliexpres...ler|query_from:

 

Attention, si tu commandes cette carte, il y a un connecteur I2C précablé sur le Minima, mais il ne semble pas être présent sur le WIFI. Mais bien sûr, tu peux toujours utiliser les pins de base.

Pour finir j'ai utilisé le shield que j'ai commandé, il est bien alimenté, mais l'arduino ne le detecte pas quand je lance la requette pour detecter le I2C car forcement les servo ne repondent pas... je ne sais plus quoi faire

EDIT: quand j'appuie sur le bouton reset du shield j'ai ce message sur l'ide arduino : Scanner I2C... puis .... Aucun périphérique I2C trouvé. ...

je n'ai vraiment pas de chance 



#16 Sharklove

Sharklove

    Nouveau membre

  • Membres
  • 20 messages
  • Gender:Male

Posté 10 septembre 2024 - 02:27

Bonjour, j'ai ressèment acheté un shield dont la référence est ici : https://www.amazon.fr/dp/B083994LD1?ref=ppx_yo2ov_dt_b_fed_asin_title 

Mon problème est le suivant, une fois branché à mon arduino uno r4 Wifi, mon arduino ne le detecte pas, meme en apuyant sur le bouton reset j'ai la notification automatique de l'ide arduino : Scaner I2C.... puis aucun périphérique I2C trouvé.

Pensez vous que c'est un problème de mon arduino? du shield? 

je précise que j'ai essayé avec 3 différents modules pca96685 j'ai cru qu'ils étaient défectueux tous les 3... mais là forcé de constater que c'est peut être l'arduino le soucis, au niveau des broches scl et sda

Merci 



#17 Sharklove

Sharklove

    Nouveau membre

  • Membres
  • 20 messages
  • Gender:Male

Posté 10 septembre 2024 - 06:32

MAJ : après avoir passé les broches sda et scl au multimetre le veredict est le suivant : pas de tension.... du coup depuis le debut c'etait l'arduino le soucis 



#18 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 7 030 messages
  • Gender:Male

Posté 10 septembre 2024 - 08:36

Tu devrais utiliser le bouton "Plus d'options de réponse". En bas, à droite. Là, tu pourras mettre tes images, c'est plus simple.

J'ai mis les balises "code" pour ton code.

 

Pourrais-tu préciser de quel Shield il s'agit ?

Si je t'ai parler de Shield, c'est pour une alternative à l'utilisation du PCA. Même si tu peux, en effet, connecter le PCA au connecteur I2C du Shield.

Tu penses que le problème vient de l'Arduino. Est ce que l'Arduino imprime quelque chose sur la console ? Si oui, alors je pense qu'il fonctionne ?

As tu contrôlé les fils, comme l'a suggéré TNERA ?



#19 Sandro

Sandro

    Membre chevronné

  • Modérateur
  • PipPipPipPip
  • 1 321 messages
  • Gender:Male

Posté 10 septembre 2024 - 09:46

Bonsoir,

est-ce que tu as une documentation du shield (manuel d'utilisateur ou schéma électrique)?

Une chose qui me semble "suspecte", c'est, sur le shield, le jumper à souder Vcc SELECT. Bien possible qu'il faille souder le pad central avec soit le pad 3V, soit le pad 5V (et si l'arduino R4 est bien en 5V comme il me semble, alors c'est probablement avec le 5V qu'il faudra le souder). NB : sans doc ni schéma, c'est juste une hypothèse non vérifiée, à tester à tes risques et périls.

Sinon, est-ce que tu as des instruments de mesures (multimètre, ou mieux oscilloscope)? Si oui, alors on peut faire des tests pour vérifier la bonne connexion, voir la présence de signaux I2C si tu as un oscilloscope


Aidez-nous à vous aider : partagez toutes les informations pertinentes : description précise du problème, contexte, schéma de câblage, liens vers la documentation des composants, votre code (ou encore mieux un code minimal reproduisant le bug), ...

Vous recevrez ainsi plus de réponses, et elles seront plus pertinentes.


#20 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 10 164 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 11 septembre 2024 - 01:37

Sur ta carte arduino R4 wifi , il n'y a pas de résistances de pull up qui sont nécessaire pour l'i2c... 

Normalement les cartes PCA ont les pull up donc le fait que la carte arduino n'en soit pas équipé c'est pas censé être un problème... En revenche ça peut expliqué ta mesure au multimètre si tu n'as pas mis les cartes PCA.  Au pire ça ne coûte pas grand chose d'essayer de rajouter des pull up ...

Je pense depuis le début que tu as un problème avec l'I2C ... Soit les fils utilisé, soit les librairies, soit la carte ... 3 PCA HS sans explication c'est un peu gros ... 
As tu une arduino uno R3 ( la classique ) pour faire un essai ?
 

Note : J'ai fusionné le deuxième sujet que tu as ouvert avec ton sujet de départ. Je pense que c'est un seul et même problème, évitons de s'éparpiller ;)


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 




Répondre à ce sujet



  


1 utilisateur(s) li(sen)t ce sujet

0 members, 1 guests, 0 anonymous users