TP 1 PERCOBAAN 1 KONDISI 6



1. Prosedur [Kembali]

1. Persiapan Alat dan Bahan 

  • Software Proteus Design Suite
  • Mikrokontroler STM32
  • Sensor PIR (Passive Infrared)
  • Touch Sensor
  • LED + Resistor
  • Buzzer
  • Push button
  • Sumber tegangan (VCC & GND)

2. Pembuatan Rangkaian

  1. Buka Proteus, buat proyek baru.
  2. Tambahkan komponen:
    • STM32
    • PIR Sensor
    • Touch Sensor
    • LED, resistor, buzzer, push button
  3. Hubungkan rangkaian:
    • Output PIR → pin input STM32
    • Output Touch Sensor → pin input STM32
    • LED dan buzzer → pin output STM32
    • Semua GND disatukan
    • VCC disesuaikan (5 V)

3. Pembuatan Program

  1. Buat program STM32 menggunakan STM32CubeIDE.
  2. Konfigurasi:
    • Pin PIR dan Touch sebagai GPIO Input
    • Pin LED dan Buzzer sebagai GPIO Output
  3. Logika program:
    • Jika PIR mendeteksi gerakan, lampu menyala.
    • Jika Touch Sensor disentuh, lampu ON/OFF manual.
    • Buzzer aktif saat PIR mendeteksi objek.
  4. Compile hingga menghasilkan file .hex

4. Simulasi di Proteus

  1. Masukkan file program ke STM32 di Proteus.
  2. Jalankan simulasi.

2. Hardware dan Diagram Blok[Kembali]

1. STM32F103C8

Bagian - bagian 



2.  LED 
Light Emitting Diode atau sering disingkat dengan LED adalah komponen elektronika yang dapat memancarkan  cahaya monokromatik ketika diberikan tegangan maju. LED merupakan keluarga Dioda yang terbuat dari bahan semikonduktor. Warna-warna Cahaya yang dipancarkan oleh LED tergantung pada jenis bahan semikonduktor yang dipergunakannya. LED juga dapat memancarkan sinar inframerah yang tidak tampak oleh mata seperti yang sering kita jumpai pada Remote Control TV ataupun Remote Control perangkat elektronik lainnya.


Tabel. Warna dan Material LED

Warna
Panjanggelombang [nm]
Material semikonduktor

λ > 760
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

Resistor adalah komponen Elektronika Pasif yang memiliki nilai resistansi atau hambatan tertentu yang berfungsi untuk membatasi dan mengatur arus listrik dalam suatu rangkaian Elektronika (V=I R). 
Jenis Resistor yang digunakan disini adalah Fixed Resistor, dimana merupakan resistor dengan nilai tetap terdiri dari film tipis karbon yang diendapkan subtrat isolator kemudian dipotong berbentuk spiral. Keuntungan jenis fixed resistor ini dapat menghasilkan resistor dengan toleransi yang lebih rendah.
Cara menghitung nilai resistor:
Tabel warna

Contoh :
Gelang ke 1 : Coklat = 1
Gelang ke 2 : Hitam = 0
Gelang ke 3 : Hijau   = 5 nol dibelakang angka gelang ke-2; atau kalikan 105
Gelang ke 4 : Perak  = Toleransi 10%
Maka nilai resistor tersebut adalah 10 * 105 = 1.000.000 Ohm atau 1 MOhm dengan toleransi 10%.

Spesifikasi

4. Buzzer

Buzzer adalah sebuah komponen elektronika yang berfungsi untuk mengubah getaran listrik menjadi getaran suara. Buzzer biasa digunakan sebagai indikator bahwa proses telah selesai atau terjadi suatu kesalahan pada sebuah alat (alarm).

Bagian - bagian


5. . Touch sensor


Spesifikasi: 
  • Konsumsi daya yang rendah
  • Bisa menerima tegangan dari 2 ~ 5.5V DC
  • Dapat menggantikan fungsi saklar tradisional
  • Dilengkapi 4 lobang baut untuk memudahkan pemasangan
  • Tegangan kerja : 2v s/d 5.5v (optimal 3V)
  • Output high VOH : 0.8 VCC (typical)
  • Output low VOL : 0.3 VCC (max)
  • Arus Output Pin Sink (@ VCC 3V, VOL 0.6V) : 8 mA
  • Arus Output pin pull-up (@ VCC=3V, VOH=2.4V) : 4 mA
  • Waktu respon (low power mode): max 220 ms
  • Waktu respon (touch mode): max 60 ms
  • Ukuran: 24 mm x 24 mm x 7.2 mm

