bonjour, je sollicite votre aide car je cherche depuis 2 semaines le moyen de programmer une moyenne sur arduino.
j'ai besoin de faire ce programme car étant en terminal SSI je dois réaliser un projet en groupe. Le projet consiste en un boitier qui mesure la température ambiante, la luminosité et le niveau sonore pour évaluer l'ambiance dans une classe (le programme final compare les seuils avec les mesures) et un afficheur (led + écran LCD) affiche si l'ambiance est optimal ou pas pour travailler dans de bonne condition. Pour ma partie je dois m'occuper du capteur sonore. je dois donc faire un programme qui affiche des valeurs en décibel, jusqu’à la aucun soucis j'ai fais une courbe caractéristique avec l'aide d'un capteur sonore (voltcraft) et j'ai récupérer le coefficient directeur. mais on a remarquer que les valeurs du capteur varie trop (passant de 20 a 120 db quelque fois) j'ai donc décidé de faire une moyenne en prenant 10 valeurs en sortie du capteur et faire une moyenne avec. procédure que je dois renouveler a l'infini. Après plusieurs recherche et l'aide d'Eskimon je suis arrivé à ceci. le programme ne marche pas car je n'arrive pas a le compiler, je ne sais pas si il fonctionne non plus :/
define SOUND_SENSOR A0
const int analogInPin = A0; //mettre le capteur sur A0
int sensorValue = 0; int db ;
void setup() { Serial.begin(9600); }
while (TRUE) { //boucle qui se répète à l’infinie
void loop() { sensorValue = analogRead(analogInPin);
Serial.print(“sensor = ” ); Serial.println(sensorValue);
double db = 0.1279*sensorValue ; //formule découlant de la caractéristique du capteur sonore }
float tab[11] = {db}; //remplir tableau avec 10 valeurs du capteur qui se suivent
int somme = 0 ;
for (int i = 0 ; i < 11 ; i++) { somme += tab[11] ; //somme des valeurs (db) du tableau }
float dbm = somme / 10.0 ; //valeur moyenne
Serial.print("db = "); //affichage dbm Serial.println(dbm);
delay(1000); }
je vous remercie d'avance pour vos réponses et votre attention