Linearizzazione di un sensore

Slides:



Advertisements
Presentazioni simili
INFORMATICA Altre Istruzioni di I/O
Advertisements

1 Automazione dellalgoritmo ricorsivo di permutazione eseguita da Mariano Melchiorri.
Linearizzazione di un sensore
Nel C non esiste un dato primario di tipo stringa; queste sono rappresentate con un array monodimensionale di caratteri (tipo char). Così per definire.
Ricorsione Procedure e funzioni ricorsive. Definizioni Un oggetto si dice ricorsivo se è definito totalmente o parzialmente in termini di sé stesso La.
Procedure e funzioni ricorsive
Introduzione al linguaggio C
Anno accademico Array e puntatori in C.
La ricorsione Simulazione. Il Main /* Programma che usa una funzione ricorsiva*/ #include #define MAX_N 8 main() int valore, dato; printf(Introduci n:
ESERCITAZIONE N. 5 ESERCIZIO N. 1 Autore: Biagio Brattoli S I Corso.
INFORMATICA Strutture iterative
INTRODUZIONE ALLA PROGRAMMAZIONE STRUTTURATA
APPUNTI SUL LINGUAGGIO C
Esercizi FUNZIONI Passaggio di parametri per valore, variabili e tipi locali e globali, prototipo.
Politecnico di Milano Esercizi Preparazione alla prima prova intermedia.
Le funzioni.
In molti casi è utile assegnare a degli identificatori dei valori che restino costanti durante tutto il programma e che non possano essere cambiati nemmeno.
Il linguaggio C Le funzioni C Language Il passaggio dei parametri
Massimo Comun Divisore
Radice quadrata di un numero
14 marzo 2002 Avvisi:.
Università degli Studi di BresciaA.A. 2012/2013 Fondamenti di Programmazione Docente: Alessandro SaettiA.A. 2012/2013 Università degli Studi di Brescia.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algebra di Boole ed elementi di logica Marco D. Santambrogio – Ver. aggiornata.
Flusso Statico e Dinamico 20/03/2006. Codice da Interpretare int valore; valore = funz(); if( valore > 0 ) { [codice1] } else { [codice2] } return valore;
Strutture di controllo Esercizi!. Utilizzare i metodi: I modi per poter richiamare un metodo, di una classe (ad esempio SavitchIn) sono due. 1) E’ sempre.
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (II) Istruzioni e strutture di controllo.
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
STRUTTURA DI UN PROGRAMMA C In prima battuta, la struttura di un programma C è definita dalla seguente produzione: ::= { }
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
L’ELABORATORE ELETTRONICO uno strumento in grado di eseguire insiemi di azioni (“mosse”) elementari le azioni vengono eseguite su oggetti (dati) per produrre.
1 Laboratorio di Programmazione di Sistema - C Susanna Pelagatti Ricevimento: Me ,
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 24 Agosto 2015.
Conio.h contiene la dichiarazione di funzioni usate per richiamare alcune routine DOS di gestione del video e della tastiera. NECESSARIA PER system(‘’cls’’)
Un semplice programma C /* Programma che stampa un saluto */ #include main() { printf(“Hello World!\n”); }
Esercitazioni di Prog. II (esercizi su alberi ennari)
Introduzione al linguaggio C
MASSIMO COMUNE DENOMINATORE (M.C.D)
Dal problema al processo risolutivo
IL CONCETTO DI ALGORITMO
SWITCH – CASE LINGUAGGIO C.
Calcolo dell’arcoseno col metodo dicotomico
CICLO DO – WHILE LINGUAGGIO C.
Dal problema al programma
TERNE PITAGORICHE Obiettivi dell’esercitazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Linguaggio C++ Selezione.
Strutture di Controllo
Secondo Programma in C.
Programmazione e Laboratorio di Programmazione
Esempi di algoritmi.
Linearizzazione di un sensore
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Alberi n-ary Lezioni di C.
APPUNTI SUL LINGUAGGIO C
APPUNTI SUL LINGUAGGIO C Esercizi sugli array e strutture
La struttura dei primi programma in C
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Fondamenti di Informatica
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Transcript della presentazione:

Linearizzazione di un sensore

Il problema: Si vuole linearizzare un sensore di temperatura, che fornisce un'uscita tra 0 e 100 mV, mediante una spezzata. Sperimentalmente sono stati trovati i seguenti punti di ginocchio della spezzata: (20 mV, 15 gradi), (55 mV, 27 gradi). Inoltre a 0 mV si fa corrispondere 0 gradi e a 100 mv 35 gradi. Realizzare un programma che permetta di introdurre da tastiera un valore di tensione fornito dal sensore, calcoli e stampi il valore di temperatura espresso in gradi. L'elaborazione deve avvenire operando con gli interi con la massima precisione possibile.

Studio del problema nel suo dominio specifico T ( °C) 35 T3 27 T2 15 T1 0 T0 V ( mV) V0 V1 20 V2 55 V3 100

Individuo un passo importante Mi pongo in una situazione intermedia. Se si introduce una tensione V, ricado in uno dei triangoli: V1 20 V2 55 V3 100 V T 15 T1 27 T2 35 T3 V0 0T0 T V

Individuo un passo importante (2) Isolando il triangolo, e generalizzando: Ti T Ti-1 Vi-1 V Vi Per le proprietà dei triangoli rettangoli, vale la seguente proporzionalità:

Individuo un passo importante (3) da cui: Considerazione di programmazione: la formula richiama lo schema A / B * C. Poiché opero con gli interi, devo eseguire prima il prodotto e poi la divisione.

Schema di massima dell’algoritmo risolutivo Leggo la tensione Verifico se la tensione ricade tra gli estremi V0 e V3, altrimenti non posso operare Controllo in quale segmento ricado, e carico sulle opportune variabili i valori di ginocchio Eseguo l’elaborazione secondo la formula Stampo il risultato

Tensione ≥ V0 AND Tensione ≤ V3 Calcola “Temperatura” Temperatura = y1 + ( Tensione – x1 ) * ( y2 – y1 ) / ( x2 – x1 ) ; V0 = 0; T0 = 0; V1 = 20; T1 = 15; V2 = 55; T2 = 27; V3 = 100; T3 = 35; Start Leggo ”Tensione” V Tensione ≥ V0 AND Tensione ≤ V3 F Tensione ≤ V1 V F Tensione ≤ V2 F V x1= V0 x2 = V1 y1 = T0 y2 = T1 x1 = V1 x2 = V2 y1 = T1 y2 = T2 x1 = V2 x2 = V3 y1 = T2 y2 = T3 Calcola “Temperatura” Stampa “Temperatura” Stampa “Errore” Stop

Programma in linguaggio C: #include <stdio.h> #include <stdlib.h> #define V0 0 #define T0 0 #define V1 20 #define T1 15 #define V2 55 #define T2 27 #define V3 100 #define T3 35 int main() { int tensione; int temperatura; int x1; int x2; int y1; int y2; printf("Fornire un'uscita in tensione tra i 0 mV e i 100 mV: "); scanf("%d", &tensione);

if ( (tensione >= V0) && (tensione <= V3) ) { if (tensione <= V1) x1=V0; x2=V1; y1=T0; y2=T1; } else if (tensione <= V2) x1=V1; x2=V2; y1=T1; y2=T2; x1=V2; x2=V3; y1=T2; y2=T3; temperatura = y1 + (tensione-x1)*(y2-y1)/(x2-x1); printf("Il valore della temperatura corrispondente a questa tensione %d mV e' %d C\n", tensione, temperatura); printf("Errore. Inserire un'uscita in tensione compresa tra i 0 mV e i 100mV\n"); return 0;