Creazione di un ventilatore a temperatura controllata
Normalmente per cambiare la velocità della ventola c'è una manopola designata per il controllo della velocità della ventola e può essere regolata manualmente. Tuttavia, possiamo rendere la velocità della ventola dipendente dalla temperatura di un'area. Quindi, la velocità della ventola si regolerà automaticamente quando la temperatura di quell'area cambia. I componenti che abbiamo usato per la creazione di un ventilatore a temperatura controllata sono:
Quindi, lo schema per il circuito di controllo della velocità della ventola rispetto alla temperatura è dato come:
Assemblaggio hardware per la creazione di una ventola a temperatura controllata utilizzando Arduino Uno
L'immagine pubblicata di seguito mostra le connessioni di ciascun componente interfacciate con Arduino Uno.
I fili rosa collegano l'LCD con Arduino Uno e il filo grigio collega il potenziometro con LCD per controllare la luminosità del LCD.
Inoltre, abbiamo collegato il sensore di temperatura direttamente sui pin di Arduino per evitare qualsiasi distorsione nell'uscita del sensore. Per collegare i componenti con l'alimentazione abbiamo usato i 5 volt e il terreno dell'Arduino.
Codice Arduino per la ventola controllata da temperatura
Di seguito è riportato il codice Arduino compilato per il controllo della ventola in base ai valori di temperatura:
#include // libreria per LCD
LiquidCrystal LCD (9,8,5,4,3,2); // Pin Arduino per il LCD
int vcc = a0; // fornitura di pin A0 di LM35
int vout = a1; // pin A1 per l'uscita di LM35
int gnd = a2; // PIN A2 per l'uscita di LM35
valore int; // variabile utilizzata per archiviare i valori provenienti dal sensore
int fan = 11; // Il pin in cui la ventola è collegata su Arduino
int tempmin = 86; // la temperatura per iniziare la ventola
int tempmax = 127; // la temperatura massima
Int FanSpeed; // Variabile per forte la velocità della ventola
INT FANLCD; // Variabile per visualizzare la velocità della ventola percentuale su LCD
int tempc; // temperatura in grado Celsius
int tempf; // temperatura in Fahrenheit
void setup ()
// Assegnazione delle modalità ai pin Arduino assegnati
pinMode (ventola, output);
pinMode (VCC, output);
pinMode (vout, input);
pinMode (GND, output);
// Assegnazione degli stati al VCC e pin di terra utilizzati per LM35
DigitalWrite (VCC, High);
DigitalWrite (GND, basso);
LCD.Inizia (16,2); // Inizializzazione delle dimensioni di LCD
Seriale.Inizia (9600); // Inizializzazione della comunicazione seriale
LCD.setCursor (0, 0); // Impostazione del luogo per i dati su LCD
LCD.print ("Arduino Fan"); // Dati da visualizzare
LCD.setCursor (0, 1); // Impostazione del luogo per i dati su LCD
LCD.print ("Speed Control"); // Dati da visualizzare
ritardo (3000); // ora per il quale verranno visualizzati i dati
void loop ()
LCD.Clear (); // Clearing the LCD
tempf = temperatura (); /*Chiamando la funzione di temperatura per ottenere il valore della temperatura in Fahrenheit*/
Seriale.Stampa (tempf); // Visualizzazione della temperatura in Fahrenheit
if (tempf = tempmin) && (tempf <= tempMax)) /* if temperature is higher than minimum temp and less than the maximum temperature then */
FanSpeed = tempf; // Dai alla velocità della ventola il valore di tempf
fanlcd = map (tempf, tempmin, tempmax, 0, 100); /*ridimensionando la velocità della ventola per visualizzarla su LCD usando la funzione mappa da 0 a 100*/
AnalogWrite (Fan, FanSpeed); // Assegnazione del valore al pin del ventilatore
LCD.print ("temperatura:"); // Visualizzazione dei dati
LCD.print (tempf); // Visualizza la temperatura in Fahrenheit
LCD.print ("f");
LCD.setCursor (0,1); // Definizione del luogo dei dati successivi da visualizzare
LCD.print ("Velocità della ventola:"); // Visualizzazione dei dati
LCD.print (fanlcd); // Visualizza la velocità della ventola
LCD.print ("%"); // Visualizzazione dei dati
ritardo (200); // ora per il quale i dati verranno visualizzati su LCD
LCD.Clear (); // Clearing the LCD
int temperatura () // Nome funzione
value = analogread (vout); // leggendo il valore del sensore
tempc = valore*0.48828125; // conversione i valori del sensore in laurea Celsius
return tempf = tempc*9/5+32; // Convertendo i valori in Fahrenheit
Per progettare un ventilatore a temperatura controllata, abbiamo compilato il codice Arduino in modo tale che prima abbiamo definito la libreria di LCD e assegnato i pin Arduino per il LCD. Successivamente, abbiamo definito variabili e i rispettivi pin Arduino per il sensore di temperatura e la ventola per interfacciarli con Arduino Uno.
Dato che stiamo prendendo la temperatura in Fahrenheit, abbiamo anche definito i limiti minimi e massimi per la temperatura che va da 86 Fahrenheit a 127 Fahrenheit.
Nella funzione di configurazione prima, abbiamo assegnato le modalità pin ai pin Arduino definiti in precedenza e quindi al VCC e al perno di terra del sensore di temperatura. Successivamente, le dimensioni del LCD vengono inizializzate e il nome del progetto viene visualizzato sul LCD.
Nella funzione Loop prima la funzione di temperatura viene chiamata per ottenere il valore della temperatura e quindi se la condizione viene utilizzata per verificare se la temperatura è inferiore alla temperatura minima. In questo caso la ventola non girerà, quindi c'è un'altra condizione se usa e operazioni e controlla se la temperatura è tra l'intervallo dato della temperatura.
Abbiamo usato il funzione mappa Per ridimensionare la velocità della ventola con i valori di temperatura nell'intervallo da 0 a 100 e quindi quel valore viene dato al perno Arduino della ventola utilizzando AnalogWrite () funzione e fa ruotare la ventola a una velocità.
Quindi i dati per la temperatura e la velocità della ventola vengono visualizzati sul LCD utilizzando il LCD.stampa() funzione. Inoltre, per convertire i valori del sensore in grado Celsius abbiamo usato la scala di 0.01V Aumento della tensione per grado Centigrado.
Quindi, se la tensione è di 1 volt, la temperatura sarà di 100 gradi, quindi qui per il sensore, abbiamo un massimo di 5 volt, quindi la temperatura sarà di 500 su 5 volt. Tuttavia, il valore analogico massimo per il sensore è 1023, il che significa 5 volt e per questo abbiamo diviso la temperatura massima per valore analogico massimo. Abbiamo anche convertito la temperatura in Fahrenheit e il concetto di conversione può essere ulteriormente chiaro dalla tabella seguente:
Variazione per grado Celsius = (temperatura massima/valore analogico massimo);
0.488 = (500/1023);
Temperatura in gradi = valore analogico*0.488;
Temperatura in Fahrenheit = temperatura in gradi*9/5+32;
Simulazione
Qui in questo progetto, abbiamo creato una simulazione nel software Porteous. Nella simulazione pubblicata di seguito vediamo che stiamo aumentando la temperatura manualmente. Quindi, la velocità della ventola continua ad aumentare man mano che aumentiamo la temperatura:
Conclusione
Le schede Arduino possono essere utilizzate per realizzare una varietà di progetti fai-da-te e che danno ai principianti una migliore comprensione del funzionamento dei circuiti. Allo stesso modo, per comprendere il funzionamento dei dispositivi possiamo anche creare i loro circuiti in modo molto semplice. In questa guida abbiamo creato un ventilatore automatico che dipende dai valori del sensore di temperatura. I ventilatori controllati a temperatura sono utilizzati principalmente nei dispositivi che richiedono un raffreddamento adeguato ad alte temperature e l'esempio più comune è il PC desktop o i laptop.