● online
- Max7219 Led Dot Matrix 32x8 Display Module For Ard....
- Resistor 220 Ohm 220R Ohm 220Ohm 1/4W 1% Metal fil....
- Potensiometer 10K - Mono Potensio Meter Linear Res....
- LM35DZ Sensor Suhu - LM35....
- MP3 TF 16P Alternatif DFPlayer mini MP3 Player Ard....
- TP5100 4.2v 8.4v 1S 2S Single / Double Cell Lithiu....
- Power module DC DC 9A 300W Step Down Buck Converte....
- LED 3mm Lampu LED 3 mm....
- Selamat Datang di Indomaker ❯ Silahkan pesan produk sesuai kebutuhan anda, kami siap melayani.
- Selamat Datang di Indomaker ❯ Silahkan pesan produk sesuai kebutuhan anda, kami siap melayani.
Cara Bikin Kipas Angin Otomatis Berbasis Suhu Pakai Arduino Uno dan Sensor LM35
Halo Sobat Indomaker! Apakah Teman-teman pernah merasa terganggu karena harus bolak-balik menyalakan, mematikan, atau mengatur kecepatan kipas angin secara manual? Pengaturan suhu ruangan secara manual sering kali terlambat merespons perubahan suhu lingkungan. Keterlambatan ini tidak hanya bikin suasana ruangan terasa tidak nyaman, tetapi juga bisa menyebabkan pemborosan energi listrik karena kipas terus berputar kencang meski suhu sudah dingin. Nah, buat Sobat yang sebelumnya pernah mencoba membuat proyek otomasi sederhana seperti alat pemantau kelembapan tanah, kali ini kita bakal naik level! Kita akan membuat solusi cerdas berupa Smart Fan Control System berbasis Arduino Uno dan sensor suhu LM35 yang mampu menyesuaikan kecepatan kipas secara otomatis berdasarkan suhu ruangan secara real-time.

Alat dan Bahan
Untuk merakit sistem kipas otomatis ini, berikut adalah komponen hardware yang Teman-teman butuhkan:
| Komponen | Jumlah | Keterangan |
| Arduino Uno | 1 unit | Otak kendali utama untuk mengolah input analog dan menghasilkan output digital/PWM |
| Sensor Suhu LM35 | 1 unit | Input data termal dengan output tegangan linear yang proporsional terhadap suhu (°C) |
| LCD 16×2 | 1 unit | Visualisasi data parameter suhu dan status kipas secara real-time |
| Driver Motor L9110 | 1 unit | H-Bridge driver untuk mengendalikan arus motor DC dan mengatur kecepatan via sinyal PWM |
| Motor DC / Kipas | 1 unit | Aktuator output yang mengubah energi listrik menjadi energi kinetik |
| LED Merah | 1 unit | Indikator status visual saat sistem aktif |
| Resistor 220 Ohm | 1 unit | Sinyal pembatas arus untuk LED indikator |
Skematik Rangkaian dan Arsitektur Pengkabelan

Proses perakitan komponen ini tergolong simpel dan sangat ramah untuk pemula. Berikut adalah arsitektur pengkabelan (wiring) yang perlu Teman-teman hubungkan antara komponen dengan mikrokontroler Arduino Uno:
- Sensor LM35: Pin VCC terhubung ke 5V Arduino, Pin Vout ke Pin Analog A0, dan Pin GND ke Ground.
- LCD 16×2: Pin RS ke Pin 7, Pin E ke Pin 6, Pin D4 ke Pin 5, Pin D5 ke Pin 4, Pin D6 ke Pin 3, serta Pin D7 ke Pin 2. Pin VSS, VEE, dan RW dihubungkan ke Ground, sedangkan Pin VDD terhubung ke 5V.
- Driver Motor L9110 & LED: Pin Input A (IA) driver L9110 terhubung ke Pin 9 (PWM) Arduino untuk mengatur torsi dan kecepatan motor, sedangkan Pin Input B (IB) dihubungkan ke Ground (GND) sebagai acuan arah putaran tunggal motor DC. LED indikator terhubung ke Pin 13 melalui resistor 220 Ohm.
Prinsip Kerja Sensor dan Kendali PWM

