Go Down

Topic: Bruit de fond permanent avec un buzzer (Read 714 times) previous topic - next topic

neiler0

Bonjour à tous,

J'essaie de faire un petit montage avec un nano, un lecteur RFID RC522, un afficheur 4 digits et un buzzer. Tout fonctionne, sauf ce maudit buzzer... Dès qu'il est alimenté + fil de commande raccordé, il fait un bruit de fond, comme un crépitement, hyper désagréable.

Sur le pin 5V du nano j'ai le buzzer + l'afficheur, et lorsque je débranche l'afficheur le bruit de fond s'arrête et le buzzer fonctionne normalement.

Quelqu'un sait d'où pourrait venir le problème et comment le résoudre ?

Il s'agit d'un buzzer de ce type :


Merci pour vos pistes !
Aurélien

Christian_R

Christian

lesept

Peut-être un problème de GND du buzzer : vérifie la soudure sur le PCB avec un multimètre
A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

68tjs

C'est quel type de buzer ?
Tu le commande par tout ou rien ou tu lui envoi une fréquence ?

trimarco232

#4
Aug 30, 2018, 09:27 pm Last Edit: Aug 30, 2018, 09:27 pm by trimarco232
on avait déjà des histoires de parasites dûs à un afficheur

neiler0

Bonjour à tous et merci pour vos réponses (désolé j'ai dû m'absenter quelques jours).

Peut-être un problème de GND du buzzer : vérifie la soudure sur le PCB avec un multimètre
La soudure est OK, et le problème persiste avec chacun des 5 ou 6 buzzers que j'ai essayés...

C'est quel type de buzer ?
Tu le commande par tout ou rien ou tu lui envoi une fréquence ?
C'est exactement le même buzzer que sur la photo ci-dessus, je le commande en lui envoyant une fréquence :

Code: [Select]
#define BUZZER 4
#define NOTE_A4  440
#define NOTE_B4  494
#define NOTE_C5  523
#define NOTE_D5  587
#define NOTE_E5  659
#define NOTE_F5  698

tone(BUZZER, NOTE_D5,250);
delay(250);
noTone(BUZZER);


C'est un étrange problème... En enlevant l'afficheur aucun soucis, idem en alimentant séparément le buzzer avec 3 piles AAA (mais j'aurai déjà une batterie un peu encombrante pour alimenter l'ensemble, je ne peux pas ajouter de piles).

Ça me rend dingue... D'autres idées ?

erwan3110

Faut enlever les fréquences parasite, donc peut-être un condensateur non ?

bidouilleelec

Bonjour Neiler

Il serait utile de poster TOUT votre code et de préciser votre modèle d'afficheur.
Voire de poster une photo du montage.

Cordialement,
bidouilleelec.

hbachetti

Le buzzer se commande avec une tension continue de 5V.
Ce qui m'étonne quand même c'est que tu commandes un buzzer en PWM. En général on utilise plutôt un haut-parleur.

Quote
Faut enlever les fréquences parasite, donc peut-être un condensateur non ?
Découpler l'alimentation de tous les modules : à commencer par l'afficheur.

Essaie dans un premier temps avec 100nF entre GND et 5V. si cela ne suffit pas ajoute quelques 1µF ou 10µF en parallèle (attention à la polarité).

@+
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

68tjs

Si c'est bien un buzzer "rudimentaire" c'est à dire qu'il faut lui fournir la fréquence et qu'il y a du bruit de fond partout je te fais deux propositions :

La première est de  toucher au minimum à ton montage et de continuer à chercher et peut être le hasard faisant parfois bien les choses tu pourrai trouver la cause.

La deuxième  est d'admettre qu'il doit y avoir une grosse connerie de câblage.

AMHA la vérité est dans la deuxième proposition.
Si tu l'admets tu décâble absolument tout et tu recommences le câblage en faisant bien attention à câbler les masses des alimentations car tout est dans les masses il faut qu'elle soit les plus parfaites possible surtout s'il y  passe quelques dizaines de mA.

Dans l'ordre des conseils :
1) câbler les masses en étoile : la carte arduino est le centre de l'étoile, les différents modules forment les rayons de l'étoile. Jamais deux modules raccordés sur le même rayon.

2) Éviter les  fils pré-monté pour breadboard, surtout les moulés il n'y a que 3 brins de cuivre à l'intérieur --> à fuir.
Utiliser un vrai fil de diamètre correct ou  mettre plusieurs fils en parallèle s'il faut passer des mA.

3) Bien découpler les alimentations au niveau de chaque composant.
Cela va paraître surprenant mais un microcontrôleur ne fonctionne pas qu'avec des signaux continu mais plus souvent avec des signaux carrés de fréquence non négligeable
Deuxième point qui peut paraître surprenant une alimentation continue DOIT être un court-circuit pour les signaux "fréquence" sinon cela ne fonctionne pas.
C'est le rôle des condensateurs de découplage de court-circuiter l'alimentation continue pour les signaux "fréquence".
Comme il n'existe pas de condensateurs parfaits on utilise deux modèles que l'on place en parallèle : chimique ou tantale (10 à 100µF) pour les fréquences basses et des céramiques (100 nF) pour les fréquences élevées.

