Anda di halaman 1dari 4

Project Simulasi Pertemuan 12

Pengontrol Suhu Ruangan


Otomatis
Tujuan Proyek ini mempertahankan suhu ruangan dalam [20, 25] derajat
Celcius.

Hal-hal yang digunakan dalam proyek ini

PENGANTAR

Perubahan cuaca menjadi sulit untuk beradaptasi. Artinya, selama Musim Dingin kita
menghadapi kesulitan untuk menahan dingin yang membekukan, dan itulah sebabnya
orang sering lebih suka memakai mantel selama musim dingin. Di sisi lain, cuaca
menjadi terlalu hangat di musim panas. Jadi, setelah memahami operasi switching
transistor, aliran arus searah di dioda, prinsip operasi motor, resistansi dari resistor
yang dikombinasikan dengan kemampuan transformasi transduser, sensor suhu dalam
hal ini, saya ingin meringkas operasi proyek saya sebagai berikut.

1. Jika suhu melebihi maksimum kisaran "diinginkan" yang disebutkan di atas, LCD
akan menampilkan bahwa suhu lebih tinggi dan memberi tahu KIPAS untuk
dihidupkan. Kemudian KIPAS mulai berputar / bergetar, dan setelah beberapa saat
suhu diturunkan dalam kisaran, kemudian LCD memerintahkan KIPAS untuk mati.

2. Setiap kali pembacaan suhu sensor turun di bawah kemungkinan suhu minimum
dalam kisaran tersebut, LCD akan memberitahu bahwa suhu lebih RENDAH dan
memberitahu pemanas untuk dinyalakan, dan setelah suhu berada dalam kisaran
tersebut, itu akan menampilkan bahwa suhu OK dan memerintahkan pemanas untuk
dimatikan.

3. Kondisi terakhir adalah setiap kali suhu berada dalam kisaran yang diinginkan, LCD
memberitahu bahwa suhu normal. Jadi, ia meminta untuk mematikan
semuanya. Kondisi ini dapat, misalnya, diamati jika Anda menjalankan kode dan posisi
slider tetap tidak berubah. Itu memberitahu seseorang bahwa posisi slider default
berada dalam kisaran suhu ruangan yang diinginkan (yaitu defaultnya adalah 24,78
derajat C).

Demikian juga, sistem melakukan iterasi selamanya kecuali jika dihentikan oleh
pengguna karena perilaku fungsi loop ().

SCHEMATIC

/ *
Proyek Pertemuan 12
Kursus: Pemrograman Arduino dan Dasar-dasar Perangkat Keras
dengan Hackster
Judul: Pengatur Suhu Ruangan
Ditulis oleh: Ferri Pardede,M.Kom
Ditulis pada: 29-1-2021
* /

// Deklarasikan / tetapkan pin IO Arduino

const int temp_trans_pin = A0 , Heater_pin = 13 , FAN_pin = 6 ;


/ * FAN_pin: di sini saya menggunakan motor DC sebagai ganti FAN karena
Saya tidak dapat menemukan simbol untuk itu. Demikian pula untuk
Heater (Heater_pin), saya menggunakan LED. * /

// Setel kisaran suhu yang diinginkan

float MinTemp = 20 , MaxTemp = 25 ; / * Suhu kamar [20,25] derajat C * /

// Sertakan kode perpustakaan LCD

#include <LiquidCrystal.h>

// Initialize the library with the numbers of the interface pins

LiquidCrystal LCD(12, 11, 5, 4, 3, 2);

void setup() {

// System initialization

LCD.begin(16, 2);
pinMode(Heater_pin, OUTPUT);//LED in our case
pinMode(FAN_pin, OUTPUT);

// Display the desired range of temperature

LCD.print("Room temp(C):");
LCD.setCursor(2,1);
LCD.print(MinTemp); LCD.print("-");LCD.print(MaxTemp);

delay(2000);
}

void loop() {

float Eqv_volt, SensorTemp;

// Read voltage and convert to temperature (Celsius)

Eqv_volt = analogRead(temp_trans_pin) * 5.0 / 1023;


SensorTemp = 100.0 * Eqv_volt-50.0;

// Display the sensor reading

LCD.clear();
LCD.print("Sensor reading:");
LCD.setCursor(2,1);
LCD.print(SensorTemp); LCD.print(" C");

delay(2000);

/*Compare the sensor reading with the range of


acceptable temperatures*/

if(SensorTemp > MaxTemp){


LCD.clear();
LCD.print("temp is HIGHER!");//higher than the max

/*Turn on FAN (dc motor)! to regulate the temp.


Increase FAN speed at a slow rate*/

LCD.setCursor(0, 1);LCD.print("Turn on FAN!");


for( int i = 0; i <= 255; i++ ) {
analogWrite(FAN_pin, i);
}
delay(2000);

LCD.clear();
LCD.print("Now temp is OK!");
LCD.setCursor(0, 1);
LCD.print("Turn off FAN!");

// Turn off FAN slowly


for( int i = 255; i >= 0; i-- ) {
analogWrite(FAN_pin, i);
}
delay(2000);
}
else if(SensorTemp < MinTemp){
LCD.clear();
LCD.print("temp is LOWER!");//Less than the mini
LCD.setCursor(0, 1);
LCD.print("Turn on HEATER!");

//Turn the heater ON, LED in our case

digitalWrite(Heater_pin, HIGH);

delay(3000);

LCD.clear();
LCD.print("Now temp is OK!");
LCD.setCursor(0, 1);
LCD.print("Turn off HEATER!");

delay(1000);

digitalWrite(Heater_pin, LOW);
LCD.clear();
}
else if(SensorTemp > MinTemp && SensorTemp < MaxTemp){/*Now temperature is perfect.
That is,it is in the desired range. Hence no need of changes!!*/
LCD.clear();
LCD.print("Temp is NORMAL!");LCD.setCursor(2,1);
LCD.print("Turn off all!");

delay(1000);
LCD.clear();
}
else {
LCD.clear();
LCD . print ( "Sesuatu terjadi" );
LCD . setCursor ( 2 , 1 ); LCD . print ( "SALAH di ckt" );
penundaan ( 1000 );
LCD . jelas ();
}
penundaan ( 1000 );
}

Anda mungkin juga menyukai