1. Obiettivo del Circuito
Il circuito rappresenta un classico sistema di condizionamento del segnale per sensori di temperatura. Il suo scopo è prelevare la tensione lineare generata dal sensore, eliminare la componente di offset iniziale e amplificare la variazione restante. In questo modo si ottiene in uscita (Vout) un segnale lineare, ottimizzato e pronto per essere letto con la massima precisione da un microcontrollore o da un sistema di acquisizione dati.
2. Scelta e descrizione dei componenti utilizzati
Resistenze e componenti di taratura:
- Condensatore Polarizzato= è consigliabile usare una bassa capacità, in questo modo è possibile avere una costante di tempo tau non elevata, riuscendo a caricarlo e scaricarlo in modo veloce.
- R1 = 6.8 Ω
- R2 = 2.2 Ω
- R3 = 270 Ω
- Potenziometro = 500 Ω
- Trimmer = 10 kΩ
- R4 = 10 kΩ
- R5 = 47 kΩ
- R6 = 3.3 kΩ
- R7 = 47 kΩ
- R8 = 3.3 kΩ
- R9 = 10 kΩ
- R11 = 1 kΩ
- R12 = 10 kΩ
- R13 = 560 Ω
Le resistenze sono state scelte in base ai calcoli di dimensionamento e rispettando la serie commerciale E12. Tutte le resistenze presentano una tolleranza del ±5%.
3. Descrizione del criterio di progettazione e funzionamento del circuito.
Di seguito c'è lo schema del circuito , che per spiegarlo meglio ho deciso di dividerlo in tre parti:
Schema circuito:
PCB:
simulazione 3D scheda elettronica:
Download file di progetto: Files di KiCad del progetto.zip
Funzionamento
Sensore (2.73V-3.73V): A fini didattici abbiamo riprodotto la tensione uscente da un ipotetico sensore di temperatura che varia da 2.73V a 3.73V, per arrivare a questo risultato utilizzo un partitore di tensione utilizzando la tensione di alimentazione da 6V.
di seguito i calcoli:
Parte 1 : Utilizzo una configurazione differenziale per produrre una tensione di 2.73V da un ingresso di 6 V , la tensione d’uscita poi andrà all'ingresso invertente della Parte 2 del circuito. LM336 viene usato come limitatore di tensione da 2.5V, l’operazionale che utilizzo è un TLV 2372 rail to rail particolarmente comodo perché in questo modo non sono costretto ad alimentarlo in duale con due tensioni di segno opposto ,per l’alimentazione V+ utilizzo 6V mentre per il V- invece 0V.
di seguito i calcoli:
Parte 2: Anche questa parte utilizza una configurazione differenziale , questa volta però è necessario che faccia una sottrazione tra la tensione proveniente dal sensore (2.73V - 3.73V) e la tensione uscente dalla Parte 1 . Però noi vogliamo avere in uscita una tensione da 0V a 5V da far leggere ad Arduino , per questo motivo dobbiamo dimensionare le resistenze per avere un differenziale con amplificazione di 5 , perché la sottrazione pura delle due tensioni darebbe un uscita da 0V a 1V , questo ci porta alla conclusione che per avere una tensione che arrivi fino a 5V abbiamo bisogno di un’amplificazione di 5.
di seguito i calcoli:
4. Interfacciamento con Arduino
L'uscita dell'operazionale (Vout) viene collegata direttamente al pin analogico A0 di Arduino. Il codice acquisisce il valore analogico, lo converte in tensione e mappa il segnale su una scala termometrica lineare dove 0V corrisponde a 0°C e 5V corrisponde a 100°C (1V = 20°C).
int sensore = A0;
float temperatura;
void setup() {
Serial.begin(9600);
}
void loop() {
int valore = analogRead(sensore);
float tensione = valore * (5.0 / 1023.0);
temperatura = tensione * 20; // scala 0-5V -> 0-100°C
Serial.print("Temperatura: ");
Serial.print(temperatura);
Serial.println(" °C");
delay(1000);
}
Note importanti per il cablaggio:
- La tensione in uscita dall'operazionale non deve mai superare i 5V per proteggere i pin di Arduino.
- La massa (GND) di Arduino e del circuito analogico dell'operazionale devono essere rigorosamente collegate insieme (massa comune).
5. Procedimento di taratura e collaudo
- Verificare a circuito spento l'assenza di cortochemici e la corretta continuità di tutte le linee e delle masse comuni.
- Alimentare lo stadio hardware tramite un alimentatore da banco stabilizzato impostato a 6V.
- Utilizzando un multimetro digitale, misurare la tensione di riferimento generata in uscita dalla prima parte del circuito e verificare la stabilità del partitore che simula il sensore.
- Verificare l'escursione dell'uscita finale accertandosi che si attesti nel range dinamico calcolato (da 0V a 5V) al variare degli ingressi.
- Collegare il sistema ad Arduino e monitorare tramite il Serial Monitor la stabilità e la coerenza dei valori di temperatura stampati.