Sto lavorando su un arduino mega 2560 , cercando di creare un wattmetro per RF che manda i dati ad un nextion.
Il programma funziona bene legge il dato perfettamente , il problema è costruire una scala logaritmica sul display
come si fa? Forse sarà semplice ma io non riesco a venirne a capo . Se faccio una rappresentazione lineare, sul display funziona tutto ma non è reale . Avrei bisogno di un moltiplicatore di scala per poter traslare i dati su una scala logaritmica.
Buonasera e benvenuto,
essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentartiIN 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.
Guglielmo
P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposito thread, nessuno ti potrà rispondere, quindi ti consiglio di farla al più presto.
Di che frequenze stai parlando ? ... perche' ci sono integrati gia predisposti per leggere dei segnali RF e darti la conversione logaritmica della potenza all'ingresso gia traslata in una scala lineare all'uscita ...
Si conosco gli AD8307 già usati in passato ma questa volta vorrei inviare all'arduino direttamente il segnale che vene dalla testina stockton dopo apportuno partitore , funziona già tutto ottengo un valore in watt che dovrei mandare al NEXTION , in questo caso uso una crop image quindi devo mandare un numero da visualizzare su una scala logaritmica , quindi questo numero dovrebbe essere moltiplicato per un numero variabile decrescente , come si ricava questo fattore di scala ?
Si perfetto la formula è corretta , o quasi , ma quanto vale la costante k?
Se facciamo un esempio , supponiamo di avere una potenza misuarata X = 100 watt e vogliamo trovare la corrispondente potenza Y da rappresentare nella scala . Il log(100) = 2 , se moltiplichiamo per k dovremmo ottenere Y che è la misura sul grafico. Nella realtà sul grafico il valore di 100 vale 200(l'ho ricavato da uno strumento esistente ) , per cui k dovrebbe essere 100 ma veramente è così?
Io ho cercato di far quadrare i conti in maniera empirica e sembra funzionare ma non è una vera funzione non mi fido tanto.
Aspetta, perche' forse la cosa e' un po piu complessa ... "wattmetro per RF" non spiega bene tutto ...
E' un wattmetro per circuiti RF, con connessione diretta via cavo, o un wattmetro RF per emissioni, con un'antenna, con cui vuoi misurare la potenza trasmessa, oppure la densita' di potenza per volume, o la potenza effettiva disponibile ad una data distanza ? ... perche' sono tipologie di strumenti diverse, con scale diverse ... e vuoi la misura in W "puri", in dbW, in dbm, o come ? ... perche' non parliamo del classico W=V*I soltanto nella RF, ed andiamo a complicarci la vita inutilmente rischiando anche di darti risposte sbagliate, se non abbiamo prima almeno queste informazioni, mi sa ...
Si tratta di un wattmetro che deve misurare i watt in uscita da un trasmettitore ho il dato in formato numerico e devo traslare questo dato su una barra grafica, ovviamente mantenendo l'andamento logaritmico.
Che k variasse era fuor di dubbio ma volevo capire l'algoritmo ,io ne ho inventato uno ma come sapete la matematica non si inventa , per cui sono alla ricerca di questo fattore moltiplicatore.
E' solo un problema di rappresentazione grafica e di scala .
La scala logaritmica permette di rappresentare valori grandi e valori piccoli con la stessa risoluzione relativa: ad esempio, permette di distinguere 8W da 10W allo stesso modo di 800W da 1000W.
Questa, ad esempio, è la funzione che ho usato nel contatore Geiger:
Grazie Gianluca per la risposta prendo atto della tua formula ma cosa è il 51? e perchè hai aggiunto +2 al log.
Capisco che così funziona ma vorrei capire come sei arrivato a questa formula.
Non è richiesta tanta precisione , ho una scala che parte da 0 e arriva a 1200 watt , arduino mi fornisce il valore corretto poi lo devo incasellare in un bar graph . Con Arduino ottengo già i valori in watt .
Una scala logaritmica per natura non inizia da zero, che si avrebbe infinitamente prima di 0,01W: sarebbe prima di 0,001, prima di 0,000001, prima di 0,0000000001, infinitamente prima! Se vuoi che inizi da zero, puoi scrivere qualcosa di simile a:
if (potenza<0.01) valore=0;