- Power supply 5V DC menyalakan Arduino Master, Arduino Slave, sensor api, dan relay.
- Arduino Master dan Slave melakukan inisialisasi pin input/output dan komunikasi antar Arduino.
- Sensor api mendeteksi keberadaan nyala api.
- Sinyal sensor dikirim ke Arduino Master sebagai input digital/analog.
-
Jika tidak ada api:
- LED indikator mati.
- Master mengirim perintah OFF ke Slave.
-
Jika api terdeteksi:
- LED indikator menyala.
- Master mengirim perintah ON ke Slave.
- Data perintah dikirim dari Master ke Slave melalui jalur komunikasi yang telah ditentukan.
- Slave menerima perintah dari Master.
- Slave mengaktifkan relay jika perintah ON diterima.
- Relay menghubungkan catu daya ke kipas DC.
- Kipas menyala untuk membantu pendinginan atau pemadaman.
- Sistem terus memantau kondisi sensor api secara real-time.
- Jika api hilang, kipas dan LED akan otomatis mati.
2. Hardware dan Diagram Blok[Kembali]
1. STM32F103C8
Warna | Panjanggelombang [nm] | Material semikonduktor | |
Gallium arsenide (GaAs)Aluminium gallium arsenide (AlGaAs) | |||
610 < λ < 760 | Aluminium gallium arsenide (AlGaAs)Gallium arsenide phosphide (GaAsP)Aluminium gallium indium phosphide (AlGaInP)Gallium(III) phosphide (GaP) | ||
590 < λ < 610 | Gallium arsenide phosphide (GaAsP)Aluminium gallium indium phosphide (AlGaInP)Gallium(III) phosphide (GaP) | ||
570 < λ < 590 | Gallium arsenide phosphide (GaAsP)Aluminium gallium indium phosphide (AlGaInP)Gallium(III) phosphide (GaP) | ||
500 < λ < 570 | Indium gallium nitride (InGaN) / Gallium(III) nitride (GaN)Gallium(III) phosphide (GaP)Aluminium gallium indium phosphide (AlGaInP)Aluminium gallium phosphide (AlGaP) | ||
450 < λ < 500 | Zinc selenide (ZnSe)Indium gallium nitride (InGaN) | ||
400 < λ < 450 | Indium gallium nitride (InGaN) | ||
multiple types | Dual blue/red LEDs, blue with red phosphor, or white with purple plastic | ||
λ < 400 | Diamond (235 nm) Boron nitride (215 nm) Aluminium nitride (AlN) (210 nm) Aluminium gallium nitride (AlGaN)Aluminium gallium indium nitride (AlGaInN) – (down to 210 nm) | ||
multiple types | Blue with one or two phosphor layers: yellow with red, orange or pink phosphor added afterwards, or white with pink pigment or dye. | ||
White | Broad spectrum | Blue/UV diode with yellow phosphor |
Bagian bagian
Komponen LED tampak seperti lampu yang dipakai dalam sebuah rangkaian elektronika, walaupun sejatinya dia adalah Diode yang berpendar.
Yang harus diperhatikan adalah kaki sebuah LED, dibuat berbeda panjangnya.
Kaki yang panjang menunjukkan kutub positif, sementara yang pendek menunjukkan kutub negatif
3. Resistor
.jpeg)
4. FAN
1. Pengertian Fan
Fan atau kipas angin adalah alat mekanik yang
berfungsi untuk mengalirkan udara dengan cara memutar baling-baling
menggunakan tenaga listrik atau mekanik. Fan banyak digunakan untuk pendinginan,
sirkulasi udara, dan pembuangan panas pada peralatan maupun
ruangan.
2. Fungsi Fan
Fan memiliki beberapa fungsi utama, antara lain:
- Sirkulasi
udara agar udara dalam ruangan tidak pengap.
- Pendinginan
pada peralatan elektronik (komputer, power supply, inverter).
- Pembuangan
panas pada mesin atau panel listrik.
- Ventilasi
untuk membuang udara kotor atau gas tertentu.
- Kenyamanan
manusia, terutama pada kipas angin rumah tangga.
3. Prinsip Kerja Fan
Fan bekerja berdasarkan prinsip perbedaan tekanan udara.
Saat motor listrik berputar, baling-baling ikut berputar dan mendorong udara
dari satu sisi ke sisi lainnya. Dorongan ini menyebabkan:
- Tekanan
udara di depan kipas menjadi lebih tinggi.
- Tekanan
udara di belakang kipas menjadi lebih rendah.
Akibatnya, udara mengalir dari daerah bertekanan rendah ke
daerah bertekanan tinggi, sehingga terjadi aliran udara.
4. Bagian-Bagian Utama Fan
Beberapa komponen utama pada fan adalah:
- Motor
listrik – sumber penggerak kipas.
- Baling-baling
(blade) – mendorong dan mengalirkan udara.
- Poros
(shaft) – menghubungkan motor dengan baling-baling.
- Rangka
/ casing – pelindung dan penopang komponen.
- Pelindung
(grill) – melindungi pengguna dari baling-baling.
- Saklar
/ pengatur kecepatan – mengatur ON/OFF dan kecepatan putaran.
5. Jenis-Jenis Fan
Berdasarkan arah aliran udaranya, fan dibagi menjadi:
- Fan
Aksial
Udara mengalir sejajar dengan poros kipas. Contoh: kipas angin meja, kipas komputer. - Fan
Sentrifugal (Radial)
Udara masuk dari tengah dan keluar ke samping. Contoh: blower AC, exhaust industri. - Fan
Cross Flow
Udara mengalir melintang, sering digunakan pada AC dan pendingin elektronik.
Spesifikasi Sensor Cahaya LDR
1. Supply : 3.3 V – 5 V (arduino available)
2. Output Type: Digital Output (0 and 1)
3. Inverse output
4. Include IC LM393 voltage comparator
5. Sensitivitasnya dapat diatur
6. Dimensi PCB size: 3.2 cm x 1.4 cm
Modul sensor cahaya ini memudahkan Anda dalam menggunakan sensor LDR (Light Dependent Resistor) untuk mengukur intensitas cahaya. Modul LDR ini memiliki pin output analog dan pin output digital dengan label AO dan DO pada PCB. Nilai resistansi LDR pada pin analog akan meningkat apabila intensitas cahaya meningkat dan menurun ketika intensitas cahaya semakin gelap. Pada pin digital, pada batas tertentu DO akan high atau low, yang dikendalikan sensitivitas nya menggunakan on-board potensiometer.
• Input Voltage: DC 3.3V - 5V
• Output: Digital - Sensitivitas bisa diatur, dan analog
• Ukuran PCB : 33 mm x 15 mm
LDR atau Light Dependent Resistor merupakan salah satu komponen jenis resistor dengan nilai resistansi yang terus berubah sesuai intensitas cahaya yang mengenai sensor. Semakin banyak cahaya yang mengenai sensor LDR, maka akan semakin menurun nilai resistansinya. Nah, semakin sedikit cahaya yang mengenai sensor (gelap), maka nilai resistansinya akan semakin besar, jadi arus listrik yang mengalir akan terhambat.
Pada umumnya, sensor LDR mempunyai nilai resistansi sebesar 200 KOhm di tengah kegelapan dan akan turun menjadi 500 Ohm saat terkena banyak cahaya. Oleh karena itu, menjadi hal biasa apabila komponen elektronika yang peka cahaya ini sering digunakan untuk lampu alarm, kamar tidur, penerangan jalan dan lain sebagainya.
LDR memiliki peran sebagai sensor cahaya di dalam aneka rangkaian elektronika seperti saklar otomatis berdasarkan cahaya. Jadi jika sensor terkena cahaya, maka arus listrik akan mengalir (ON) dan jika sensor berada di dalam kondisi minim cahaya alias gelap, maka aliran listrik akan terhambat (OFF). LDR sering digunakan untuk sensor lampu kamar tidur, penerangan jalan otomatis, alarm dan lain sebagainya
- Input voltage: ac 100~240v / dc 10~30v
- Output voltage: dc 1~35v
- Max. Input current: dc 14a
- Charging current: 0.1~10a
- Discharging current: 0.1~1.0a
- Balance current: 1.5a/cell max
- Max. Discharging power: 15w
- Max. Charging power: ac 100w / dc 250w
- Jenis batre yg didukung: life, lilon, lipo 1~6s, lihv 1-6s, pb 1-12s, nimh, cd 1-16s
- Ukuran: 126x115x49mm
- Berat: 460gr