Bagian - bagian


6. Sensor PIR

Sensor PIR (Passive Infra Red) adalah sensor yang digunakan untuk mendeteksi adanya pancaran sinar infra merah dari suatu object. Sensor PIR bersifat pasif, artinya sensor ini tidak memancarkan sinar infra merah tetapi hanya menerima radiasi sinar infra merah dari luar.

 


Gambar berikut menunjukkan bagian-bagian dari sensor PIR yang perlu untuk diketahui

Bagian Sensor PIR
Bagian Sensor PIR
  1. Pengatur Waktu Jeda : Digunakan untuk mengatur lama pulsa high setelah terdeteksi terjadi gerakan dan gerakan telah berahir. *
  2. Pengatur Sensitivitas : Pengatur tingkat sensitivitas sensor PIR *
  3. Regulator 3VDC : Penstabil tegangan menjadi 3V DC
  4. Dioda Pengaman : Mengamankan sensor jika terjadi salah pengkabelan VCC dengan GND
  5. DC Power : Input tegangan dengan range (3 – 12) VDC (direkekomendasikan menggunakan input 5VDC).
  6. Output Digital : Output digital sensor
  7. Ground : Hubungkan dengan ground (GND)
  8. BISS0001 : IC Sensor PIR
  9. Pengatur Jumper : Untuk mengatur output dari pin digital.

7. Vcc / Batrey



Spesifikasi

  • 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

8. Push Button




Spesifikasi:





Cara-Kerja-Push-Button

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.


Blok Diagram


3. Rangkaian Simulasi dan Prinsip Kerja[Kembali]

Rangkaian Simulasi 



Prinsip Kerja :

Prinsip kerja rangkaian kontrol lampu lorong didasarkan pada pengolahan logika dua buah sensor, yaitu touch sensor dan sensor PIR, yang dikendalikan oleh mikrokontroler STM32F103C8. Pada kondisi awal, ketika rangkaian diberi catu daya, STM32F103C8 akan melakukan inisialisasi pin GPIO, di mana pin yang terhubung ke touch sensor dan PIR diset sebagai input, sedangkan pin LED dan buzzer diset sebagai output. Mikrokontroler kemudian membaca kondisi logika dari kedua sensor secara terus-menerus.

Touch sensor akan menghasilkan logika HIGH ketika disentuh oleh pengguna, sedangkan sensor PIR akan menghasilkan logika HIGH ketika mendeteksi adanya pergerakan manusia di area lorong. STM32F103C8 memproses kedua sinyal input tersebut menggunakan logika AND melalui pemrograman. Artinya, sistem hanya menganggap kondisi valid apabila kedua sensor, yaitu touch sensor dan PIR, sama-sama berada pada kondisi aktif (HIGH) secara bersamaan.

Apabila kedua sensor aktif secara bersamaan, STM32F103C8 akan mengaktifkan output LED dengan pola berkedip. Kedipan LED dihasilkan dengan cara mikrokontroler mengatur pin output LED menjadi HIGH dan LOW secara bergantian dengan selang waktu tertentu menggunakan fungsi delay pada program. Selama kedua sensor tetap aktif, LED akan terus berkedip sebagai indikator bahwa sistem bekerja sesuai kondisi yang diinginkan.

Pada kondisi tersebut, buzzer tidak diaktifkan. Hal ini dikarenakan pada pemrograman STM32F103C8, pin buzzer dipertahankan dalam kondisi LOW sehingga tidak menghasilkan bunyi, meskipun LED sedang berkedip. Jika salah satu sensor tidak aktif atau kembali ke kondisi LOW, maka STM32F103C8 akan segera mematikan LED dan memastikan buzzer tetap dalam keadaan mati. Dengan demikian, sistem hanya menyalakan LED berkedip ketika kedua sensor aktif secara bersamaan, sedangkan buzzer selalu berada dalam kondisi diam.

4. Flowchart dan LIsting Program[Kembali]

Flowchart 



Listing Program :




/* USER CODE BEGIN Header */

/**

******************************************************************************

* @file : main.c

* @brief : Final Program - Touch + PIR -> LED Blink

******************************************************************************

* @attention

*

* STM32F103 - STM32CubeIDE

*

******************************************************************************

*/

/* USER CODE END Header */


#include "main.h"


/* Private function prototypes -----------------------------------------------*/

void SystemClock_Config(void);

static void MX_GPIO_Init(void);


