Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [C] programma sensore di temperatura

    Salve, mi servirebbe un aiuto in questo programma:

    Sivuole linearizzare un sensore di temperatura, che fornisce un'uscita tra0 e 100 mV, mediante una spezzata. Sperimentalmente sono statitrovati
    iseguenti punti di ginocchio della spezzata: (20 mV, 15 gradi),
    (55mV, 27 gradi). Inoltre a 0 mV si fa corrispondere 0 gradi e a 100 mv
    35gradi.
    Realizzareun programma che permetta di introdurre da tastiera un valore
    ditensione fornito dal sensore, calcoli e stampi il valore ditemperatura
    espressoin gradi.

    io ho fatto così:

    codice:
    #include <stdio.h>
    
    int main()
    {
        float tensione, temperatura;
    
        printf("Inserisci valore di tensione da 0 a 100 mV  ");
        scanf("%f", &tensione);
    
        if (tensione <= 20){
            temperatura=((15/20)*tensione);
            printf("Temperatura= %f", temperatura);
        }
        else if (20<tensione<=55){
            temperatura= ((12/35)*tensione +(289/35));
            printf("temperatura= %f", temperatura);
        }
        else if (55<tensione<=100){
            temperatura=((8/45)*tensione + (775/45));
            printf("temperatura= %f", temperatura);
        }
    
        return 0;
    }
    Nei 3 casi ho calcolato le 3 diverse rette passanti per i due punti(che nel primo tratto sono (0,0) e (20,15), nel secondo (20,15) e (55,27) e nel terzo (55,27) e (100, 35), dove sulle ascisse vi è la tensione e sulle ordinate la temperatura.
    Però non funge. qualcuno sa dirmi dove sbaglio? Grazie mille.
    Ultima modifica di MItaly; 22-08-2014 a 00:09 Motivo: Sistemata formattazione codice

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Non puoi fare confronti di quel tipo.

    if (0 < A < 100) // ERRORE

    if (A > 0 && A < 100) // OK

    E occhio che la divisione tra interi è un intero (e magari non è quello che vuoi)
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Quote Originariamente inviata da Alex'87 Visualizza il messaggio
    Non puoi fare confronti di quel tipo.

    if (0 < A < 100) // ERRORE

    if (A > 0 && A < 100) // OK

    E occhio che la divisione tra interi è un intero (e magari non è quello che vuoi)
    Grazie, ecco dove sbagliavo.

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Promemoria per la prossima volta: "non funge" non vuol dire nulla.
    In questo caso il problema era PALESE ma altre volte non è così: riporta sempre errori di compilazione, errori a runtime o comportamenti inaspettati.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

Tag per questa discussione

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 © 2024 vBulletin Solutions, Inc. All rights reserved.