Go Down

Topic: "Knock sensor" non mi funziona (Read 1 time) previous topic - next topic

nello

Premetto che ho acquistato da poco Arduino,ma so di non essere giustificato a chiedervi come mai non mi funziona il tutorial "Knock"(dato che tali tutorials sono estremamente semplici).Ho provato a vedere se fosse danneggiato il piezo elettrico,ma con "Melody" mi funziona... :-/...da cosa potrebbe dipendere?E' da un giorno e più che sto ricontrollando tutte le entrate ed uscite,ma senza soluzione... :'(

uccio

hai messo una resistenza dell'ordine dei megaohm in parallelo al piezo? altrimenti non vai da nessuna parte!

nello

La resistenza messa in parallelo col piezo ammonta a 33MOHM ma niente...boh?!

uccio

33 mega??' sei sicuro?!? non saranno mica kilo...

nello

No scusa sono 3.3 Mohm poichè i colori della resistenza sono arancio-arancio-verde-dorato,ma comunque dovrebbe funzionare no?

uccio

si la resistenza è ok...
mi dici cosa intendi per "non funziona"?
ciao

nello

Non funziona cioè quando "eccito il sensore toccandolo"(scusa ma mi sto "scemunendo" co sto esempio da un paio di giorni..knock = bussare, percuotere, battere...giusto?) il led non ne vuole proprio sapere di lampeggiare, anzi ti dirò di più: LAMPEGGIA A SUO PIACIMENTO!Cioè senza toccare il sensore e senza nessuna emissione di suoni(l'ho provato soprattutto di notte, quando ho più tempo libero) il led a volte si accende e spegne con intervalli lentissimi, altre volte con intervalli lunghissimio, altre volte ancora rimane acceso e non si spegne fin quando non resetto, insomma fa un pò come gli pare... :-?

nathanvi

nello, tre cose.
1) Prima di tutto stiamo parlando di questo esempio giusto?

2) In tal caso il piezo è sul pin analogico numero 0 (non sul digitale ad esempio) giusto?

3) Io proverei ad abbassare il numero THRESHOLD e mettere per esempio uguale a 50 o anche meno e vedere cosa succede.

Forse è solo un problema di sensibilità...
My blog:
http://zuccala.blogspot.com

nello

1) e 2) SI! 3) Ho provato ad abbassare la sensibilità addirittura anche a 1!E' lo stesso!!!Forse è meglio che lascio per un pò stare per poi tornarci con un altro spirito?Perchè ora mi verrebbe di lanciarlo al muro.. :o..

nello

Comunque vi ringrazio molto per la disponibilità.. ;)..

stefanino

ciao nello
anche io ho avuto dei problemi con il piezo e questo sistema. molti! :|

ho parzialmente risolto, ma solo facendomi aiutare da un altro amico (il mitico andrea). mi ha fatto provare un collegamento SENZA resistenza, semplicemente provando combinazioni diverse, quello che funziona meglio e` senza resistenze , positivo del piezo sul pin 0 analogico, negativo del piezo sulla ground di arduino.
la patch è diversa, la posto in coda.

quello che non capisco (sono molto ignorante) è perchè fare il pullup analog e come mai funziona anche se dal serial monitor mi da sempre solo valori molto molto alti, prossimi al 900...


ciaociao fammi sapere


stefanino



/*
*****
script per Piezo input
originale http://rooreynolds.com/2008/05/14/hacking-the-doorbell/
modificato da A.Richetta www.akash.it
V. 0.1 11/05/2009
Status : Working
Connessioni:
Analog 0 -> + Piezo
ground -> - Piezo
*/


int ledPin = 13;   // LED
int potPin = 0;    // positivo Piezo
int val = 0;

long time = 0;
long debounce = 1000; // tempo per il debounce (gestione delle spurie del piezo)

void setup() {
 pinMode(ledPin, OUTPUT);      // digital Out
 Serial.begin(9600);           // Coneesione Seriale
 digitalWrite(14 + potPin, HIGH); // pullup analog, aggiunge 14 al valore del potpin
                                // (analog 0 = digital 14, a1 = d15, etc)
}

void loop() {
 val = analogRead(potPin);
 if (val < 1000) { //se il valore è inferiore a 1000
   if (millis()-time > debounce) { //guarda che sia passato il tempo impostato nel debounce
     Serial.println("ON");  //ok sono on
     Serial.println (val);  // scrive il valore del potpin
     digitalWrite(ledPin, HIGH);   //  LED on
     delay(500);                   // Aspetta
     digitalWrite(ledPin, LOW);    // LED off
     time = millis();  //rimposta la variabile time con il valore di millis (tempo di accensione di arduino dopo l'ultimo reset)
   }
 }

}

nello

Miracolosamente mi funziona l'esempio classico!Chissà cosa avevo sbagliato.. :-[

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy