Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 35
  1. #1

    Da Byte alla temperatura in Pic Basic

    Salve a tutti ragazzi,

    sto scrivendo un piccolo software in pic basic, caricato su un pic 18f4550, compilato con picbasicpro 2.60, con il quale acquisisco un ingresso analogico a cui è connesso un sensore di temperatura condizionato tra 0-5V adattando la dinamica all'escursione di temperatura di -20° - +80° (253 K, 353 K).

    Il problema è che se mando in visualizzazione sul display la variabile acquisita mi scrive il numero in esadecimale del byte acquisito. Invece io vorrei visualizzare il valore di temperatura, magari usando una cifra dopo la virgola...

    Non ho proprio idea da dove partire e sono qui ad appellarmi alla vostra competenza e cordialità. Grazie a tutti veramente...

    Ciaociao.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma il valore che ottieni dalla lettura vale 0 per il minimo e 255 per il massimo? E deve corrispondere a 20 ... 80 ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Esattamente.

    il valore 0 = 00000000 deve corrispondere a -20 °C mentre il valore 255 = 11111111 deve corrispondere a +80°C..

    Magari se fosse possibili mi piacerebbe vedere la temperatura con una cifra dopo la virgola, tipo 20, 20.5, 21... Ancora meglio sarebbe poter vedere 30, 30.1, 30.2, 30.3, ecc....

    é una cosa tanto complessa??? Grazie mille della celere risposta...veramente molto efficiente.

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da Velvettiere
    Esattamente.
    Basta usare una variabile double (o single) e una proporzione del tipo

    Temp = 20+byte*(60/255)

    Poi visualizzerai il valore con il numero di decimali che vuoi (questo dipende dalle funzioni di visualizzazione di cui disponi).

    veramente molto efficiente.
    Passavo da queste parti ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Temp = 20+byte*(60/255)
    Uhm, direi byte*100/255-20 ...
    (questo naturalmente se il sensore di temperatura è lineare)
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    grazie a tutti veramente.. si si...il sensore di temperatura è un AD590 ed è lineare, anche se ha un offset da compensare in fase di condizionamento. Ora provo le soluzioni proposte e poi vi faccio sapere.. grazie mille...saluti.

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da MItaly
    Uhm, direi byte*100/255-20 ...
    (questo naturalmente se il sensore di temperatura è lineare)
    Prova con 0 e 255 per le due formule ...

    20+0*(60/255) = 20
    20+255*(60/255) = 80

    0*100/255-20 = -20
    255*100/255-20 = 80

    ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Infatti...
    il valore 0 = 00000000 deve corrispondere a -20 °C mentre il valore 255 = 11111111 deve corrispondere a +80°C..
    Amaro C++, il gusto pieno dell'undefined behavior.

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    OOpsss ... avevo letto 20 ... 80

    Non ci vedo più tanto bene ...

    Allora va bene la proporzione di Matteo ... ovvero la mia diventa

    Temp = -20+byte*(100/255)

    che poi è quella di Matteo ... :-)

    Ovvero

    minimo+byte*((massimo-minimo)/255)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    e se la mia variabile non è double o single, ma è un byte???

    Devo cambiarla? perchè credo di non poterlo fare dato che il codice la richiama un pò ovunque e potrei sconvolgerlo radicalmente.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.