/* USER CODE BEGIN 0 */

/* USER CODE END 0 */


int main(void)

{

HAL_Init();

SystemClock_Config();

MX_GPIO_Init();


/* USER CODE BEGIN 2 */

/* USER CODE END 2 */


/* Infinite loop */

/* USER CODE BEGIN WHILE */

while (1)

{

GPIO_PinState touch_state = HAL_GPIO_ReadPin(GPIOA, TOUCH_Pin);

GPIO_PinState pir_state = HAL_GPIO_ReadPin(GPIOA, PIR_Pin);


if ((touch_state == GPIO_PIN_SET) && (pir_state == GPIO_PIN_SET))

{

// LED berkedip jika Touch & PIR aktif

HAL_GPIO_TogglePin(GPIOB, BLUE_Pin);

HAL_Delay(300);

}

else

{

// LED mati jika salah satu sensor tidak aktif

HAL_GPIO_WritePin(GPIOB, BLUE_Pin, GPIO_PIN_RESET);

}

}

/* USER CODE END WHILE */

}


/**

* @brief System Clock Configuration

*/

void SystemClock_Config(void)

{

RCC_OscInitTypeDef RCC_OscInitStruct = {0};

RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};


RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;

RCC_OscInitStruct.HSIState = RCC_HSI_ON;

RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;

RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;

HAL_RCC_OscConfig(&RCC_OscInitStruct);


RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK |

RCC_CLOCKTYPE_SYSCLK |

RCC_CLOCKTYPE_PCLK1 |

RCC_CLOCKTYPE_PCLK2;


RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI;

RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;

RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;

RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;


HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0);

}


/**

* @brief GPIO Initialization

*/

static void MX_GPIO_Init(void)

{

GPIO_InitTypeDef GPIO_InitStruct = {0};


__HAL_RCC_GPIOA_CLK_ENABLE();

__HAL_RCC_GPIOB_CLK_ENABLE();


/* PIR & Touch as Input */

GPIO_InitStruct.Pin = PIR_Pin | TOUCH_Pin;

GPIO_InitStruct.Mode = GPIO_MODE_INPUT;

GPIO_InitStruct.Pull = GPIO_NOPULL;

HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);


/* LED & Buzzer as Output */

GPIO_InitStruct.Pin = BLUE_Pin | BUZZER_Pin;

GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;

GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;

HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);


HAL_GPIO_WritePin(GPIOB, BLUE_Pin | BUZZER_Pin, GPIO_PIN_RESET);

}


/**

* @brief Error Handler

*/

void Error_Handler(void)

{

__disable_irq();

while (1)

{

}

}



Penjelasan Per Baris


/* USER CODE BEGIN Header */
Bagian komentar header program yang biasanya diisi otomatis oleh STM32CubeIDE.

/** */
Komentar dokumentasi program.

/* @file : main.c */
Menunjukkan bahwa file ini adalah file utama program.

/* @brief : Final Program - Touch + PIR -> LED Blink */
Penjelasan singkat fungsi program, yaitu LED akan berkedip jika sensor Touch dan PIR aktif.

/* STM32F103 - STM32CubeIDE */
Menunjukkan tipe mikrokontroler dan IDE yang digunakan.

/* USER CODE END Header */
Penutup bagian header.

#include "main.h"
Memanggil file header main.h yang berisi definisi pin, library HAL, dan deklarasi fungsi.


void SystemClock_Config(void);
Deklarasi fungsi untuk mengatur konfigurasi clock sistem STM32.

static void MX_GPIO_Init(void);
Deklarasi fungsi untuk menginisialisasi GPIO (input dan output).

int main(void)
Fungsi utama yang pertama kali dijalankan oleh mikrokontroler.

HAL_Init();
Menginisialisasi HAL Library, mereset peripheral, dan mengaktifkan sistem timer.

SystemClock_Config();
Mengatur sumber dan pembagian clock sistem menggunakan oscillator internal.

MX_GPIO_Init();
Mengatur pin GPIO sebagai input dan output sesuai kebutuhan program.

while (1)
Loop tak berhingga, program akan terus berjalan selama mikrokontroler aktif.

GPIO_PinState touch_state = HAL_GPIO_ReadPin(GPIOA, TOUCH_Pin);
Membaca kondisi sensor Touch pada pin GPIOA.
Nilai GPIO_PIN_SET berarti aktif (HIGH), GPIO_PIN_RESET berarti tidak aktif (LOW).

