Arduino + Microfono

Salve,
sono nuovo del forum e del mondo di Arduino;

ho Arduino UNO rev2.

Questo è il componente per cui mi servirebbe aiuto Recommendations For You - DealeXtreme ;

Ho googlato parecchio ma ancora non riesco a farlo funzionare correttamente.

Se poteste gentilmente indicarmi uno sketch per effettuare una prova ve ne sarei grato :slight_smile:

Quel che mi interesserebbe fare come test è battere le mani e far accendere/spegnere un led.


inoltre vi chiedo un chiarimento riguardo a questo codice (trovato in rete)...

void setup()
{
  Serial.begin(9600);
}
void loop() 
{
  uint32_t value = 0; //  <----
  for(uint16_t i=0;i<10000;i++) // <-----
{  
    value += analogRead(0); 
  }
  Serial.print("Sound level = ");
  Serial.println(value);
  if(value > 10000UL) {
    Serial.println("Sound detected!");
  }
}

non capisco cosa sia "uint32", "uint16" e la "i"...

Il monitor seriale, usando questo sketch, da come valore 20-90 con il microfono staccato e 113200 -114000 con il microfono attaccato ma restano stabili sia se c'è rumore, sia se c'è totale silenzio...

Grazie in anticipo per le risposte :smiley:

PS: spero di non aver sbagliato sezione :cold_sweat:

for(uint16_t i=0;i<10000;i++) // <-----
{  value += analogRead(0); 
}

E' come scrivere:

uint16_t i;    // dichiarazione variabile i
for(i=0;i<10000;i++) // <-----
{  value += analogRead(0); 
}

uint32_t è come scrivere unsigned long (32 bit senza segno)
uint16_t è come scrivere unsigned int (16 bit senza segno)

Grazie per la risposta.

Perdona l'ignoranza...
"Unsigned Long" significa che con quel comando mostra l'estensione massima della variabile?

es: se è 2, con uint potrei vederla 2,0,1,0,2 ?

Colgo l'occasione per commemorare il mio povero cubo led 555 schiacciato inesorabilmente da mia madre, mentre si sedeva... non dimenticherò mai le sue animazioni e la funzione orologio/calendario che ci avevo appena implementato

SUBSEA:
Colgo l'occasione per commemorare il mio povero cubo led 555 schiacciato inesorabilmente da mia madre, mentre si sedeva...

NNNNNOOOO... :astonished: =(

scusa la domanda, che c'entra col topic? :stuck_out_tongue_closed_eyes:

hase091:
Grazie per la risposta.

Perdona l'ignoranza...
"Unsigned Long" significa che con quel comando mostra l'estensione massima della variabile?

es: se è 2, con uint potrei vederla 2,0,1,0,2 ?

si, cambia il min/max "accettato", (ma non ho capito il tuo es)
int -> -32678 a 32767
unsigned long -> 0 a 65535

nid69ita:
si, cambia il min/max "accettato", (ma non ho capito il tuo es)
int -> -32678 a 32767
unsigned long -> 0 a 65535

ho totalmente errato il senso prima... :disappointed_relieved:

rozzamente, con unsigned long non viene considerato il valore negativo della variabile e viene raddoppiato quello positivo?

si, una variabile

int a => considera -32768 a 32767
unsigned long b => non considera il segno 0 a 65535

Non è che la variabile a o b siano tanto diverse. Solo che il segno non viene considerato nella unsigned (il bit 7=1 non significa più 1=negativo 0=positivo)

nid69ita:
si, una variabile

int a => considera -32768 a 32767
unsigned long b => non considera il segno 0 a 65535

Non è che la variabile a o b siano tanto diverse. Solo che il segno non viene considerato nella unsigned (il bit 7=1 non significa più 1=negativo 0=positivo)

ti ringrazio per avermi chiarito questa parte :slight_smile:

la stessa cosa vale per i numeri 8 bit (char)

char -> -128 a +127
unsigned char -> 0 a 256

nel codice nessuno vieta di fare questo:

char sC=-64;          // 11000000b
unsigned uC=-64;      // 11000000b

Serial.println(sC);  // stamperà -64, della variabile bisogna considerare il bit 7 come segno
Serial.println(uC);  // stamperà +192  perchè il bit 7 è a 1 ma non indica il segno, viene interpretato come +128 (sommato a 64=>192)

hase091:

SUBSEA:
Colgo l'occasione per commemorare il mio povero cubo led 555 schiacciato inesorabilmente da mia madre, mentre si sedeva...

NNNNNOOOO... :astonished: =(

scusa la domanda, che c'entra col topic? :stuck_out_tongue_closed_eyes:

ahahaha! Infatti niente! Ho ssbagliato topic!!! :stuck_out_tongue_closed_eyes: ce nera uno sul cubo led e ero certo di pubblicare li!! :sweat_smile: scusate per il disturbo :roll_eyes:

SUBSEA:
ahahaha! Infatti niente! Ho ssbagliato topic!!! :stuck_out_tongue_closed_eyes: ce nera uno sul cubo led e ero certo di pubblicare li!! :sweat_smile: scusate per il disturbo :roll_eyes:

vai tranquillo, capita :stuck_out_tongue_closed_eyes:

PS: non sono ancora riuscito a far partire il microfono... :roll_eyes:

Di elettronica sono un pò una capra. Cerca però altre discussioni. Ne ricordo una dove anche io ho fatto domanda su sti microfoni e ci sono molte spiegazioni. Era una discussione su qualcuno che voleva sentire il clap (battimani) o qualcosa del genere. Non tanto tempo fa.
Mi sembra mi dissero (a anche a chi aveva aperto il topic) che c'e' poca amplificazione del segnale.

Edit: questa
http://arduino.cc/forum/index.php/topic,152689.0.html

la schedina è diversa, però potrebbe darti indicazioni

nid69ita:
http://arduino.cc/forum/index.php/topic,152689.0.html

la schedina è diversa, però potrebbe darti indicazioni

in realtà mi sembra parlino del modello uguale al mio! sto leggendo di fretta ma sembra che ci siano riusciti....
appena posso dedicargli più tempo (e con un dizionario alla mano :stuck_out_tongue_closed_eyes: ) edito o posto i risultati :slight_smile:

grazie mille per ora XD

---edit----

ho tirato un altro pò sul tempo e sono riuscito a leggerlo tutto! in effetti da quando waterseven capisce che quello blu è meglio, abbandona quello rosso... poi abbandona anche quello blu :fearful:
pensavo fosse più facile da realizzare e che, anche se con un'amplificazione minimalissima, potesse funzionare (mi bastava anche a 1mt)...

adesso la domanda cambia, che ci potrei fare con questo visto che di "ascoltare" non se ne parla?