Go Down

Topic: Buzzer come rilevatore analogico di "bussate" non funziona (Read 194 times) previous topic - next topic

Lory

Ciao a tutti e grazie in anticipo per l'aiuto.

Ho una scheda arduino uno e con i componenti dello starter kit stavo provando a far scrivere sul monitor seriale quanto rilevato dal mio buzzer connesso su una porta analogica quando davo dei piccoli colpi sullo stesso.
Allego sia lo sketch che il circuito.
Purtroppo il valore sul monitor seriale è un fantastico 0 che non varia.
Qualcuno sa dirmi cosa sbaglio?

Sketch:
Code: [Select]

int rea;

void setup() {
  // initialize serial communications (for debugging only):
  Serial.begin(9600);
}

void loop() {
  rea = analogRead(A0);
  Serial.println(rea);
  delay(200);
}



Spero l'immagine si apra, comunque lo schema l'ho fatto su esempio del libro dello starter kit riguardo al
progetto basic "Knock Lock"

steve-cr

Credo che la resistenza sia un po' troppo bassa, quindi lo mantiene a ZERO a meno che non senta un a esplosione.

Il valore di quella resistenza va tarata in funzione della sensibilità. Prova a metterla più alta.
Però sembrerebbe anche tutto ok. sicuro che i collegamenti sono tutti a posto?
Samantha Cristoforetti: "Mi fai fare un giro sul tuo ultraleggero?". "Certamente, però piloto io !"

Lory

Grazie mille! Ora funziona, non ci avevo pensato avendo riprodotto il circuito del libro...probabilmente il buzzer si sarà un po rovinato ed è meno sensibile, non so.
Risolto comunque :)

Datman

Il grosso errore è quel delay: la tensione viene letta una volta e poi viene ignorata per 200ms! La lettura, invece, deve avvenire a ogni ciclo. Ogni 200ms, poi, vai a vedere se il valore si è spostato da zero:
Code: [Select]
int adesso;
int rea;
unsigned long t;

void setup()
{
 // initialize serial communications (for debugging only):
 Serial.begin(9600);
}

void loop()
{
adesso=analogRead(A0); if (adesso>rea) rea=adesso;
if(millis()-t>200){t=milllis(); if(rea>0) {Serial.println(rea); rea=0;}}
}
Hi,I'm Gianluca from Roma.I play&work with electronics since I was16(1984).
After 25yrs of maintenance on cameras&video mixers,since 2013myJob is HDTVstudios design.
Since Jan2015 IPlayWith Arduino:bit.ly/2F3LPWP
Thanks 4 a Karma if U like my answer

steve-cr

Si ci ho pensato anche io. Poi però mi sono "fidato" che è uno degli esperimenti del kit quindi "deve funzionare".
Comunque ho anche pensato che un rumore generico non dura solo 200 millisecondi, però l'osservazione di Datman è più che corretta: un rumore secco e rapido potrebbe non essere rilevato se capita proprio all'inizio del delay.
Samantha Cristoforetti: "Mi fai fare un giro sul tuo ultraleggero?". "Certamente, però piloto io !"

Go Up