GPIO_PinState pir_state = HAL_GPIO_ReadPin(GPIOA, PIR_Pin);
Membaca kondisi sensor PIR pada pin GPIOA.

if ((touch_state == GPIO_PIN_SET) && (pir_state == GPIO_PIN_SET))
Kondisi logika: program masuk ke IF jika sensor Touch DAN PIR sama-sama aktif.

HAL_GPIO_TogglePin(GPIOB, BLUE_Pin);
Mengubah (toggle) kondisi LED biru pada GPIOB, sehingga LED berkedip.

HAL_Delay(300);
Memberikan delay selama 300 ms untuk mengatur kecepatan kedip LED.

else
Blok ini dijalankan jika salah satu atau kedua sensor tidak aktif.

HAL_GPIO_WritePin(GPIOB, BLUE_Pin, GPIO_PIN_RESET);
Mematikan LED biru jika kondisi IF tidak terpenuhi.

void SystemClock_Config(void)
Fungsi untuk mengatur clock sistem STM32.

RCC_OscInitTypeDef RCC_OscInitStruct = {0};
Struktur untuk konfigurasi oscillator.

RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
Struktur untuk konfigurasi clock bus sistem.

RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
Menggunakan oscillator internal HSI (High Speed Internal).

RCC_OscInitStruct.HSIState = RCC_HSI_ON;
Mengaktifkan oscillator HSI.

RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
Menggunakan nilai kalibrasi default HSI.

RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
PLL tidak digunakan.

HAL_RCC_OscConfig(&RCC_OscInitStruct);
Menerapkan konfigurasi oscillator ke sistem.

RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK |
RCC_CLOCKTYPE_SYSCLK |
RCC_CLOCKTYPE_PCLK1 |
RCC_CLOCKTYPE_PCLK2;
Menentukan jenis clock yang akan dikonfigurasi.

RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI;
Sumber clock sistem berasal dari HSI.

RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
Clock AHB tidak dibagi.

RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
Clock APB1 tidak dibagi.

RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
Clock APB2 tidak dibagi.

HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0);
Menerapkan konfigurasi clock sistem dengan latency flash 0.


static void MX_GPIO_Init(void)
Fungsi untuk mengatur pin GPIO.

GPIO_InitTypeDef GPIO_InitStruct = {0};
Struktur konfigurasi GPIO.

__HAL_RCC_GPIOA_CLK_ENABLE();
Mengaktifkan clock untuk GPIOA.

__HAL_RCC_GPIOB_CLK_ENABLE();
Mengaktifkan clock untuk GPIOB.

GPIO_InitStruct.Pin = PIR_Pin | TOUCH_Pin;
Menentukan pin PIR dan Touch sebagai input.

GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
Mengatur pin sebagai input.

GPIO_InitStruct.Pull = GPIO_NOPULL;
Tidak menggunakan pull-up atau pull-down.

HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
Menerapkan konfigurasi input ke GPIOA.

GPIO_InitStruct.Pin = BLUE_Pin | BUZZER_Pin;
Menentukan pin LED biru dan buzzer sebagai output.

GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
Mengatur pin sebagai output push-pull.

GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
Mengatur kecepatan switching output rendah.

HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
Menerapkan konfigurasi output ke GPIOB.

HAL_GPIO_WritePin(GPIOB, BLUE_Pin | BUZZER_Pin, GPIO_PIN_RESET);
Memastikan LED dan buzzer dalam kondisi mati saat awal program.

void Error_Handler(void)
Fungsi yang dijalankan jika terjadi kesalahan sistem.

__disable_irq();
Menonaktifkan seluruh interrupt.

while (1)
Program berhenti di loop tak berhingga sebagai indikasi error.


5. Video Demo [Kembali]


6. Kondisi[Kembali]

Buatlah rangkaian seperti pada gambar percobaan 1 dengan kondisi sensor Touch aktif dan PIR mendeteksi gerakan serta LED hidup berkedip

7. Video Simulasi[Kembali]




8. Download File [Kembali]


1. Download HTML [disini]

2. Download Rangkaian Proteus  [disini]

3. Download Vidio Rangkaian [disini]

4. Download Datasheet Sensor: 

5. Download library Komponen: 

6. Download datasheet Relay [disini]

7. Download datasheet Motor [disini]

8. Download datasheet Led [disini]

9. Download listing program [disini]

10. Download data sheet [disini]






DOWNLOAD FILE


Download Rangkaian Project                               (klik disini)

Download Video Demo                                        (klik disini)

