Tugas Pendahuluan 2



Percobaan 2 kondisi 1
 (Led RGB, Motor Stepper, & Soil Moisture)


1. Prosedur[Kembali]

1. Rangkai rangkaian di proteus sesuai dengan kondisi percobaan.
2. Buat program untuk mikrokontroler STM32F103C8 di software STM32 CubeIDE.
3. Compile program dalam format hex, lalu upload ke dalam mikrokontroler.
4. Setelah program selesai di upload, jalankan simulasi rangkaian pada proteus.
5. Selesai.

2. Hardware dan Diagram Blok[Kembali]

Hardware :

  • Mikrokontroler STM32F103C8


  • Sensor Soil Moisture


  • LED RGB


  • Resistor
  • Potensiometer

  • Powersupply




Diagram Blok






3. Rangkaian Simulasi[Kembali]

  • Rangkaian sebelum di running


  • Rangkaian setelah di running


  • Prinsip Kerja 
        Prinsip kerja rangkaian dan program ini adalah untuk mendeteksi kelembapan tanah menggunakan sensor soil moisture dan memberikan indikasi melalui LED RGB. Pada awalnya, sistem akan melakukan inisialisasi terhadap semua periferal yang dibutuhkan, termasuk sistem clock, ADC (Analog to Digital Converter), dan GPIO untuk LED. Sensor kelembapan tanah akan mengirimkan sinyal analog yang proporsional terhadap tingkat kelembapan tanah ke pin ADC mikrokontroler. Mikrokontroler kemudian memulai konversi ADC untuk membaca nilai tegangan analog dari sensor. Jika nilai ADC yang dibaca lebih dari 2500, maka dianggap bahwa tanah dalam kondisi kering. Dalam kondisi ini, program akan mengaktifkan pin GPIO untuk menyalakan LED warna hijau, dan mematikan LED merah dan biru, sehingga hanya LED hijau yang menyala. Ini menunjukkan bahwa tanah kering dan mungkin membutuhkan penyiraman. Sebaliknya, jika nilai ADC sama dengan atau kurang dari 2500, maka semua LED (merah, hijau, biru) akan dimatikan, menandakan bahwa tanah cukup lembap. Proses ini berlangsung secara terus-menerus dengan jeda 200 milidetik di setiap siklus pembacaan sensor.


4. Flowchart dan Listing Program[Kembali]

  • Flowchart


  • Listing Program

/* USER CODE BEGIN Header */

/**

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

* @file : main.c

* @brief : Main program body

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

* @attention

*

* Copyright (c) 2025 STMicroelectronics.

* All rights reserved.

*

* This software is licensed under terms that can be found in the LICENSE file

* in the root directory of this software component.

* If no LICENSE file comes with this software, it is provided AS-IS.

*

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

*/

/* USER CODE END Header */

/* Includes ------------------------------------------------------------------*/

#include "main.h"


#include "main.h"


#define LED_PORT GPIOB

#define Red GPIO_PIN_12

#define Green GPIO_PIN_13

#define Blue GPIO_PIN_14


ADC_HandleTypeDef hadc1;


void SystemClock_Config(void);

static void MX_GPIO_Init(void);

static void MX_ADC1_Init(void);

void Error_Handler(void);


int main(void)

{

HAL_Init();

SystemClock_Config();

MX_GPIO_Init();

MX_ADC1_Init();


while (1)

{

HAL_ADC_Start(&hadc1);

if (HAL_ADC_PollForConversion(&hadc1, 10) == HAL_OK)

{

uint16_t adc_val = HAL_ADC_GetValue(&hadc1);


if (adc_val > 2500) // Tanah kering

{

HAL_GPIO_WritePin(LED_PORT, Green, GPIO_PIN_SET); // Nyalakan hijau

HAL_GPIO_WritePin(LED_PORT, Red | Blue, GPIO_PIN_RESET); // Matikan merah dan biru

}

else

{

// Tanah basah

HAL_GPIO_WritePin(LED_PORT, Red | Green | Blue, GPIO_PIN_RESET); // Matikan semua

}

}

HAL_Delay(200);

}

}


void SystemClock_Config(void)

{

RCC_OscInitTypeDef RCC_OscInitStruct = {0};

RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};

RCC_PeriphCLKInitTypeDef PeriphClkInit = {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();

}


PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC;

PeriphClkInit.AdcClockSelection = RCC_ADCPCLK2_DIV2;

if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)

{

Error_Handler();

}

}


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;

if (HAL_ADC_Init(&hadc1) != HAL_OK)

{

Error_Handler();

}


sConfig.Channel = ADC_CHANNEL_0;

sConfig.Rank = ADC_REGULAR_RANK_1;

sConfig.SamplingTime = ADC_SAMPLETIME_1CYCLE_5;

if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != 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();


HAL_GPIO_WritePin(GPIOB, Red | Green | Blue, GPIO_PIN_RESET);


GPIO_InitStruct.Pin = Red | Green | Blue;

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

}


void Error_Handler(void)

{

__disable_irq();

while (1)

{

}

}


#ifdef USE_FULL_ASSERT

void assert_failed(uint8_t *file, uint32_t line)

{

}

#endif /* USE_FULL_ASSERT */


5. Kondisi[Kembali]

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

6. Video Simulasi[Kembali]

     



7. Download File[Kembali]

Rangkaian [Download
Listing Program [Download]
Video Simulasi [Download]
Datasheet STM32F103C8  [Download]
Datasheet Sensor Soil Moisture [Download]
Datasheet LED RGB [Download]
  










Tidak ada komentar:

Posting Komentar

Entri yang Diunggulkan

Elektronika

 BAHAN PRESENTASI UNTUK MATA KULIAH  ELEKTRONIKA C Disusun Oleh : Nabilah Darma Fitri 2210953003 Dosen Pengampu : Dr. Darwison, M.T JURUSAN ...