Salve sono un neofita nell'utilizzo della piattaforma arduino, e spero che voi guru' possiate aiutarmi... sto costruendo un dispositivo che deve convertire una tensione in decibel. Praticamente legge un segnale in volt, restituisce il valore su un display 16x2 ( e fin qui non ho avuto problemi ed esegue tutto correttamente) ora devo convertire quella tensione letta in decibel. L'operazione che deve eseguire è la seguente : 20*log10 (tensione letta sul pin analogico / 0,775) poi ovviamente visualizzare il risultato. Mi scuso se ho sbagliato sezione dove scrivere questo post.
Spero in un vostro aiuto grazie in anticipo.
Sí, delle discussioni in lingua italiana vanno messe nella parte italiana del forum.
Non capisco il Tuo problema. Come leggere un entrata analogica e trasformarla in tensione é spiegato in tanti esempi.
Ciao Uwe
Credo di capire che il tuo è un problema di programmazione C ovvero non sai quali comandi usare per la formula?
Io invece non ho capito qual'e' la formula perchè scrivi:
L'operazione che deve eseguire è la seguente: 20log10 (tensione letta sul pin analogico / 0,775)
Tensione /0,775 oppure 20log10(tensione) ?
non mi sembra difficile da interpretare: moltiplica x20 il logaritmo in base 10 del valore che legge sul pin analogico diviso 0,775
azzarola, hai ragione, troppo programmatore... la funzione con la parentesi tonda staccata di uno spazio, non capivo fosse un tutt'uno
#include <math.h>
...
result = 20*log10( tensione/0.775);
tensione deve essere dichiarato float altrimenti la divisione risulta intera.
#include <math.h>
...
float result = 20*log10((float)tensione/0.775);
Teoricamente, se il compilatore fa il bravo, 0.775 è giù di suo float, credo non sia necessario il cast, ma in tutti i casi non fa mai male.