Data Sheet Gerbang NAND                                            [klik disini]

Download Datasheet Gerbang AND                     klik disini 

Download Datasheet Resistor                               [klik]

Download Datasheet Transistor NPN                   [klik]

Download Datasheet Opamp LM 358                  (klik disini)

Download Datasheet IC 4026                              (klik disini)

Download Datasheet Potensiometer                     [klik]

Download Datasheet Relay                                   [klik]

Download Datasheet Motor DC                            [klik]

Download datasheet LDR                                      [disini]

Download datasheet Soil Mosture                         (klik disini)

Datasheet Water Fload                                            klik disini

Download Datasheet Baterai                                  klik disini

Download Datasheet 7 Segment                            klik disini

Download Datasheet LED                                     klik disini


VIDEO DEMO


Video Demo

 

 FLWCHART 





Mulai (Start)
Sistem penyiram tanaman otomatis diaktifkan dan siap bekerja.

Deteksi Siang atau Malam (Sensor LDR)

  • Jika malam hari, sensor cahaya (LDR) akan memberikan logika 0, sehingga semua sistem reset (pompa dan counter tidak aktif).
  • Jika siang hari, sistem lanjut membaca kondisi air dan tanah.

Sensor Ketinggian Air Tangki

  • Jika air tangki habis, maka pompa sumur menyala untuk mengisi air.
  • Jika air masih cukup, lanjut ke pembacaan sensor kelembaban tanah.

Sensor Kelembaban Tanah

  • Sensor mendeteksi kelembaban tanah.
  • Jika nilai kelembaban < 30% (kering), maka pompa penyiram tanaman aktif.
  • Jika kelembaban > 30% (lembab), pompa penyiram mati.

 Counter Penyiraman (IC 4026 dan 7-Segment Display)

  • Setiap kali pompa penyiram aktif, sistem menghitung jumlah penyiraman menggunakan counter 4026.
  • Ketika jumlah penyiraman mencapai 5 kali, sistem berhenti otomatis dan akan reset pada malam hari.

Reset Malam Hari

  • Ketika malam datang, sensor cahaya memicu sinyal reset.
  • Counter kembali ke 0, pompa penyiram dan pompa sumur mati, sistem menunggu hingga pagi.

 Sistem Siaga (Standby)

  • Pada malam hari sistem tidak aktif dan menunggu kondisi siang untuk beroperasi kembali.

 


 RANGKAIAN SIMULASI DAN PRINSIP KERJA


angkaian ini terbagi menjadi tiga bagian utama:

  1. Kontrol Pompa Air Sumur (Pengisian Tangki)

  2. Deteksi Siang/Malam Hari dan Kontrol Pompa Air Sumur (Kondisi Siang/Malam)

  3. Kontrol Pompa Air Penyiraman Tanaman dan Penghitung Siklus Kelembaban



1. Kontrol Pompa Air Sumur (Pengisian Tangki)

Bagian ini berfungsi untuk mengisi air ke dalam tangki (WATER_TANK) secara otomatis ketika air di dalamnya habis (kosong).

  • Komponen Utama:
    • Sensor ketinggian air (D): Terletak di bagian bawah tangki, berfungsi sebagai input logika.
    • Tangki Air (WATER_TANK): Wadah penyimpanan air.
    • Gerbang Logika (U4.A dan U4.C): Gerbang OR (U4.A) dan Gerbang AND (U4.C).
    • Relay (RL1) dan Transistor (Q1): Mengendalikan Pompa air sumur.
    • Pompa air sumur: Bertugas mengisi air ke tangki.
  • Prinsip Kerja:
    1. Kondisi Tangki Kosong (Air Habis):
      • Sensor ketinggian air (D) akan memberikan logika HIGH (1).
      • Logika HIGH (1) ini masuk ke Gerbang OR (U4.A) dan Gerbang AND (U4.C).
    2. Kondisi Pompa Hidup:
      • Ketika air di tangki habis (D=1), output Gerbang AND (U4.C) akan menjadi HIGH (1) (asumsi input dari deteksi siang/malam juga 1, yang akan dijelaskan di poin 2).
      • Logika HIGH (1) ini akan mengaktifkan Transistor Q1.
      • Transistor Q1 yang aktif akan mengalirkan arus ke Relay RL1.
      • Relay RL1 akan menutup saklar dan mengaktifkan Pompa air sumur.
    3. Kondisi Pompa Mati:
      • Pompa akan terus bekerja mengisi air hingga sensor ketinggian air (D) tidak lagi mendeteksi kondisi air habis (misalnya air sudah mencapai ketinggian tertentu), sehingga input dari sensor air habis menjadi LOW (0).
      • Logika LOW (0) pada input Gerbang AND (U4.C) akan mematikan output, menonaktifkan Transistor Q1, membuka Relay RL1, dan mematikan Pompa air sumur.
  • Pernyataan Kunci:

