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...
hai messo una resistenza dell'ordine dei megaohm in parallelo al piezo? altrimenti non vai da nessuna parte!
La resistenza messa in parallelo col piezo ammonta a 33MOHM ma niente...boh?!
33 mega??' sei sicuro?!? non saranno mica kilo...
No scusa sono 3.3 Mohm poichè i colori della resistenza sono arancio-arancio-verde-dorato,ma comunque dovrebbe funzionare no?
si la resistenza è ok...
mi dici cosa intendi per "non funziona"?
ciao
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... :-?
nello, tre cose.
-
Prima di tutto stiamo parlando di questo esempio giusto?
-
In tal caso il piezo è sul pin analogico numero 0 (non sul digitale ad esempio) giusto?
-
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à...
- 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..
Comunque vi ringrazio molto per la disponibilità.. ;)..
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 Hacking the doorbell – Roo Reynolds
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)
}
}
}
Miracolosamente mi funziona l'esempio classico!Chissà cosa avevo sbagliato.. :-[