Tugas Pendahuluan 1 Modul 2

 



Tugas Pendahuluan 1 Modul 2
(Percobaan 2 Kondisi 4)

1. Prosedur 
[Kembali]

1. Buka software proteus

2. Cari Komponen yang akan digunakan sesuai dengan modul

3. Hubungka komponen sesuai dengan arahan yang ada pada modul dan untuk pin yang di pakai sesuaikan juga


4. Konfigurasi STM32 di STM32CubeIDE dan perbaiki code yang ada pada modul agar bisa  digunakan sesuai dengan kondisi yang di minta


5. build program yang telah di perbaiki tadi di software stm32cube

6. masukan file yang telah di ubah tadi pada stm32 yang telah di rangkai pada proteus

7. simulasikan dan lihat apa yang terjadi pada program


2. Hardware dan Diagram Blok [Kembali]

Hardware :


1. Mikrokontroler STM32F103C8
STM32F103C8 board – Microscale

2. Sensor LDR


3. Resistor


4. Transistor NPN

5. Buzzer
Buzzer
6. Push Button

push button 4 kaki di Sabara Mikro | Tokopedia

7. Dioda


8. Motor DC (Dinamo DC)

1.STM32F103C8

    sebagai mikrokontroler utama


2.Sensor Soil Moisture
    
    sebagai pendeteksi kelembapan   





3.IC ULN2003A

    





4.LED RGB

    sebagai ouput atau keluaran nanti nya


5.Resistor

    sebagai pengaman led agar tidak rusak karena arus lebih


6.Motor Stepper








3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

Rangkaian Simulasi :







Prinsip Kerja : 
 Prinsip kerja dari rangkaian ini adalah mendeteksi kelembapan tanah menggunakan sensor soil moisture yang terhubung ke mikrokontroler STM32F103C8. Sensor ini mengukur resistansi tanah antara dua probe logam, di mana resistansi akan meningkat saat tanah menjadi kering. Ketika kondisi tanah kering terdeteksi (biasanya ditandai dengan nilai digital HIGH dari pin digital sensor), sinyal ini dikirim ke salah satu pin input pada STM32. Mikrokontroler kemudian memproses sinyal tersebut dan mengaktifkan LED RGB sebagai indikator visual.


4. Flowchart dan Listing Program [Kembali]

Flowchart :

   





Listing Program :

#include "main.h"


void SystemClock_Config(void);

static void MX_GPIO_Init(void);


int main(void)

{

    HAL_Init();

    SystemClock_Config();

    MX_GPIO_Init();

    

    while (1)

    {

        uint8_t ir_status = HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_10); // Membaca IR sensor (PB10)

        uint8_t touch_status = HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_7); // Membaca Touch Sensor (PB7)

        

        // Kondisi: IR tidak mendeteksi gerakan dan Touch mendeteksi sentuhan

        if (ir_status == GPIO_PIN_RESET && touch_status == GPIO_PIN_SET) {

            HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);  // Nyalakan LED Biru (PB0)

            HAL_GPIO_WritePin(GPIOA, GPIO_PIN_7, GPIO_PIN_SET); // Nyalakan LED Hijau (PA7)

            HAL_GPIO_WritePin(GPIOA, GPIO_PIN_6, GPIO_PIN_RESET); // Matikan LED Merah (PA6)

        } 

        else {

            // Matikan semua LED jika kondisi tidak terpenuhi

            HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);

            HAL_GPIO_WritePin(GPIOA, GPIO_PIN_7, GPIO_PIN_RESET);

            HAL_GPIO_WritePin(GPIOA, GPIO_PIN_6, GPIO_PIN_RESET);

        }

        

        HAL_Delay(10); // Delay kecil untuk stabilisasi pembacaan sensor

    }

}


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;

    if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {

        Error_Handler();

    }

    

    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;

    

    if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK) {

        Error_Handler();

    }

}


static void MX_GPIO_Init(void)

{

    GPIO_InitTypeDef GPIO_InitStruct = {0};


    __HAL_RCC_GPIOD_CLK_ENABLE();

    __HAL_RCC_GPIOA_CLK_ENABLE();

    __HAL_RCC_GPIOB_CLK_ENABLE();

    

    /* Konfigurasi GPIO untuk LED */

    HAL_GPIO_WritePin(GPIOA, GPIO_PIN_6|GPIO_PIN_7, GPIO_PIN_RESET);

    HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);

    

    GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;

    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;

    GPIO_InitStruct.Pull = GPIO_NOPULL;

    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;

    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

    

    GPIO_InitStruct.Pin = GPIO_PIN_0;

    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);

    

    /* Konfigurasi GPIO untuk sensor */

    GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_7;

    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;

    GPIO_InitStruct.Pull = GPIO_NOPULL;

    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

}


void Error_Handler(void)

{

    __disable_irq();

    while (1) {}


5. Kondisi [Kembali]

Percobaan 2 Kondisi 4
buatlah ketika soil moisture sensor mendeteksi kelembapan tanah kering,LED RGB menampilkan warna kuning dan motor stepper berputar secara Clockwise

6. Video Simulasi [Kembali]







7. Download File [Kembali]

Download HTML [Download]
Download File Rangkaian [Download]
Download Video Simulasi [Download]
Download Listing Program [Download]
Datasheet Mikrokontroler STM32F103C8 [Download]
Datasheet Sensor Infrared [Download]
Datasheet Sensor Touch [Download]
Datasheet RGB LED [Download]

Komentar

Postingan populer dari blog ini

PERANGKAT LUNAK

Modul 2

Laporan Akhir 1 Modul 1