Bonjour à tous,
on aimerait de l’aide pour un projet BTS. On veut utiliser des capteurs de sons de ce type de capteur iduino, mais on arrive pas à coder le capteur pour récupérer une amplitude en fonction du temps. Voila la photo du capteur
pas de photo... je suppose que c'est parce que c'est votre premier post
c'est quoi un iduino ? (c'est une marque, ils ont une ribambelle de produits)
c'est ce "micro" ?

si oui vous alimentez le module avec le + sur le 5V et la pin G sur la pin GND de votre arduino et vous connectez la broche AO (Analog Out) à la broche A0 de votre Arduino et vous utilisez analogRead() pour voir une valeur entre 0 et 1023 correspondante au niveau capté par l'electret (le micro). Le potentiomètre (le truc bleu avec la petite vis) sert à régler la sensibilité du seuil de déclenchement en tout ou rien sur la pin DO (Digital Out)) qui vous dira si le son a dépassé un certain seuil ou pas (utile si vous n'êtes pas intéressé par la valeur de l'amplitude mais juste par un dépassement de niveau sonore)
Merci de ta réponse et oui justement on cherche a récupérer une amplitude et on se sait pas si c est possible.
oui avec le montage que j'ai décrit et la lecture sur A0
module Arduino
+ 5V
G GND
AO A0
un truc simple comme ça devrait vous permettre de démarrer
const byte pinMicro = A0;
void setup() {
pinMode(A0, INPUT); // absolument pas obligatoire pour une lecture analogique mais une bonne habitude à prendre en général
Serial.begin(115200); Serial.println();
Serial.println("Amplitude");
}
void loop() {
int amplitudeMicro = analogRead(A0);
Serial.println(amplitudeMicro);
delay(100); // on bloque 100ms ➜ on échantillonne 10 fois par seconde soit 10 Hz
}
il faut ouvrir la console série et régler à 115200 bauds pour voir les valeurs
donc pas la peine de connecter la broche DO de votre module (celle du bas sur la photo)
Salut, merci deja votre programme marche, et maintenant svp nous aimerions savoir comment on peut faire pour avoir la valeur de la tension de notre Récepteur en volt car nous ce qu'on obtient c'est une amplitude de la forme 1023... L'amplitude de 1023 correspond à 5V et nous on a 475 en amplitude on a la relation pour convertir en volt mais nous ne savons pas exactement où mettre la formule de calcul dans le programme arduino, pouvez-vous nous aider svp?
Actuellement, tu places le résultat de la conversion dans amplitudeMicro.
Maintenant, il faut entrer amplitudeMicro dans ta formule pour convertir en volt.
Un sujet utile,bon courage!
si 0 correspond à 0V
si 1023 correspond à 5V
à combien de V correspond une valeur x.. c'est la base de la règle de 3 - on voit ça en 6ème - voire avant non ?
Attention map est en entier et tronque donc ne pas mette 5V mais plutôt 5000mV
Ah, oui, effectivement ![]()
oui on sait pour la règle 3 mais ça marchait pas sinon on utilise la fonction map on met map(0,1023,0,5000) ?
les gars je voulais savoir comment récupérer les données arduino sur lab view directement afin d' avoir les graph de labview qui sont plus pratique
bonjour @absolkil ,
tu as tous les outils nécessaires dans le menu "Data Communication ==> Protocols ==> Serial" pour créer une liaison série entre ton PC et l'Arduino, exactement comme si tu communiquait via le Moniteur Série.
ensuite, il suffit d'envoyer les données depuis l'Arduino et de les récupérer dans LabView, pour ensuite les traiter comme n'importe quelle donnée afin de les afficher sous forme de WaveFormGraph ou XYGraph (pour les cours sur LabView, c'est un autre forum).
il faut faire le calcul en nombre flottant, pas en entiers. Si vous écrivez
float x = analogRead(A0) / 1023 * 5 ;
vous n'avez que des entiers (type int) à droite donc le calcul se fait en nombre entier et la division par 1023 vous est fatale = le résultat est toujours 0 sauf si analogRead(A0) donne 1023 auquel cas la division vaut bien 1. ensuite vous multipliez par 5 et donc vous avez 0 entre [0, 1022] et 5 pour 1023
Pour passer en nombre réel ça se fait en rajoutant .0 aux constantes par exemple
float x = analogRead(A0) / 1023.0 * 5.0;
dans ce cas le compilateur voit un nombre à virgule pour la division et donc effectuer la division en nombre réels et on aura bien 0,xxx que l'on pourra multiplier par 5
