Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Visualizzare numero con la virgola su display 7 segmenti PIC

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[1] Visualizzare numero con la virgola su display 7 segmenti PIC

Messaggioda Foto Utentenicolas97 » 2 lug 2014, 11:52

Salve avrei bisogno di visualizzare su 4 display a 7 segmenti un numero con la virgola per esempio 12,34 il dato viene elaborato dal PIC tramite una variabile di tipo int e vorrei visualizzare il valore contenuto nella variabile sui 4 display sapete come aiutarmi? grazie mille

Nicolas
Avatar utente
Foto Utentenicolas97
5 2
 
Messaggi: 26
Iscritto il: 3 nov 2013, 10:38

0
voti

[2] Re: Visualizzare numero con la virgola su display 7 segmenti

Messaggioda Foto Utenteyustel » 2 lug 2014, 12:18

Si può fare in tanti modi, dipende molto dall'hardware e quindi dal PIC che stai utilizzando. In linea di massima devi convertire il numero in formato BCD per andare poi a pilotare i display tramite le/la porte/porta di uscita, in generale passando per un driver se il tuo PIC non riesce a pilotarlo direttamente.

Se hai quattro porte libere direi che la cosa è semplice, fai l'output delle quattro cifre direttamente una per porta, se invece hai una sola porta disponibile (o vuoi risparmiare) potresti pensare di mandare le quattro cifre in modo sequenziale e attivare uno per volta i display.

Tra l'altro... stai tenendo un numero in virgola su una variabile intera???
Erwin Schrödinger forse è stato qui.
Avatar utente
Foto Utenteyustel
173 4
New entry
New entry
 
Messaggi: 92
Iscritto il: 22 feb 2010, 18:30

1
voti

[3] Re: Visualizzare numero con la virgola su display 7 segmenti

Messaggioda Foto UtentePaolino » 2 lug 2014, 12:25

Disponi già dell'hardware? Oppure hai almeno lo schema elettrico?

Ciao.

Paolo.
"Houston, Tranquillity Base here. The Eagle has landed." - Neil A.Armstrong

-------------------------------------------------------------

PIC Experience - http://www.picexperience.it
Avatar utente
Foto UtentePaolino
32,0k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 4187
Iscritto il: 20 gen 2006, 11:42
Località: Vigevano (PV)

0
voti

[4] Re: Visualizzare numero con la virgola su display 7 segmenti

Messaggioda Foto Utentenicolas97 » 2 lug 2014, 12:51

Allora mi sono sbagliato a scrivere il dato è in una variabile di tipo long, il PIC l'ho già ed è montato su breadboard per testare il circuito i display sono gestiti dal PIC tramite multiplexing dei display solo che se si tratta di visualizzare sui display numeri interi ne sono capace e non c'è problema, mentre in questo caso devo visualizzare un dato con due cifre decimali e non so estrapolare quelle due cifre per farle visualizzare sui display.. Sapete come estrapolare quelle due cifre in C?
Avatar utente
Foto Utentenicolas97
5 2
 
Messaggi: 26
Iscritto il: 3 nov 2013, 10:38

0
voti

[5] Re: Visualizzare numero con la virgola su display 7 segmenti

Messaggioda Foto Utenteyustel » 2 lug 2014, 13:03

L'idea più semplcie che mi viene è la seguente, prendiamo x generico di cifre c_1,c_2,c_3,c_4:

X=c_1c_2,c_3c_4 e.g. 12.34

Estraggo la prima cifra:

C_1=floor(X/10) e.g C_1=floor(12.34/10)=floor(1.234)=1

A questo punto C1 è nota, quindi estraggo la seconda:

C_2=floor(X-C1\cdot10) e.g. C_2=floor(12.34-1\cdot10)=floor(2.34)=2

C_3=floor(10\cdot(X-C_1\cdot10-C_2)) e.g. C_3=floor(10\cdot(12.34-1\cdot 10-2))=floor(3.4)=3

