Nota

Ciao, benvenuto nella Community di appassionati di Raspberry Pi, Arduino e ESP32 di SunFounder su Facebook! Approfondisci le tue conoscenze su Raspberry Pi, Arduino e ESP32 insieme ad altri appassionati.

Perché unirti a noi?

  • Supporto esperto: Risolvi i problemi post-vendita e affronta le sfide tecniche con l’aiuto della nostra community e del nostro team.

  • Impara e condividi: Scambia consigli e tutorial per migliorare le tue competenze.

  • Anteprime esclusive: Ottieni accesso anticipato alle novità sui prodotti e anteprime speciali.

  • Sconti speciali: Godi di sconti esclusivi sui nostri prodotti più recenti.

  • Promozioni festive e giveaway: Partecipa a concorsi e promozioni durante le festività.

👉 Sei pronto a esplorare e creare con noi? Clicca su [Qui] e unisciti oggi stesso!

2.2.2 Termistore

Nota

../_images/mcp3008_and_adc0834.jpg

A seconda della versione del tuo kit, identifica se hai ADC0834 o MCP3008 e procedi con la sezione corrispondente.

Introduzione

Proprio come il fotorisistore può rilevare la luce, il termistore è un dispositivo elettronico sensibile alla temperatura che può essere utilizzato per realizzare funzioni di controllo della temperatura, come ad esempio la creazione di un allarme di calore.

Componenti necessari

In questo progetto, abbiamo bisogno dei seguenti componenti.

../_images/list_2.2.2_thermistor.png

È sicuramente conveniente acquistare un kit completo, ecco il link:

Nome

OGGETTI IN QUESTO KIT

LINK

Raphael Kit

337

Raphael Kit

Puoi anche acquistarli separatamente dai link sottostanti.

INTRODUZIONE AI COMPONENTI

LINK PER L’ACQUISTO

Scheda di estensione GPIO

ACQUISTA

Breadboard

ACQUISTA

Cavi Jumper

ACQUISTA

Resistore

ACQUISTA

Termistore

ACQUISTA

ADC0834

-

Schema elettrico

../_images/image323.png ../_images/image324.png

Procedure sperimentali

Passo 1: Costruisci il circuito.

../_images/image202.png

Passo 2: Vai alla cartella del codice.

cd ~/raphael-kit/nodejs/

Passo 3: Esegui il codice.

sudo node thermistor.js

Con l’esecuzione del codice, il termistore rileva la temperatura ambientale che verrà stampata sullo schermo una volta completata la calcolazione del programma.

Codice

const Gpio = require('pigpio').Gpio;
const ADC0834 = require('./adc0834.js').ADC0834;

exports.ADC0834 = ADC0834;

const adc = new ADC0834(17, 18, 27);

setInterval(() => {
  adc.read(0).then((value) => {
    var Vr = 5 * value / 255;
    var Rt = 10000 * Vr / (5 - Vr);
    var temp = 1 / ((Math.log(Rt/10000) / 3950)+(1 / (273.15 + 25)));
    var cel = (temp - 273.15).toFixed(2);
    var Fah = (cel * 1.8 + 32).toFixed(2);
    console.log(`Celsius: ${cel} C  Fahrenheit: ${Fah} F\n`);
  }, (error)=>{
    console.log("Error: " + error);
  });
}, 1000);

Spiegazione del Codice

setInterval(() => {
  adc.read(0).then((value) => {
    var Vr = 5 * value / 255;
    var Rt = 10000 * Vr / (5 - Vr);
    var temp = 1 / ((Math.log(Rt/10000) / 3950)+(1 / (273.15 + 25)));
    var cel = (temp - 273.15).toFixed(2);
    var Fah = (cel * 1.8 + 32).toFixed(2);
    console.log(`Celsius: ${cel} C  Fahrenheit: ${Fah} F\n`);
  }, (error)=>{
    console.log("Error: " + error);
  });
}, 1000);

Possiamo leggere il value del termistore attraverso l’istruzione adc.read(0).then((value) => {...})

var Vr = 5 * value / 255;
var Rt = 10000 * Vr / (5 - Vr);
var temp = 1 / ((Math.log(Rt/10000) / 3950)+(1 / (273.15 + 25)));
var cel = (temp - 273.15).toFixed(2);
var Fah = (cel * 1.8 + 32).toFixed(2);
console.log(`Celsius: ${cel} C  Fahrenheit: ${Fah} F\n`);

Queste operazioni convertono il valore del termistore in una temperatura in gradi Celsius.

var Vr = 5 * value / 255;
var Rt = 10000 * Vr / (5 - Vr);

Queste due righe di codice servono a calcolare la distribuzione della tensione dai valori letti, ottenendo Rt (resistenza del termistore).

var temp = 1 / ((Math.log(Rt/10000) / 3950)+(1 / (273.15 + 25)));

Questo codice si riferisce alla sostituzione di Rt nella formula TK=1/(ln(RT/RN)/B+1/TN) per ottenere la temperatura in gradi Kelvin.

var cel = (temp - 273.15).toFixed(2);

Questa parte serve a convertire la temperatura in gradi Kelvin in gradi Celsius con due cifre decimali.

var Fah = (cel * 1.8 + 32).toFixed(2);

Questa parte converte i gradi Celsius in gradi Fahrenheit con due cifre decimali.

console.log(`Celsius: ${cel} C  Fahrenheit: ${Fah} F\n`);

Stampa i gradi Celsius, Fahrenheit e le loro unità sul terminale.

Immagine del fenomeno

../_images/image203.jpeg