Jumat, 09 Mei 2025

M2 - Tugas Pendahuluan 2

M1 - Tugas Pendahuluan 1



1. Prosedur[Kembali]

Prosedur Percobaan 2 Kondisi 1

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]

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]




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. Dalam kondisi ini, LED RGB akan menyala dengan warna hijau untuk menandakan bahwa tanah dalam keadaan kering dan perlu disiram. Warna hijau ditampilkan dengan mengaktifkan pin PWM atau digital output yang terhubung ke kanal warna hijau pada LED RGB, sementara kanal merah dan biru tidak diaktifkan. Setelah itu, sistem akan terus memantau nilai dari sensor untuk mendeteksi jika terjadi perubahan kelembapan tanah. Rangkaian ini dapat dikembangkan lebih lanjut untuk mengaktifkan aktuator seperti pompa air secara otomatis berdasarkan hasil pembacaan kelembapan tanah.


4. Flowchart dan Listing[Kembali]







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. Video Demo[Kembali]


6. Kondisi[Kembali]

TP 2 Percobaan 2 Kondisi 1

Buatlah rangkaian seperti gambar pada percobaan 2, buatlah ketika soil moisture sensor mendeteksi kelembapan tanah kering, LED RGB menampilkan warna Hijau


7. Video Simulasi[Kembali]




8. Download File[Kembali]

Download Rangkaian Klik Disini

Download Vidio Simulasi Klik Disini

Download Datasheet Mikrokontroler STM32F103C8 Klik Disini

Download Datasheet Push Button Klik Disini

Download Datasheet Buzzer Klik Disini

Download Vidio Simulasi Klik Disini


Related Posts:

0 komentar:

Posting Komentar