Sommario:
- Forniture
- Passaggio 1: Schema del circuito
- Passaggio 2: codifica
- Passaggio 3: ottenere valori migliori
Video: Sensore di temperatura fai-da-te con un diodo: 3 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 09:59
Quindi, poiché uno dei fatti sulle giunzioni PN è che la loro caduta di tensione diretta cambia in base alla corrente di passaggio e anche alla temperatura della giunzione, useremo questo per creare un semplice sensore di temperatura economico.
Questa configurazione è comunemente usata in molti circuiti integrati per misurare la sua temperatura interna e molti sensori di temperatura come il famoso LM35 che si basa su questa proprietà.
Semplicemente la caduta di tensione diretta di un diodo (che è una singola giunzione PN) cambia al variare della quantità di corrente che lo attraversa, inoltre al variare della temperatura del diodo cambierà la caduta di tensione (all'aumentare della temperatura, diminuisce di un valore di (da 1,0 milliVolt a 2,0 milliVolt per i diodi al silicio e 2,5 milliVolt per i diodi al germanio).
Quindi, facendo passare una corrente costante attraverso il diodo, la caduta di tensione diretta dovrebbe ora variare solo in base alla temperatura del diodo. Ora dobbiamo solo misurare la tensione diretta del diodo, applicare alcune semplici equazioni e voilà ecco il tuo sensore di temperatura !!!
Forniture
1 - Diodo 1n4007 #12 - Resistenza 1 Kohm #13 - Scheda Arduino
Passaggio 1: Schema del circuito
Come puoi vedere nello schema è molto semplice. collegando il diodo in serie con un resistore di limitazione di corrente e una sorgente di tensione stabile possiamo ottenere una sorgente di corrente costante grezza, quindi la tensione misurata attraverso il diodo varierà solo a causa del cambiamento di temperatura. Assicurati che il valore del resistore non sia troppo basso che molta corrente passa attraverso il diodo e fa un notevole autoriscaldamento nel diodo, inoltre non è un resistore molto alto quindi la corrente che passa non è sufficiente per mantenere una relazione lineare tra la tensione diretta e la temperatura.
un resistore da 1 kilo Ohm con un'alimentazione di 5 V dovrebbe produrre una corrente di diodo di 4 milliAmpere che è un valore sufficiente per questo scopo. I(diodo) = VCC / (serie R + Rdiodo)
Passaggio 2: codifica
Dobbiamo tenere presente che ci sono alcuni valori da modificare nel codice per ottenere risultati migliori come:
1 - VCC_Voltage: poiché il valore di analogRead() dipende dal VCC del chip ATmega, dobbiamo aggiungerlo all'equazione dopo averlo misurato sulla scheda arduino.
2 - V_OLD_0_C: la caduta di tensione diretta del diodo utilizzato a corrente di 4 mA e temperatura di 0 Celsius
3 - Temperature_Coefficient: il gradiente di temperatura del tuo diodo (meglio ricavarlo dal datasheet) oppure puoi misurarlo usando questa equazione:Vnew - Vold = K (Tnew - Told)
dove:
Vnew = caduta di tensione appena misurata dopo il riscaldamento del diodo
Vold = caduta di tensione misurata a una certa temperatura ambiente
Tnew = la temperatura alla quale il diodo è stato riscaldato a
Detto = la vecchia temperatura della stanza a cui Vold è stato misurato
K = Temperature_Coefficient (un valore negativo che varia tra -1,0 e -2,5 milliVolt) Infine è ora possibile caricare il codice e ottenere i risultati della temperatura.
#define Sens_Pin A0 //PA0 per scheda STM32F103C8
doppia V_OLD_0_C = 690.0; //690 mV Tensione diretta a 0 Celsius a 4 mA di corrente di prova
doppio V_NEW = 0; //Nuova tensione diretta a temperatura ambiente a 4 mA corrente di prova double Temperature = 0.0; //Temperatura ambiente calcolata double Temperature_Coefficient = -1.6; //-1.6 mV di variazione per grado Celsius (-2.5 per i diodi al germanio), meglio ottenere dal datasheet del diodo double VCC_Voltage = 5010.0; //Tensione presente al rail 5V dell'arduino in milliVolt (necessaria per una migliore precisione) (3300.0 per stm32)
void setup() {
// inserisci qui il tuo codice di configurazione, da eseguire una volta: pinMode(Sens_Pin, INPUT); Serial.begin(9600); }
ciclo vuoto() {
// inserisci qui il tuo codice principale, per eseguirlo ripetutamente: V_NEW = analogRead(Sens_Pin)*VCC_Voltage/1024.0; // dividere per 4.0 se si utilizza un ADC a 12 bit Temperature = ((V_NEW - V_OLD_0_C)/Temperature_Coefficient);
Serial.print("Temp = ");
Serial.print(Temperatura); Serial.println("C");
ritardo (500);
}
Passaggio 3: ottenere valori migliori
Penso che sia consigliabile avere un dispositivo di misurazione della temperatura affidabile accanto a te quando fai questo progetto.
puoi vedere che c'è un errore evidente nelle letture che possono arrivare a 3 o 4 gradi Celsius, quindi da dove viene questo errore?
1 - potrebbe essere necessario modificare le variabili menzionate nel passaggio precedente
2 - la risoluzione ADC dell'arduino è inferiore a quella di cui abbiamo bisogno per rilevare la piccola differenza di tensione
3 - il riferimento di tensione dell'arduino (5V) è troppo alto per questa piccola variazione di tensione attraverso il diodo
Quindi, se hai intenzione di utilizzare questa configurazione come sensore di temperatura, dovresti essere consapevole che sebbene sia economico e pratico, non è preciso ma può darti un'idea molto buona della temperatura del tuo sistema o è su un PCB o montato su motore in funzione ecc…
Questo istruibile ha lo scopo di utilizzare la minor quantità di componenti possibile, ma se vuoi ottenere i risultati più accurati da questa idea puoi apportare alcune modifiche:
1 - aggiungere alcune amplificazioni e stadi di filtraggio utilizzando amplificatori operazionali come in questo link2 - utilizzare un controller di riferimento analogico interno inferiore come le schede STM32F103C8 con tensione di riferimento analogico di 3,3 Volt (vedi punto 4)3 - utilizzare il riferimento analogico interno di 1,1 V nel arduino ma tieni presente che non puoi collegare più di 1,1 Volt a nessuno dei pin analogici di arduino.
puoi aggiungere questa riga nella funzione di configurazione:
analogReference(INTERNO);
4 - Utilizzare un microcontrollore con ADC a risoluzione più elevata come STM32F103C8 che ha una risoluzione ADC a 12 bit Quindi, in poche parole, questa configurazione basata su Arduino può fornire una buona panoramica sulla temperatura del sistema ma risultati non così accurati (circa 4,88 mV/lettura)
la configurazione STM32F103C8 ti darebbe un risultato abbastanza accurato in quanto ha un ADC a 12 bit più alto e un valore di riferimento analogico più basso di 3,3 V (circa 0,8 mV/lettura)
Bene, è così!!:D
Consigliato:
Sensore del respiro fai-da-te con Arduino (sensore elastico conduttivo a maglia): 7 passaggi (con immagini)
Sensore del respiro fai-da-te con Arduino (sensore elastico a maglia conduttiva): questo sensore fai-da-te assumerà la forma di un sensore elastico a maglia conduttiva. Si avvolgerà attorno al tuo torace/stomaco e quando il tuo torace/stomaco si espande e si contrae, anche il sensore e, di conseguenza, i dati di input che vengono inviati ad Arduino. Così
Driver diodo laser fai da te -- Sorgente di corrente costante: 6 passaggi (con immagini)
Driver diodo laser fai da te || Sorgente di corrente costante: in questo progetto ti mostrerò come ho estratto un diodo laser da un masterizzatore DVD che dovrebbe avere il potere di accendere un fiammifero. Per alimentare correttamente il diodo dimostrerò anche come costruisco una sorgente di corrente costante che fornisca un preciso
Estintore con sensore di temperatura e umidità fai-da-te (Arduino UNO): 11 passaggi
Estintore fai-da-te con sensore di temperatura e umidità (Arduino UNO): questo progetto è stato realizzato per essere utilizzato da chiunque nelle case o nelle aziende come sensore di temperatura e umidità visualizzato su un display LCD e un sensore di fiamma abbinato a un cicalino e una pompa dell'acqua per spegnere un fuoco in caso di emergenza
Interfaccia Arduino con sensore a ultrasuoni e sensore di temperatura senza contatto: 8 passaggi
Interfacciamento Arduino con sensore ad ultrasuoni e sensore di temperatura senza contatto: oggi, Makers, Developers preferisce Arduino per lo sviluppo rapido della prototipazione dei progetti. Arduino è una piattaforma elettronica open source basata su hardware e software di facile utilizzo. Arduino ha un'ottima community di utenti. In questo progetto
SENSORE SUHU DENGAN LCD DAN LED (Realizzazione del sensore di temperatura con LCD e LED): 6 passaggi (con immagini)
SENSOR SUHU DENGAN LCD DAN LED (Making Temperature Sensor With LCD and LED): hai, dico Devi Rivaldi mahasiswa UNIVERSITAS NUSA PUTRA dari Indonesia, di si dica akan bebagi cara membuat sensor suhu menggunakan Arduino dengan Output ke LCD e LED. Ini adalah pembaca suhu dengan desain saya sendiri, dengan sensor ini anda