C_4 penso tu riesca a trovarlo da solo ;-)

In alternativa potresti convertire il numero in una stringa (meglio come vettore di char) e quindi estrarre i singoli caratteri e riconvertirli in numero decimale.
Erwin Schrödinger forse è stato qui.
Avatar utente
Foto Utenteyustel
173 4
New entry
New entry
 
Messaggi: 92
Iscritto il: 22 feb 2010, 18:30

2
voti

[6] Re: Visualizzare numero con la virgola su display 7 segmenti

Messaggioda Foto UtentePaolino » 2 lug 2014, 13:29

Mmh, non capisco una cosa: hai un dato long che sai già che dovrà avere due cifre decimali? Altrimenti il tuo dato, se fosse già decimale, non è long, ma float.

Paolo.
"Houston, Tranquillity Base here. The Eagle has landed." - Neil A.Armstrong

-------------------------------------------------------------

PIC Experience - http://www.picexperience.it
Avatar utente
Foto UtentePaolino
32,0k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 4187
Iscritto il: 20 gen 2006, 11:42
Località: Vigevano (PV)

0
voti

[7] Re: Visualizzare numero con la virgola su display 7 segmenti

Messaggioda Foto Utentenicolas97 » 2 lug 2014, 14:18

Si forse hai ragione forse è meglio una variabile float appena arrivo a casa ci guardo e cerco di mettere in atto il consiglio dato!! Grazie per le risposte!!
Avatar utente
Foto Utentenicolas97
5 2
 
Messaggi: 26
Iscritto il: 3 nov 2013, 10:38

1
voti

[8] Re: Visualizzare numero con la virgola su display 7 segmenti

Messaggioda Foto UtentePaolino » 2 lug 2014, 14:22

Ehm, no. Non hai capito la mia domanda (e non hai nemmeno risposto). :?
Occhio che usare i float su un microcontrollore non è il massimo. Lo si fa, ma se puoi evitarlo...

Paolo.
"Houston, Tranquillity Base here. The Eagle has landed." - Neil A.Armstrong

-------------------------------------------------------------

PIC Experience - http://www.picexperience.it
Avatar utente
Foto UtentePaolino
32,0k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 4187
Iscritto il: 20 gen 2006, 11:42
Località: Vigevano (PV)

0
voti

[9] Re: Visualizzare numero con la virgola su display 7 segmenti

Messaggioda Foto Utentenicolas97 » 2 lug 2014, 14:30

Allora io converto con adc un valore di tensione in ingresso al PIC, il risultato della conversione è in una variabile float perché siccome il convertitore è a 10 bit in un char non ci sta, il valore ottenuto della conversione lo moltiplico per 5 e divido per 1024 per ottenere i millivolt in ingresso al PIC, successivamente moltiplico per 10 i millivolt quindi il risultato ottenuto è con la virgola e ho deciso io di utilizzare solo le due cifre decimali e vorrei visualizzare su i display oltre alla decina e l'unità del valore anche i due decimali dopo la virgola del valore della variabile. Non so se mi sono spiegato sufficientemente
Avatar utente
Foto Utentenicolas97
5 2
 
Messaggi: 26
Iscritto il: 3 nov 2013, 10:38

0
voti

[10] Re: Visualizzare numero con la virgola su display 7 segmenti

Messaggioda Foto Utenteyustel » 2 lug 2014, 15:02

nicolas97 ha scritto:Allora io converto con adc un valore di tensione in ingresso al PIC, il risultato della conversione è in una variabile float perché siccome il convertitore è a 10 bit in un char non ci sta


Non ho capito, perché è un float? Cosa centra il fatto che è codificato su 10 bit con il float? Che PIC usi?
Erwin Schrödinger forse è stato qui.
Avatar utente
Foto Utenteyustel
173 4
New entry
New entry
 
Messaggi: 92
Iscritto il: 22 feb 2010, 18:30

Prossimo

Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 0 ospiti