Pages: [1]   Go Down
Author Topic: lettura di un voltaggio conversione in db  (Read 418 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

BZ (I)
Online Online
Brattain Member
*****
Karma: 252
Posts: 21283
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

ivrea (to)
Offline Offline
Faraday Member
**
Karma: 79
Posts: 4669
miaaao ^-^
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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: 20*log10 (tensione letta sul pin analogico / 0,775)
Tensione /0,775    oppure   20*log10(tensione)   ?

http://www.cplusplus.com/reference/cmath/log10/
Logged

my name is IGOR, not AIGOR

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 527
Posts: 12346
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

non mi sembra difficile da interpretare: moltiplica x20 il logaritmo in base 10 del valore che legge sul pin analogico diviso 0,775 smiley
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

ivrea (to)
Offline Offline
Faraday Member
**
Karma: 79
Posts: 4669
miaaao ^-^
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

non mi sembra difficile da interpretare: moltiplica x20 il logaritmo in base 10 del valore che legge sul pin analogico diviso 0,775 smiley

azzarola, hai ragione, troppo programmatore...  la funzione con la parentesi tonda staccata di uno spazio, non capivo fosse un tutt'uno  smiley-mr-green

#include <math.h>
...
result = 20*log10( tensione/0.775);
« Last Edit: June 26, 2013, 02:47:11 am by nid69ita » Logged

my name is IGOR, not AIGOR

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 110
Posts: 6993
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

tensione deve essere dichiarato float altrimenti la divisione risulta intera.
Code:
#include <math.h>
...
float result = 20*log10((float)tensione/0.775);
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

ivrea (to)
Offline Offline
Faraday Member
**
Karma: 79
Posts: 4669
miaaao ^-^
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.  smiley-mr-green
Logged

my name is IGOR, not AIGOR

Pages: [1]   Go Up
Jump to: