sismografo lettore impulsi...chiamatelo come volete

buona sera a tutti.
mi chiamo pietro e sono di pordenone.
sto cercando qualcuno che mi possa spiegare e nel qual tempo aiutare ad utilizzare al meglio arduino.
vorrei sapere cosa studiare prima di poter scrivere un software da zero , in quanto ho molta difficoltà e non riesco a trovare delle guide su come utilizzare le funzioni , le variabili ecc..diciamo che sono una capra ma sopratutto non riesco a risolvere da me i problemi e non riesco a trovare delle soluzioni in autonomia.
in sostanza vorrei provare a creare software per conto mio senza dover fare copia incolla.
vorrei realizzare uno strumento che mi va in allarme se un sensore collegato all'arduino superi una certa vibrazione,frequenza. l'allarme deve rimanere attivo per tutto il periodo che il sensore superi questa soglia.
sto al momento utilizzando il file base del pulsante e cercando di inserire delle variabili. a non ci riesco.
grazie a tutti anticipatamente

Ciao,
prima di tutto, essendo il tuo primo post, ti consiglio di presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione) e di leggere con attenzione il REGOLAMENTO ...

... poi ... puoi cominciare con QUESTO e cercare in libreria dei libri relativi alla programmazione in C di Arduino. In Inglese ne troverai parecchi (... QUESTO è uno), in Italiano un po' meno ... ma comunque ci sono :wink:

Guglielmo

Intanto grazie.
La prima libreria che mi ha proposto gia la conosco. Ne ho una copia cartacea.
Ho proprio difficolta a comprendere questa guida in quanto spiega tutti i tipi di comandi variabili operazioni ecc, ma in che maniera bisogna modularli?
Esempio:
nel mio caso vorrei realizzare questo sismografo rudimentale.
In mio sensore è una ampolla di mercurio, se ci sono delle vibrazioni essa si comporta come un interruttore, come se fosse un sensore d'allarme per la rottura dei vetri. L'uscita è un banale led che si accende se le vibrazioni superano una certa intensitá.
Quindi
Const int digitalPin=3 ... Ho selezionato digitalpin perchè è usato generalmente per i sensori
Const int ledPin=13
successivamente nel setup definisco input e output
e ora mi tocca inserire sicuramente una variabile.
Il problema e non ho proprio idea di cosa usare o se c'è una variabile che possa andar bene.
Avrei bisogno di trovare una formula o un comando che se legge una frequenza sul sensore da 4hz in su mi faccia accendere il led e che rimanga accesso finchè il pericolo non cessa.
Domani provo a smanettare un'altro po.
Comunque grazie anticipatamente

Temo che del mercurio in umpolla non si possa muovere con una frequenza di 4Hz percui non riuscirai mai a ottenere un segnale con una frequenza maggiore di 4Hz.
Ciao Uwe

Non è un sensore improvvisato. È un sensore specifico per questo impiego, arriva ad un massimo di 16Hz-20Hz. Difatti i terremoti piu pericolosi, quelli che fanno piu danni, udibili, si verificano in questo range.

Puoi usare l'apposita libreria FreqMeasure fatta apposta per misurare frequenze ... :wink:

Guglielmo

Ciao, le librerie semplificano le cose e visto che ti è stata proposta e fa al caso tuo, penso hai risolto il problema...
Però volevo sottolineare che alcune cose sono più complesse di altre, e se tu avessi dovuto scrivere un codice partendo da zero, non era la cosa più semplice per un principiante.

Esempio, avresti dovuto creare un contatore di tempo magari con la funzione Millis() che calcolasse lo scorrere dei secondi, avresti dovuto leggere in input un pin digitale e incrementare una variabile, poi dopo un intervallo di tempo prestabilito, dividere il valore della variabile per i secondi e quindi trovare la frequenza, con un IF ,se la frequenza è maggiore di... fai qualcosa. Forse non sono cose semplice per qualcuno che non ha mai scritto un po di codice, ma con un po di pratica prima in cose più semplici ci si arriva progressivamente :slight_smile:

Scusa, ma il tuo scopo e' semplicemente misurare vibrazioni, oppure la rilevazione dei terremoti ?

Perche' nel secondo caso, il sensore deve avere specifiche caratteristiche, e dubito che un sensore al mercurio le abbia ... i terremoti coinvolgono spostamenti possibili su tutti e tre gli assi, e frequenze e "combinazioni" di frequenze che possono essere misurate con precisione solo da sensori inerziali "massicci" (tieni presente che anche i sensori sismici piu "scadenti", o comunque autocostruibili, hanno una "leva" per la componente inerziale lunga minimo 50cm, quelli piu decenti almeno un metro ...)

Intanto grazie del consiglio. provero ad utilizzare la libreria. Preferisco scrivere tutto a mano perche riesco meglio a memorizzare i passaggi, come dicevo credo sia poco pratico fare copia incolla da altri progetti perche cosi non ti rimane niente. Ho deciso di usare arduino perche mi è stato detto che è semplice... Ma mi sembra che non è proprio cosi. Per quanto riguarda il sensore non ho idea di cosa ci sia dentro e di come sia realizzato, peró vi è la dicitura sensore al mercurio.

Hai un link al prodotto, o una sigla / part number ?

Chiedo scusa ma non posso fornirti questi dati, lo scopo comunque è quello di rilevare delle vibrazioni che, se si ripetono per piu di un tot di tempo o al di sopra di una certa intensitá possono essere pericolose per determinate costruzioni

Non è che vuoi costruire un clone del QuackeAlarm?

Comunque un sensore basato su mercurio è molto rudimentale. Già un geofono (3, uno per asse) sarebbe meglio, è piccolo e compatto.

non so cosa sia quackealarm. per quanto riguarda il sensore sto utilizzndo questo in quanto me lo passano al lavoro. però se pensi che sia migliore ben vengano dei consigli

Dipende dalle specifiche. Esiste persino un sensore a vibrazione per arduino composto da una molla coassiale ad un tubo metallico. Le vibrazioni mettono in contatto la molla con il tubo.

Se le vibrazioni sono abbastanza forti si può usare un accelerometro, ce ne sono diversi per Arduino di diverso costo e precisione. Ce ne sono analogici e digitali. Banalmente puoi fare prove con quello presente in uno smartphone: se va bene quello va bene anche un accelerometro per Arduino. Inoltre se hai le specifiche, accelerazioni in G, puoi scegliere facilmente l'accelerometro adatto.
Il geofono è un cilidretto di alcuni centimetri, tutte le dimensioni in genere sono al di sotto dei 10cm ma hai bisogno di un circuiti di condizionamento perché di solito il segnale di uscita è in tensione ma ci sono tensioni negative. Non dovrebbero costare cari.

QuakeAlarm è un sismometro in miniatura e si basa sul fatto che le onde P arrivano prima delle S e delle altre che sono in genere le distruttive. Questo intervallo aumenta con il variare della distanza dall'epicentro (le due onde viaggiano a velocitò diversa). Solo che questo vale se il forte terremoto è lontano, ad esempio i terremoti in Giappone dove esiste un allarme nazionale basato su questo principio. Dalle nostre parti invece l'intervallo è solitamente di pochi secondi, troppo breve per fare qualsiasi cosa.

ho trovato un progettino per costruire un sensore, simile a quello del tubo metallico che mi hai consigliato tu.
il rilevatore è una lamina di acciaio armonico fissata da una parte e dall'altra estremità c'è un contatto. la sensibilità si modifica con una vitarella che avvicina o allontana il contatto agendo sulla lamina. piu o meno la lunghezza della lamina è di 20cm