Go Down

Topic: bluetooth (Read 346 times) previous topic - next topic

lakiliuk1

Buongiorno a tutti, sono nuovo di questo forum, volevo sapere se potevate risolvere questo problema. Praticamente ho un segnale che ogni tanto è un impulso che dura poco
quello che dovrei fare è contare il tempo che passa tra l'inizio di un impulso e l'inizio di uno nuovo che sarà poi un inizio di un nuovo calcolo. appena finito un ciclo cioè passano 2 impulsi per il tempo o su una sd o usb

in sostanza devo sapere il tempo tra impulso 1 e 2 poi tra 2 e 3 e via così
notare che i tempi devo partire e finire tra gli inizi dei 2 impulsi no tra la fine del primo e l'inizio del 2.

Il tutto via bluetooth e quindi avrò un arduino uno con sensore alimentato da batteria in un posto, mentre in un altro luogo avrò un altro arduino uno con display e sd / usb dove potrò leggere i tempi e salvare tutti i tempi intermedi

maubarzi

Ciao,
in qualità di temporaneo e parziale sostituto, senza portafoglio, del "Sommo moderatore" che si è concesso un po' di svago e di pazza gioia ;)

come prima cosa ti do il benvenuto e poi ti devo chiedere di espletare una piccola formalità che aiuterà tutti i volenterosi che vorranno rispondere al tuo quesito, di farlo nel migliore dei modi.

Lo faccio citando le sue parole:
Quote
essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con molta attenzione tutto il su citato REGOLAMENTO ... Grazie. :)
Poi ho visto che hai postato lo stesso quesito anche quì devo fare questa seconda citazione:
Quote
in conformità al REGOLAMENTO, punto 13, il cross-posting è proibito (anche tra lingue diverse).
Oltre a NON essere ammesso il cross-posting, NON è ammesso scrivere post in Italiano nelle sezioni di lingua Inglese
Ultima annotazione, hai pure inserito due post in una sezione circondata da messaggi tipo "ATTENZIONE: NON POSTARE NULLA IN QUESTA SEZIONE !!!" e "NON SCRIVERE IN QUESTA SEZIONE" pertanto a breve verranno eliminati tutti i messaggi "anomali" ad esclusione di questo.

Ricordati della presentazione, poi, appena fatta, si potrà continuare normalmente.
Nessuna buona azione resterà impunita!

Preistoria -> medioevo -> rinascimento -> risorgimento -> rincoglionimento!

lakiliuk1

Buongiorno a tutti, sono nuovo di questo forum, volevo sapere se potevate risolvere questo problema. Praticamente ho un segnale che ogni tanto è un impulso che dura poco
quello che dovrei fare è contare il tempo che passa tra l'inizio di un impulso e l'inizio di uno nuovo che sarà poi un inizio di un nuovo calcolo. appena finito un ciclo cioè passano 2 impulsi per il tempo o su una sd o usb

in sostanza devo sapere il tempo tra impulso 1 e 2 poi tra 2 e 3 e via così
notare che i tempi devo partire e finire tra gli inizi dei 2 impulsi no tra la fine del primo e l'inizio del 2.

Il tutto via bluetooth e quindi avrò un arduino uno con sensore alimentato da batteria in un posto, mentre in un altro luogo avrò un altro arduino uno con display e sd / usb dove potrò leggere i tempi e salvare tutti i tempi intermedi

maubarzi

Gli impulsi li riesci a rilevare con delle digitalRead?
Se si ci attacchi una interrupt e ti salvi il millis o micros quando scatta il fronte di salita e ti calcoli la differenza dal tempo dell'impulso precedente.
Ti studi attachinterrupt e millis() o micros() se i tempi sono distanziati di millisecondi o microsecondi.
Nessuna buona azione resterà impunita!

Preistoria -> medioevo -> rinascimento -> risorgimento -> rincoglionimento!

fabpolli

Quello che ti serve per fare ciò che chiedi è la gestione a mezzo di'interrupt e un paio di variabili, una che memorizzerà il valore di millis() al primo impulso, l'altra che memorizzerà il valore di millis() al secondo impulso, con questi due dati calcoli il tempo tra i due e lo invii all'altro arduino, poi metti il valore del secondo impulso nella prima variabile e il ciclo si ripete ad oltranza.
La domanda è anche questa, ogni quanto avvengono gli impulsi? Che durata c'è mediamente tra l'uno e l'altro? Che precisione ti serve?
In base alle tue necessità millis() potrebbe non essere sufficiente ma potrebbe dover entrare in gioco un bell'RTC

P.S. = Sovrapposto a maubarzi!

fabpolli

Io cambierei anche il titolo del topic che con il bluetooth ha veramente poco a che fare, almeno in questa fase! Per farlo puoi editare il primo post

lakiliuk1

Il tempo tra un impulso e l'altro è di circa 60 secondi, in quanto alla precisione mi basterebbe al secondo.

fabpolli

Allora puoi andare tranquillamente di millis() senza l'uso dell'RTC

lakiliuk1

intanto grazie, sai se c'è qualcosa di già fatto da poter lavorare su uno schema già usato ?

fabpolli

Si certo, l'esempio riportato nel link che io e @maubarzi ti abbiamo indicato; ed anche gli esempi presenti nell'IDE di Arduino sono ottime basi per iniziare a capire e lavorare con gli interrupt.
Parti da quello, aggiungi la logica che ti serve e, se incontri difficoltà, posta qui il codice che ti aiutiamo volentieri!

lakiliuk1


Go Up