4) Pour transporter un signal "fréquence" d'un module vers un autre il est recommander de torsader deux fils l'un étant une masse, l'autre le signal. ---> Attention là je ne parle pas des masses des alimentations, je parle de transport de signal.
Si le fil du signal "fréquence" est seul il peut se comporter comme un antenne émettrice ou réceptrice.
L'effet antenne ne se manifestera pas obligatoirement mais ce n'est pas la peine de jouer avec le feu alors que la solution est simple.

5) Dernier point : fuir comme la peste les câblages en vrac avec de grandes boucles aériennes  style "Perchoir à mouche". Les fils doivent être ordonnés, si possible plaqués sur le support : le scotch sera d'une grande utilité.

neiler0

Merci pour tous ces conseils !

Bonjour Neiler
Il serait utile de poster TOUT votre code et de préciser votre modèle d'afficheur.
Voire de poster une photo du montage.
bidouilleelec.
Mon code est très spécifique et fait près de 5.000 lignes, et (mais je peux me tromper) je n'ai pas l'impression que le problème vienne du programme... J'utilise simplement la fonction "tone()" comme dans l'extrait de code cité plus haut, pour envoyer un bref "bip" lorsqu'une carte est détectée par mon module RFID. En ce qui concerne le câblage, c'est très sommaire, voir ci-dessous.

La deuxième  est d'admettre qu'il doit y avoir une grosse connerie de câblage.
Ce n'est pas impossible, mais j'ai déjà décâblé / recâblé et mon montage est très simple :
1 nano alimenté par une batterie 12V, un module RFID RC522 (sur le 3.3V du nano), un module afficheur 4 digits avec un driver TM1637, et le fameux buzzer (tous deux sur le 5V du nano). Pour le moment tout est câblé sur breadboard avec les fameux "fils pré-montés" à fuir à tout prix... Mais le projet terminé sera propre et câblé avec du vrai fil, à défaut d'être bon en électronique je suis un véritable maniaque ;)


La piste du découplage d'alimentation me semble être la plus prometteuse, j'essaierai ce soir en rentrant du boulot. Pour ne rien vous cacher mon truc c'est plutôt le développement, mes notions d'électronique remontent à trèèèèèès longtemps... Si j'ai bien compris je mets simplement un condensateur de 100µF (je ne sais pas ce que 68tjs entend par "fréquences basses" mais je ne monte pas au dessus de 1kHz) aux bornes de mes 2 modules alimentés en 5V (l'afficheur et le buzzer, donc) ? Le cas échéant, dans quel sens, le + du condo sur le + de l'alim ?

Je profiterai de l'occasion pour poster des photos de mon montage.

Un grand merci à tou.te.s pour vos réponses et vos pistes, mention spéciale à hbachetti qui intervient sur chacun de mes topics (et m'a déjà sorti d'une belle galère récemment) tel un superhéros :D



hbachetti

merci.

Quote
mais je ne monte pas au dessus de 1kHz
6
La fréquence que tu envoies au buzzer, peut-être, mais il y a d'autres fréquences, celle à laquelle tu rafraîchis l'écran par exemple.

Quote from: 68tjs
chimique ou tantale (10 à 100µF) pour les fréquences basses et des céramiques (100 nF) pour les fréquences élevées.
Mets quand même le 100nF en parallèle. Tu pourras tester s'il y a une différence.
Essaie 100nF, 10µF + 100nF, ou plus.

@+
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

lesept

A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

68tjs

#13
Sep 04, 2018, 05:52 pm Last Edit: Sep 04, 2018, 05:53 pm by 68tjs
Revenons sur le buzzer. Il en existe deux type passif et actif.

Type actif : c'est le buzzer qui fabrique lui même sa fréquence, il est alimenté en 5V, tu peux juste lancer ou arrêter le "bruit".

Type passif : le buzzer est alimenté en 5V, c'est toi qui doit lui envoyer une fréquence.

A ce sujet si tu envoi un signal carré à 1 kHz tu envoi une infinité de multiples de 1 kHz  (fréquences harmoniques) : c'est les "Séries de Fourrier".
Bien sûr plus le rang de l'harmonique est élevée plus son amplitude est faible et elles finissent par devenir négligeables mais pour voir à peu prés carré un signal carré à 1 kHz il faut passer jusqu'à 10 kHz sinon tu n'obtiens qu'une sinusoïde. Que dire des autres fréquences dans le microcontrôleur en particulier son horloge interne à 16 MHz qui véhicule jusqu'à 160 MHz.

hbachetti

Quote
Super Henri à la rescousse
Reste plus qu'à me fabriquer un t-Tshirt ...

 :D
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

Go Up