35in1 Sensor Kit - Heißleiter Temperatur Sensoren - AZ-Delivery

Il Set comprende due di questi moduli. Entrambi i moduli utilizzano lo stesso conduttore termico. Uno di questi, tuttavia, ha anche un comparatore che, in funzione della regolazione del potenziometro a una determinata temperatura, azzera L'uscita digitale. Amm uscita analogica è disponibile praticamente lo stesso segnale del semplice sensore.

Sensore Semplice

Sensore con comparatore



Curva caratteristica

L'NTC è una resistenza che riduce la resistenza al riscaldamento. Per misurare le temperature con il NTC e non solo a una determinata temperatura, è necessaria la linea di riferimento. Il diagramma mostra il valore di resistenza in kOhm (blu) e il valore basale (1024) letto con analogRead (rosso).);


La tensione di Uscita è lineare in modo discontinuo per mezzo del Divisore di tensione utilizzato.

Determinazione della curva di correzione:

Con un circuito semplice, possiamo cercare di individuare una curva di correzione. A tal fine utilizzeremo il semplice sensore a caldo e il DS18B20 come riferimento. Colleghiamo le PIN medie di entrambi i moduli con +5V sull'Arduino e i – pin di entrambi i moduli con la BND. Colleghiamo il Pin S del modulo NTC con A0 e il Pin s del modulo DS18B20 con D2. Per raggiungere la stessa temperatura per entrambi i sensori, colleghiamo questi come l'immagine che segue.



Ora carichiamo il seguente programma Sull'Arduino. E colleghiamo il Pin 8 sull'Arduino a Ground per bloccare l'edizione.

/ * Questo programma determina la curva di correzione di un NTC
* Scalette calde e testate
* Come riferimento si usa un sensore del tipo DS18B20
*/

#include < OneWire.h>
#include <temperature del DALLAST.h>

// Collegamenti
const byte ds18b20 = 2; // sensore di riferimento
const byte sensor = 0; // sensore da tarare
const byte edizione = 8; // Entrata per sopprimere l'edizione.
const byte led = 13; // messled

// istanze di riferimento sensore DS18B20
OneWire oneWire (ds18b20));
Sensori a temperatura elevata (& oneWire));
DeviceAddress CDR;

//per memorizzare i dati di correzione creiamo una classe
class Korr {
   pubblico:
     int minval; //Valore iniziale di validità
    int maxval; // Valore finale della validità
    fattore float; //Fattore di correzione
    float delta; // Offset relativo

     temperatura variabile (int val)) {
       float temp = float (val) * fattore + delta;
       return temp;
    }
};

// variabili globali
Curva di Korr [20]; // Array con correzione
byte numero = 0; // Numero di correzioni esistenti

byte misura = 1;
float = 0; // valore attuale indicativo
int sens = 0; // valore attuale del sensore

float sollalt = 0; // ultimo valore indicativo
float sens_alt = 0; // ultimo valore del sensore



void setup() {
   /avvia l'interfaccia
   Seriale.begin(115200);
   // Prepara il sensore di riferimento
   sensori.begin();
   sensori.(adr, 0);
   // Dissoluzione a 10 bit;
   sensori.setResolution (CDR, 10);
   //output per led
  pinMode(led, OUTPUT));
  pinMode(output, INPUT_PULLUP));
  misura = 1; /siamo in modalità misurazione
   // una misurazione per i valori di partenza
  Seriale.println ("inizio analisi");
  valori misurati();
   soll_alt = dovrebbe;
   sens_alt = sens;
}

// funzione di lettura dei valori misurati
misurazione void(){
   // Richiedere il valore di riferimento
   sensori.temperature di Request();
   // e leggere dal saggio
   //poiché la tensione diminuisce con L'aumentare della temperatura
   //invertiamo il valore sottraendolo dal valore massimo
  sens = 1024-analogead (sensore));
   // Leggere il valore di riferimento
  SEF = sensori.(Comitato delle regioni));
}


void loop() {
   // indicare le condizioni
   write digitale (led,misura));
   // valori
   valori misurati();
   if (misura) {
   // stiamo verificando se abbiamo raggiunto una certa differenza
   // Capo a 5 °C
   if ((soll_alt) >= 5) {
    Seriale.print("calcolo per: ");
     Seriale.print);
     Seriale.println ("°C");
     curva [numero].minval = sens_alt;
     curva [numero].maxval = sens;
     fattore float = (soll_alt)/float (sens-sens_alt);
    curva [numero].fattore = fattore;
     curva [numero].delta = valore obiettivo (sens * fattore);
     soll_alt = dovrebbe;
     sens_alt = sens;
     numero++;
   }
   if (so > 50) {
     misura = 0;
     Seriale.println ("analisi completata");
     for (byte I = 0; I< Numero; i++) {
       Seriale.print [curva [i].minval);
       Seriale.print(" - ");
       Seriale.print [curva [i].maxval);
       Seriale.print(" - ");
       Seriale.print [curva [i].fattore);
       Seriale.print(" - ");
       Seriale.println [curva [i].delta);
    }
   delay (5000);
  }
# else {
   byte I = 0;
   if (sens > curva[0].minval) {
     while [(sens > curva [i].maxval) && (i< Numero) i++;
  }
   if [digitalRead (output)=1)
   {
      / * Utile per verificare la funzione
     Seriale.print ("trovato: Min = ");
     Seriale.print [curva [i].minval);
     Seriale.print ("Max= ");
     Seriale.print [curva [i].maxval);
     Seriale.print ("fatto= ");
     Seriale.print [curva [i].fattore);
     Seriale.print ("Delta= ");
     Seriale.print [curva [i].delta);
     Seriale.print ("sensore= ");
     Seriale.println (sens));
     */

     float è = curva [i].temperatura (sens));
    Seriale.print ("valori misurati: Soll = ");
     Seriale.print);
    Seriale.print ("Ist= ");
     Seriale.print (è);
     Seriale.print ("deviazione= ");
     Seriale.println);
   }
   delay (1000));
  }
}

Dopo il decollo, il programma è in modalità Analisi, ossia ogni volta che la temperatura è aumentata di 5 °C, la pendenza e L'Offset sono calcolate e memorizzate in una tabella. Ciò avviene fino a quando la temperatura non supera i 50 °C.

Il cambiamento di temperatura è più facile da ottenere con un asciugacapelli. Tuttavia, è importante evitare che il riscaldamento avvenga troppo rapidamente, poiché i due sensori presentano una diversa inerzia.

Quando si raggiunge una temperatura di 50 °C, si visualizza il contenuto della curva di correzione sul Monitor seriale. D'ora in poi, il valore nominale, il valore effettivo e la deviazione possono essere visualizzati. Poiché L'indicatore è stato soppresso (Pin 8) per poter vedere i risultati Dell'analisi, è necessario separare il Pin 8 dalla GND.

I miei tentativi non mi hanno soddisfatto. Il cambiamento di temperatura durante l'analisi potrebbe essere stato troppo rapido.

Goditi la sperimentazione.

ProduktvorstellungenSensoren

Lascia un commento

Tutti i commenti vengono moderati prima della pubblicazione