"Jika air pada tangki habis maka pompa air sumur hidup. Tangki air habis ditandai dengan logika 1."




Deteksi Siang/Malam Hari dan Kontrol Pompa Air Sumur (Kondisi Siang/Malam)

Bagian ini menentukan kondisi waktu (siang atau malam) dan mengatur apakah pompa air sumur diizinkan untuk menyala (khususnya untuk pengisian yang terhubung ke tangki).

  • Komponen Utama:
    • Sensor cahaya (LDR1): Mendeteksi intensitas cahaya.
    • Resistor Variabel (RV2): Untuk mengatur titik batas perbandingan (referensi tegangan).
    • Komparator Inverting (U2.A - Op-Amp): Membandingkan tegangan dari LDR dengan tegangan referensi.
    • Seven Segment Display: Menampilkan waktu (siang/malam) dan kondisi reset.
  • Prinsip Kerja:
    1. Deteksi Siang/Malam:
      • LDR1 dan R3 membentuk pembagi tegangan.
      • Siang Hari (Banyak Cahaya): Hambatan LDR1 akan sangat rendah, menyebabkan tegangan di kaki inverting Vin komparator menjadi rendah.
      • Malam Hari (Sedikit Cahaya): Hambatan LDR1 akan sangat tinggi, menyebabkan tegangan di kaki inverting Vin komparator menjadi tinggi.
    2. Komparator Inverting (U2.A):
      • Tegangan referensi ($V_{ref}$) di kaki non-inverting ($V_{i+}$) diatur oleh RV2.
      • Siang Hari: Vin < Vs. Output komparator U2.A menjadi HIGH (1) (mendekati Vsat).
      • Malam Hari: Vin> Vs. Output komparator U2.A menjadi LOW (0) (mendekati V0 Ground).
    3. Kontrol Pompa Air Sumur Berdasarkan Waktu:
      • Output U2.A yang menandakan Siang atau Malam menjadi salah satu input pada Gerbang Logika (U4.C) yang mengendalikan pompa air sumur.
      • Pernyataan Kunci: "Pompa air sumur tidak dapat difungsikan ketika malam hari."
      • Ini berarti, pompa air sumur hanya BISA diaktifkan saat Siang Hari (Output U2.A = 1).
    4. Reset Seven Segment:
      • Output komparator U2.A (kondisi Siang Hari = 1, Malam Hari = 0) juga digunakan sebagai sinyal RESET untuk Seven Segment Display.
      • Pernyataan Kunci: "Mendeteksi Siang/Malam Hari. Jika malam hari seven segment akan reset 0..."
      • Ini berarti, ketika Malam Hari (Output U2.A = 0), sinyal RESET yang terhubung ke Counter (U5) akan aktif, memaksa Seven Segment Display untuk menunjukkan angka 0.

3. Kontrol Pompa Air Penyiraman Tanaman dan Penghitung Siklus Kelembaban

