Nella descrizione su come usarlo indicano semplicemente uno sketch che legge il valore analogico dell'input di questo sensore, ma i risultati sono oscillanti tra 0 e 30 con valori casuali sia con il silenzio che con la mia voce, ho provato a fare anche un vettore per fare un po' di smooth facendo una media tra 20 valori, ma il risultato è sempre molto incomprensibile. C'è anche un potenziometro per variare il gain del microfono, ma non pare cambi niente, solo se lo metto al minimo i risultati letti si avvicinano molto a 0.
const int ledPin = 12; // the number of the LED pin
const int thresholdvalue=400;//The threshold to turn the led on
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
int sensorValue = analogRead(A0);//use A0 to read the electrical signal
if(sensorValue>thresholdvalue)
digitalWrite(ledPin,HIGH);//if the value read from A0 is larger than 400,then light the LED
delay(200);
digitalWrite(ledPin,LOW);
}
non vedo come hai fatto a leggere i valori , manca qualcosa...
Sorry me lo ricordavo nell’esempio.
Uso questo che ho fatto io:
const int smoothSize = 20;
int tot = 0;
int avg = 0;
int smooth[smoothSize];
int value = 0;
int smoothIndex = 0;
void setup(){
Serial.begin(9600);
for (int k = 0; k < smoothSize; k++){
smooth[k] = 0;
}
}
void loop(){
value = analogRead(A3);
tot -= smooth[smoothIndex];
smooth[smoothIndex] = value;
tot += smooth[smoothIndex];
avg = tot / smoothSize;
smoothIndex++;
if (smoothIndex >= smoothSize){
smoothIndex = 0;
}
Serial.print("Value: ");
Serial.println(avg);
delay(300);
}
Ciao,io inizierei a fare una semplice lettura del microfono visualizzando i valori. Va bene anche il codice che ho trovato nell'esempio con il led sul pin 12, gli aggiungerei il serial begin e la stampa del sensor value così si può verificare il funzionamento del microfono.
Non so se hai letto il mio post sopra con il codice che uso, quello stampa proprio i valori che leggo dal sensore puri
Il messeggio l’ho letto ma il codice che dici di usare adesso non è quello che dicevi di usare prima…e nel codice che usi adesso non fai una lettura pura del microfono stampando il contenuto della variabile value ma stampi il contenuto della variabile avg.
Io,per quel poco che so, sto cercando di aiutarti ma ricordati che non sono li con te…
E' vero ho fatto confusione nell'esposizione del problema.
Lo sketch che ho usato, legge il valore analogico con una Analogread()
Poi per rendere i dati più omogenei ho fatto una media, ma ho anche provato a stamparli direttamente ed il risultato che arriva dal sensore è randomico e oscilla tra 0 e 30.
Ho provato a collegarlo a diversi ingressi analogici ma è sempre il solito valore.
Al circuito non ho fatto nessuna modifica poichè come indicano basta collegarlo ad un ingresso analogico
A questo punto ti direi di controllare che arrivi l'alimentazione al modulino (che magari non ci sia un cavetto difettoso) o addirittura lo collegherei direttamente ad arduino eliminando lo shield ,credo che sui connettori si riesca a metterci un filo innestato......cercherei di andare per esclusione....