Prinsip kerja push button pada dasarnya adalah untuk menghubungkan dan memutuskan aliran listrik. Namun, tombol tekan tidak memiliki kunci dan akan kembali ke posisi semula setelah ditekan.
Ketika tombol tekan ditekan, nilainya menjadi HIGH dan mengalirkan arus listrik. Namun, setelah dilepas, tombol akan bernilai LOW dan memutuskan arus listrik.
Namun, bagaimana tombol tekan bekerja bisa berbeda tergantung dari jenis tombol tersebut, apakah itu NO atau NC.
Oleh karena itu, penting untuk memahami konsep dasar dan spesifikasi dari tombol tekan yang akan digunakan pada setiap proyek.
3. Rangkaian Simulasi dan Prinsip Kerja[Kembali]
Rangkaian Simulasi :
Prinsip Kerja :
Sistem ini bekerja dengan memanfaatkan sensor LDR (Light Dependent Resistor) sebagai pendeteksi intensitas cahaya yang dihasilkan oleh sumber tertentu, seperti nyala api atau cahaya terang. Perubahan intensitas cahaya akan menyebabkan nilai resistansi LDR berubah, kemudian dikonversi menjadi sinyal tegangan dan dibaca oleh Arduino Nano yang berperan sebagai Master. Arduino Master mengolah data dari sensor LDR untuk menentukan kondisi sistem. Apabila intensitas cahaya yang diterima LDR melebihi ambang batas yang telah ditentukan, Arduino Master akan menyalakan LED sebagai indikator dan mengirimkan sinyal perintah ke Arduino Nano Slave melalui jalur komunikasi. Arduino Slave kemudian menerima perintah tersebut dan mengaktifkan modul relay, sehingga kipas DC dapat menyala untuk melakukan pendinginan atau respons otomatis terhadap kondisi cahaya yang terdeteksi. Sebaliknya, jika intensitas cahaya berada di bawah ambang batas, Arduino Master akan mematikan LED dan mengirimkan perintah untuk menonaktifkan relay, sehingga kipas DC dalam keadaan mati. Proses ini berlangsung secara terus-menerus sehingga sistem mampu bekerja secara real-time dan otomatis.
4. Flowchart dan LIsting Program[Kembali]
Flowchart
MASTER
Listing Program :
#include "main.h"
ADC_HandleTypeDef hadc1;
SPI_HandleTypeDef hspi1;
uint8_t txData[2];
uint32_t ldrValue;
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_ADC1_Init(void);
static void MX_SPI1_Init(void);
/*=========================================================*/
uint32_t Read_LDR(void)
{
HAL_ADC_Start(&hadc1);
HAL_ADC_PollForConversion(&hadc1,100);
return HAL_ADC_GetValue(&hadc1);
}
/*=========================================================*/
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_ADC1_Init();
MX_SPI1_Init();
while (1)
{
ldrValue = Read_LDR();
if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0)==GPIO_PIN_RESET)
txData[0] = 1;
else
txData[0] = 0;
if(ldrValue < 1500)
txData[1] = 1;
else
txData[1] = 0;
HAL_SPI_Transmit(&hspi1, txData, 2, 100);
HAL_Delay(200);
}
}
/*=========================================================*/
void SystemClock_Config(void)
{ }
/*=========================================================*/
static void MX_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
GPIO_InitStruct.Pin = GPIO_PIN_0;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
}
/*=========================================================*/
static void MX_ADC1_Init(void)
{
ADC_ChannelConfTypeDef sConfig = {0};
hadc1.Instance = ADC1;
hadc1.Init.ScanConvMode = ADC_SCAN_DISABLE;
hadc1.Init.ContinuousConvMode = DISABLE;
hadc1.Init.DiscontinuousConvMode = DISABLE;
hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;
hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT;
hadc1.Init.NbrOfConversion = 1;
HAL_ADC_Init(&hadc1);
sConfig.Channel = ADC_CHANNEL_9;
sConfig.Rank = ADC_REGULAR_RANK_1;
sConfig.SamplingTime = ADC_SAMPLETIME_71CYCLES_5;
HAL_ADC_ConfigChannel(&hadc1, &sConfig);
}
/*=========================================================*/
static void MX_SPI1_Init(void)
{
hspi1.Instance = SPI1;
hspi1.Init.Mode = SPI_MODE_MASTER;
hspi1.Init.Direction = SPI_DIRECTION_2LINES;
hspi1.Init.DataSize = SPI_DATASIZE_8BIT;
hspi1.Init.CLKPolarity = SPI_POLARITY_LOW;
hspi1.Init.CLKPhase = SPI_PHASE_1EDGE;
hspi1.Init.NSS = SPI_NSS_HARD_OUTPUT;
hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;
hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB;
hspi1.Init.TIMode = SPI_TIMODE_DISABLE;
hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
hspi1.Init.CRCPolynomial = 7;
HAL_SPI_Init(&hspi1);
}
#include "main.h"
SPI_HandleTypeDef hspi1;
uint8_t rxData[2];
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_SPI1_Init(void);
/*=========================================================*/
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_SPI1_Init();
while (1)
{
HAL_SPI_Receive(&hspi1, rxData, 2, HAL_MAX_DELAY);
if(rxData[0]==1)
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_SET);
else
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_RESET);
if(rxData[1]==1)
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_RESET);
else
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_SET);
}
}
/*=========================================================*/
void SystemClock_Config(void)
{ }
/*=========================================================*/
static void MX_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0|GPIO_PIN_1,
GPIO_PIN_RESET);
GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
}
/*=========================================================*/
static void MX_SPI1_Init(void)
{
hspi1.Instance = SPI1;
hspi1.Init.Mode = SPI_MODE_SLAVE;
hspi1.Init.Direction = SPI_DIRECTION_2LINES;
hspi1.Init.DataSize = SPI_DATASIZE_8BIT;
hspi1.Init.CLKPolarity = SPI_POLARITY_LOW;
hspi1.Init.CLKPhase = SPI_PHASE_1EDGE;
hspi1.Init.NSS = SPI_NSS_HARD_INPUT;
hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB;
hspi1.Init.TIMode = SPI_TIMODE_DISABLE;
hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
hspi1.Init.CRCPolynomial = 7;
HAL_SPI_Init(&hspi1);
}
1. Download HTML [disini]
2. Download Rangkaian Proteus [klik disini]
3. Download Vidio Rangkaian [disini]
4.Download Vidio Demo [tekan disini]
5. Download Datasheet Sensor:
- datasheet Sensor LDR [disini]
6. Download library Komponen:
- library Sensor LDR [disini]
7. Download datasheet Motor [disini]
8. Download datasheet Led [disini]
9. Download listing program [disini]
10. Download data sheet stm32 [disini]
11. Download LA [disini]