Sistem ini beroperasi dengan alur Closed-Loop System. Pertama-tama, sensor LM35 mendeteksi perubahan suhu lingkungan secara real-time. Sensor ini memiliki karakteristik output tegangan linear sebesar 10 mV/°C (0,01 V/°C). Sebagai contoh, jika suhu ruangan terdeteksi 34 °C, maka sensor LM35 akan mengeluarkan tegangan sekitar 340 mV (0,34 V). Untuk mengetahui karakteristik dan spesifikasi LM35 secara lebih lengkap, kamu bisa melihat datasheet LM35 dari Texas Instruments sebagai referensi tambahan.
Tegangan analog dari sensor dikirim melalui pin A0 ke unit ADC (Analog-to-Digital Converter) pada Arduino Uno. Karena mikrokontroler tidak bisa mengolah tegangan analog secara langsung, unit ADC 10-bit memetakan rentang tegangan 0–5V menjadi data digital berentang 0–1023. Pembagian 5.0 / 1023.0 menghasilkan nilai voltase per digit ADC. Nah, mengapa pada program rumus pembacaannya dikalikan 100.0? Karena sensor LM35 menghasilkan 0,01 Volt per 1 °C, maka untuk mengonversi nilai voltase kembali ke satuan Celsius, kita membaginya dengan 0,01 (atau setara dengan mengalikannya dengan 1 / 0,01 = 100). Rumus lengkapnya menjadi:
suhuC = (analogValue * 5.0 / 1023.0) * 100.0
Setelah data suhu diperoleh, Arduino mengevaluasi nilainya berdasarkan logika ambang batas (setpoint) dan mengirimkan sinyal kendali Pulse Width Modulation (PWM) dari pin 9 ke driver motor L9110.
Biar makin kebayang, bayangkan PWM ini seperti gaya Teman-teman saat menginjak pedal gas mobil secara berulang dengan sangat cepat. Ketika pedal gas ditekan penuh 100% (PWM 255), mobil melaju dengan kecepatan maksimal. Jika pedal gas ditekan-lepas secara seimbang (PWM 170 atau 85), kecepatan rata-rata mobil akan melambat sesuai presentase penekanan. Sinyal PWM bekerja dengan cara menyalakan dan mematikan arus ke motor dalam frekuensi tinggi untuk mengatur kecepatan rata-rata kipas tanpa mengurangi kualitas tegangan.
Berikut adalah matriks logika kendali kipas yang diterapkan pada sistem:
| Rentang Suhu | Status LED | Status Kipas | Level Kecepatan |
| Suhu < 30 °C | Mati | OFF (PWM = 0) | Berhenti |
| 30 °C ≤ Suhu < 35 °C | Nyala | ON (PWM = 85) | Low |
| 35 °C ≤ Suhu < 40 °C | Nyala | ON (PWM = 170) | Medium |
| Suhu ≥ 40 °C | Nyala | ON (PWM = 255) | High (Maksimal) |
Kode Program Arduino
Berikut adalah skrip program C/C++ utuh yang digunakan untuk mengendalikan seluruh sistem kipas otomatis:
#include <LiquidCrystal.h>
// Konfigurasi pin
const int lm35Pin = A0;
const int motorPin = 9;
const int ledPin = 13;
// Variabel sistem
float suhuC;
int pwmValue;
// Inisialisasi LCD
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
void setup() {
pinMode(motorPin, OUTPUT);
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
lcd.begin(16, 2);
lcd.print("Smart Fan System");
lcd.setCursor(0, 1);
lcd.print("EK-1C");
delay(2000);
lcd.clear();
}
void loop() {
// Membaca nilai sensor LM35
int analogValue = analogRead(lm35Pin);
// Konversi nilai ADC menjadi suhu Celsius
suhuC = (analogValue * 5.0 / 1023.0) * 100.0;
// Menentukan kecepatan kipas berdasarkan suhu
if (suhuC < 30) {
pwmValue = 0;
}
else if (suhuC >= 30 && suhuC < 35) {
pwmValue = 85;
}
else if (suhuC >= 35 && suhuC < 40) {
pwmValue = 170;
}
else {
pwmValue = 255;
}
// Mengatur kecepatan motor dan LED indikator
analogWrite(motorPin, pwmValue);
digitalWrite(ledPin, pwmValue > 0 ? HIGH : LOW);
// Menampilkan suhu pada LCD
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(suhuC, 1);
lcd.print((char)223);
lcd.print("C");
// Menampilkan status kipas pada LCD
lcd.setCursor(0, 1);
lcd.print("Fan: ");
if (pwmValue == 0) {
lcd.print("OFF ");
}
else if (pwmValue == 85) {
lcd.print("LOW ");
}
else if (pwmValue == 170) {
lcd.print("MED ");
}
else {
lcd.print("HIGH ");
}
// Menampilkan data pada Serial Monitor
Serial.print("Suhu: ");
Serial.print(suhuC);
Serial.print(" C PWM: ");
Serial.println(pwmValue);
delay(1000);
}
Penjelasan Alur Kode Program
- Inisialisasi Pin & Library: Program mengimpor library
LiquidCrystal.huntuk layar LCD dan menentukan alokasi pin I/O (LM35 pada pin A0, motor pada pin 9 PWM, LED pada pin 13, serta LCD pada pin 7, 6, 5, 4, 3, 2). - Fungsi
setup(): Mengatur pin motor dan LED sebagaiOUTPUT, membuka komunikasi serial pada kecepatan 9600 baud, serta menampilkan salam pembuka “Smart Fan System” dan “EK-1C” di LCD selama 2 detik sebelum layar dibersihkan (lcd.clear()). - Pembacaan ADC & Konversi Suhu: Pada fungsi
loop(), mikrokontroler membaca tegangan dari sensor LM35 menggunakananalogRead(lm35Pin)dan menghitung suhu Celsius aktual melalui rumus konversi linier. - Logika Percabangan
if-else: Menentukan besaran nilai PWM (0, 85, 170, atau 255) secara bertingkat sesuai rentang suhu yang terdeteksi. - Output & Tampilan Layar: Perintah
analogWrite()mengirim sinyal PWM ke driver motor, sedangkandigitalWrite()menyalakan LED jika kipas berputar. Perhatikan penulisan string status pada LCD sepertilcd.print("OFF ")danlcd.print("LOW "). Spasi ekstra di akhir kata ini sangat penting untuk menimpa (overwrite) sisa karakter dari kata yang lebih panjang (seperti"HIGH") saat status kipas turun kembali ke status yang lebih pendek, sehingga tampilan layar LCD 16×2 tidak berantakan.
Panduan Simulasi di Proteus dan Troubleshooting
Sebelum merakit komponen secara fisik, sangat disarankan untuk menguji sistem melalui simulasi di software Proteus agar terhindar dari risiko kerusakan hardware akibat kesalahan pengkabelan.
Saat membuat skematik di Proteus, Teman-teman bisa mencari komponen di library menggunakan kata kunci (keyword) spesifik berikut:
- LM35: Sensor suhu analog.
- LM016L: Modul layar LCD 16×2.
- L9110: IC driver motor H-Bridge.
- MOTOR-DC: Aktuator kipas DC.
Langkah Export File .HEX pada Arduino IDE
- Buka menu File > Preferences di aplikasi Arduino IDE.
- Centang opsi compilation dan upload pada bagian Show verbose output during.
- Lakukan proses Verify atau Compile pada skrip program yang telah dibuat.
- Cari jalur file (path) berakhiran
.ino.hexpada konsol output hitam di bagian bawah. - Salin jalur file tersebut dan tempelkan (paste) ke dalam kolom Program File pada menu properti komponen Arduino di Proteus.
Tips Troubleshooting Simulasi
Jika simulasi Proteus tidak berjalan sesuai harapan, lakukan pemeriksaan pada 3 poin krusial berikut:
- Verifikasi Path File .HEX: Pastikan file
.HEXyang ditautkan di Proteus adalah hasil kompilasi terbaru (re-compile) setelah ada perubahan kode. - Pengecekan Jalur Grounding: Pastikan seluruh jalur Ground dari sensor LM35, LCD 16×2, dan driver motor L9110 terhubung penuh pada potensial grounding yang sama.
- Validasi Pin I/O: Pastikan konfigurasi pin I/O pada kode program sudah sesuai dengan jalur fisik pada skematik Proteus.
Kesimpulan dan Pengembangan Lanjutan
Sistem kendali kipas otomatis berbasis suhu yang mengintegrasikan sensor LM35, Arduino Uno, dan driver L9110 terbukti sangat efektif dalam mengelola kecepatan putaran kipas secara real-time. Penggunaan logika kendali bertingkat tidak hanya menjaga kestabilan kenyamanan termal ruangan, tetapi juga menghemat daya listrik secara optimal.
Untuk pengembangan di masa depan, Sobat disarankan untuk menguji sistem ini secara langsung pada hardware fisik guna mengetahui ketahanan komponen terhadap suhu nyata. Selain itu, Teman-teman juga bisa menambahkan komponen audio berupa buzzer sebagai alarm peringatan jika suhu ruangan melampaui batas kritis (> 45 °C).
Cara Bikin Kipas Angin Otomatis Berbasis Suhu Pakai Arduino Uno dan Sensor LM35
Motor jadi salah satu komponen elektronik yang seru buat kita pelajari, dengan motor kita bahkan bisa buat mobil mainan yang... selengkapnya
Pasti Anda semua sudah tahukan apa itu pas foto. Bagi Anda yang belum tahu apa itu pas foto, pas... selengkapnya
Motor servo merupakan salah satu aktuator yang paling sering digunakan dalam dunia robotika, terutama untuk gerakan yang membutuhkan ketelitian posisi.... selengkapnya
Halo, Sobat IoT! Pernahkah kamu merasa ruangan di rumah tiba-tiba terasa lembap sampai tembok berjamur, atau malah sebaliknya, udara jadi... selengkapnya
HK1600B merupakan salah satu sensor tekanan yang mudah kita temukan di pasaran, dengan output analog linear dari 0.5V hingga 4.5V,... selengkapnya
Sobat Maker, pernah nggak sih lagi asik merekam video pakai robot atau drone, eh hasilnya malah goyang-goyang kayak jelly? Masalah... selengkapnya
Hallo, kali ini akan membahas bagaimana cara untuk membuat dimmer menggunakan mosfet D4184 module. Mosfet mempunyai fungsi yaitu untuk... selengkapnya
Halo Sobat Indomaker! Pernah enggak kamu atau anggota keluargamu lupa minum obat sesuai jadwal? Masalah sepele ini dampaknya bisa lumayan... selengkapnya
Computerized Numerical Control (CNC) is a machine based on a stepper motor that can move according to the commands... selengkapnya
Halo Sobat Indomaker! Apakah Teman-teman pernah merasa terganggu karena harus bolak-balik menyalakan, mematikan, atau mengatur kecepatan kipas angin secara manual?... selengkapnya
Menerima jasa cetak PCB FR2 (pertinax) / FR4 (double) single / double layer. Silahkan ke web kalkulator biaya cetak pcb… selengkapnya
Rp 1.000Kabel jumper Dupont untuk jumper Arduino atau Raspeberry Pi 20 cm Female to female 1 lembar = 40 kabel
Rp 11.3001 X LDR Sensor 5mm Cahaya 5528 Light Dependent Resistor LDR
Rp 4.000Spesifikasi : – 16×2 – Warna Biru – Tegangan kerja : 5v Digunakan untuk keperluan display project seperti Arduino, Raspberry,… selengkapnya
Rp 17.000Item Deskripsi : This module performance is stable, measure the distance accurately. performance nearly the same as SRF05, SRF02 SRF05,… selengkapnya
Rp 13.900Bagaimana jika mikrokontroler yang anda gunakan tidak memiliki port ADC. atau anda masih kurang dengan spesifikasi resolusi ADC yang disediakan… selengkapnya
Rp 65.000Ini yang Seri SN – DS3231 I2C RTC Module khusus DS3231SN – Include Baterai – Module jam digital – Keperluan… selengkapnya
Rp 34.900sg90 towerpro penggerak pada robot-robot kecil, dan bisa digunakan sebagai alat untuk hobi membuat robot dsb, dengan berat sekitar 9g… selengkapnya
Rp 15.500Specifications: Operating voltage: DC3-5V Operating current: less than 20mA Sensor Type: Analog Detection Area: 40mmx16mm Production process: FR4 double-sided HASL… selengkapnya
Rp 3.000Cara Bikin Kipas Angin Otomatis Berbasis Suhu Pakai Arduino Uno dan Sensor LM35
Kategori
Artikel Terkait
-
Cara Bikin Sistem Monitoring Getaran Gempa dan Stabilitas Kemiringan Pakai ESP32 dan MPU 6050
-
Cara Bikin Sistem Monitoring Kelembapan Tanah Berbasis Arduino Uno dan Sensor YL69
-
Bikin Sistem Monitor Volume Air Tandon Otomatis Pakai Arduino Uno dan Sensor Ultrasonik
-
Bikin Smart Medicine Box Otomatis Pakai Arduino Nano dan Sensor Suhu DHT11
-
Bikin Sensor Parkir Otomatis Pakai Arduino Uno dan HC SR04

Saat ini belum tersedia komentar.