Bagian ini berfungsi untuk mengukur kelembaban tanah, mengaktifkan pompa penyiraman jika tanah kering, dan menghitung berapa kali siklus penyiraman tersebut terjadi.

  • Komponen Utama:
    • Sensor kelembaban tanah (SOIL1): Memberikan output berupa tegangan berdasarkan kelembaban tanah.
    • Komparator Non-Inverting (U2.B - Op-Amp): Membandingkan tegangan sensor dengan tegangan referensi.
    • Resistor Variabel (RV3): Mengatur titik batas kelembaban Vref.
    • Relay (RL4) dan Transistor (Q2): Mengendalikan Pompa air penyiraman tanaman.
    • Pompa air penyiraman tanaman: Bertugas menyiram tanaman.
    • Counter (U5) dan Seven Segment Display: Menghitung dan menampilkan siklus penyiraman.
  • Prinsip Kerja - Kontrol Penyiraman:
    1. Deteksi Kelembaban:
      • Tegangan dari sensor kelembaban tanah Vin masuk ke kaki inverting komparator U2.B.
      • Tegangan referensi Vref dari RV3 masuk ke kaki non-inverting Vs.
      • Pernyataan Kunci: "Jika sensor mendeteksi kelembaban tanah < 30% atau Vin maka pompa air penyiram tanaman aktif."
    2. Kondisi Tanah Kering (Perlu Siram):
      • Kelembaban rendah berarti tegangan sensor Vin rendah.
      • Jika Vin output komparator U2.B akan menjadi HIGH (1) (Non-Inverting).
    3. Kondisi Pompa Penyiraman Aktif:
      • Output HIGH (1) dari U2.B akan melalui Gerbang Logika (U1.A dan U1.B) dan mengaktifkan Transistor Q2.
      • Transistor Q2 mengalirkan arus ke Relay RL4.
      • Relay RL4 menutup saklar dan mengaktifkan Pompa air penyiraman tanaman.
    4. Kondisi Pompa Penyiraman Mati:
      • Ketika tanah menjadi lembab, tegangan sensor Vs akan naik.
      • Jika Vs output U2.B menjadi LOW (0), mematikan pompa.
  • Prinsip Kerja - Penghitung Siklus Kelembaban:
    1. Output HIGH (1) dari komparator U2.B (saat pompa menyiram) juga menjadi sinyal CLOCK yang melalui Gerbang Logika (U1.B dan U6.A) dan masuk ke Counter U5.
    2. Setiap kali pompa penyiraman aktif, sinyal CLOCK akan naik, dan Counter U5 akan menghitung naik (menginkremen) satu siklus.
    3. Hasil hitungan dari Counter U5 ditampilkan pada Seven Segment Display.
    4. Pernyataan Kunci: "Menghitung berapa banyak terjadi kelembaban tanah dan akan berhenti pada angka 5, dan pompa penyiram tanaman tidak dapat difungsikan dan akan riset ke 0 pada malam hari."
    5. Batasan Siklus (Angka 5): Rangkaian logika tambahan (Gerbang U5.B, U6.A, U1.B) digunakan untuk mendeteksi ketika hitungan mencapai angka 5. Saat hitungan mencapai 5, logika akan mencegah sinyal CLOCK lebih lanjut atau menonaktifkan input ke pompa penyiraman (melalui U1.A/U1.B) hingga counter di-reset.
    6. Reset Malam Hari: Sinyal reset dari Deteksi Siang/Malam (poin 2) juga terhubung ke Counter U5. Ketika Malam Hari (Sinyal Reset = 1), Counter U5 akan direset kembali ke 0, dan pompa penyiraman dapat mulai menghitung siklus dari awal lagi di hari berikutnya.

 HARDWERE





Sistem ini terdiri dari beberapa komponen utama, yaitu sensor kelembapan tanah yang ditanam di pot tanaman, dua buah pompa mini DC untuk mengalirkan air dari wadah penampung ke tanaman, serta rangkaian kontrol berbasis  sistem digital yang mengatur kerja pompa sesuai kondisi kelembapan tanah. Ketika sensor mendeteksi tanah dalam keadaan kering, sinyal akan dikirim ke rangkaian kontrol untuk mengaktifkan pompa air, sehingga tanaman disiram secara otomatis. Setelah kelembapan mencapai batas tertentu, pompa akan berhenti. Rangkaian juga dilengkapi tampilan digital dan indikator LED untuk menunjukkan status sistem. Alat ini berfungsi untuk menjaga kelembapan tanah secara otomatis, sehingga sangat membantu dalam perawatan tanaman seperti kaktus tanpa perlu penyiraman manual.



 PROSEDUR 


1. Persiapan Komponen

Sebelum merakit, siapkan seluruh komponen utama berikut:

  • Sensor Cahaya (LDR) — mendeteksi siang/malam.
  • Sensor Kelembaban Tanah (Soil Moisture Sensor) — mendeteksi kadar air dalam tanah.
  • Sensor Ketinggian Air (Water Level Sensor / Float Sensor) — mendeteksi volume air pada tangki.
  • Op-Amp (LM358) — digunakan sebagai komparator untuk mendeteksi batas tegangan dari sensor.
  • Transistor (NPN, misal BC547 atau 2N2222) — sebagai driver untuk mengaktifkan pompa atau LED indikator.
  • Dioda (1N4007) — sebagai proteksi arus balik dari motor pompa.
  • Pompa Air Mini DC 12V — untuk mengalirkan air dari sumur ke tangki dan dari tangki ke tanaman.
  • IC 4026 dan 7-Segment Display — untuk menghitung dan menampilkan jumlah penyiraman.
  • IC Logic (gerbang AND, NOT, OR) — untuk kombinasi sinyal kontrol dan reset.
  • Power Supply 12V DC dan regulator 5V (7805) untuk bagian logika.
  • Kabel jumper, resistor, kapasitor, breadboard atau PCB.

 2. Perancangan Skematik Rangkaian

  1. Rancang blok sensor LDR
    • Hubungkan LDR ke pembagi tegangan dengan resistor.
    • Output LDR masuk ke salah satu input op-amp LM358 sebagai komparator.
    • Output komparator menghasilkan logika 1 untuk siang dan 0 untuk malam, digunakan untuk mengaktifkan/reset sistem.
  2. Rancang blok sensor ketinggian air
    • Gunakan water level sensor atau float switch di dalam tangki.
    • Saat tangki kosong → output logika 1 untuk menghidupkan pompa sumur.
    • Saat tangki penuh → output logika 0 untuk mematikan pompa sumur.
  3. Rancang blok sensor kelembaban tanah
    • Output analog dari sensor kelembaban masuk ke input non-inverting (+) op-amp LM358.
    • Pin inverting (–) diberi tegangan referensi (Vref) ≈ 30% kelembaban.
    • Jika kelembaban < 30% → output op-amp HIGH (logika 1) → aktifkan pompa penyiram tanaman.
    • Jika kelembaban > 30% → output LOW → pompa mati.
  4. Rancang driver pompa
    • Gunakan transistor NPN sebagai saklar pengendali pompa.
    • Kolektor ke beban (pompa), emitor ke ground, dan basis dikontrol oleh sinyal output dari komparator.
    • Pasang dioda paralel (1N4007) untuk melindungi dari lonjakan arus induktif.
  5. Rancang bagian counter (IC 4026)
    • Hubungkan pin CLOCK (pin 1) ke sinyal pulsa dari pompa penyiram (satu pulsa setiap kali pompa aktif).
    • Pin RESET (pin 15) dikontrol oleh sensor LDR → akan reset ke 0 saat malam hari.
    • Output a–g dihubungkan ke 7-segment display untuk menampilkan jumlah penyiraman.
  6. Tambahkan logika pembatas (Hitungan = 5)
    • Gunakan output segmen IC 4026 (misal kombinasi segmen a, f, g, c, d aktif) untuk mendeteksi angka 5.
    • Kombinasikan dengan gerbang logika (AND, NOT) untuk menghasilkan sinyal “STOP” yang mematikan pompa penyiram setelah penyiraman ke-5.
  7. Gabungkan semua blok
    • Hubungkan output dari setiap blok (sensor → op-amp → transistor driver → pompa → IC 4026).
    • Pastikan semua ground terhubung bersama.
    • Tambahkan LED indikator untuk menunjukkan status:
      • Pompa sumur ON
      • Pompa penyiram ON
      • Siang/Malam (indikator LDR)
      • Sistem Reset

 3. Perakitan Rangkaian di Breadboard / PCB

  • Susun komponen sesuai skematik.
  • Pastikan arah pin IC dan transistor benar.
  • Gunakan kabel jumper pendek untuk menghindari noise.
  • Gunakan breadboard untuk percobaan awal, dan setelah berhasil baru pindahkan ke PCB.

4. Pengujian Rangkaian

  1. Uji sensor cahaya: tutup LDR → sistem harus reset dan semua pompa mati.
  2. Uji sensor air: kosongkan tangki → pompa sumur hidup dan mati setelah tangki penuh.
  3. Uji sensor kelembaban tanah: turunkan kadar air tanah → pompa penyiram hidup otomatis.
  4. Periksa counter IC 4026: pastikan angka bertambah setiap kali pompa penyiram bekerja.
  5. Pastikan reset malam bekerja: saat gelap, angka pada 7-segmen kembali ke 0.

 5. Penyempurnaan dan Kalibrasi

  • Atur tegangan referensi (Vref) op-amp agar sesuai dengan batas kelembaban tanah yang diinginkan.
  • Kalibrasi sensor cahaya agar sistem tidak salah mendeteksi siang/malam.
  • Tambahkan relay atau MOSFET jika pompa menggunakan arus besar.
  • Pastikan semua sambungan kuat dan terlindung dari air saat digunakan di lapangan.

 

Laporan Akhir Projek

[KEMBALI KE MENU SEBELUMNYA] DAFTAR ISI 1. Rangkaian Simulasi dan Prinsip Kerja 2. Flowchart dan Listing Program 3. Video Demo ...