Tugas Pendahuluan 1




Tugas Pendahuluan 1 Modul 1
(Percobaan 1 Kondisi 5)

1. Prosedur
[Kembali]

1. Rangkai rangkaian di proteus sesuai dengan kondisi percobaan.

2. Tulis program untuk IC STM32 di software STM32IDE.

3. Compile program tadi, lalu upload file dengan format .hex ke dalam IC STM32.

4. Setelah program selesai di upload, jalankan simulasi rangkaian pada proteus


2. Hardware dan Diagram Blok [Kembali]

a. Hardware
1. STM32F103C8
Fungsi utama STM32 adalah sebagai pengontrol sistem, mampu melakukan pemrosesan data dan menjalankan instruksi untuk berbagai aplikasi, mulai dari perangkat sederhana hingga sistem yang kompleks. 

2. Motor Stepper

Motor stepper memiliki fungsi utama untuk mengubah pulsa listrik menjadi gerakan mekanis yang presisi, yaitu gerakan diskrit atau langkah-langkah. Gerakan ini memungkinkan kontrol posisi dan kecepatan yang akurat tanpa sensor umpan balik.

3. ULN2003A
ULN2003 adalah IC driver yang berfungsi untuk mengendalikan beban induktif seperti motor stepper, solenoid, dan relai dari mikrokontroler atau rangkaian logika lainnya. IC ini dapat digunakan untuk menggerakkan perangkat berarus tinggi atau bertegangan tinggi yang tidak dapat ditoleransi oleh mikrokontroler. 

4. LED RGB

5. Soil Sensor
6. Resistor
7.  Kapasitor

b. Diagram Blok




3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

Rangkaian Simulasi :






Prinsip Kerja : 

Saat sistem dinyalakan, program menginisialisasi clock internal HSI 8MHz, GPIO untuk LED RGB, dan ADC1 untuk membaca sensor kelembaban. Inisialisasi ini mengatur kecepatan sampling ADC dan konfigurasi pin I/O.

Dalam operasi normal, program secara periodik mengaktifkan ADC untuk membaca tegangan dari sensor kelembaban tanah. Tegangan ini dikonversi menjadi data digital 12-bit (0–4095) dengan waktu sampling 71,5 siklus clock. Data ini diproses: jika nilai ADC antara 1500–3000, LED merah menyala, sedangkan LED hijau dan biru mati. Jika di luar rentang tersebut, semua LED dimatikan. Kontrol LED dilakukan melalui register GPIO.

Setiap pembacaan ADC diberi jeda 10ms untuk stabilisasi sinyal dan efisiensi daya. Pada sisi hardware, kapasitor decoupling menjaga kestabilan suplai, dan pull-up/pull-down pin menentukan level default.

Program berinteraksi langsung dengan hardware STM32 melalui register kontrol menggunakan library HAL. Misalnya, fungsi HAL_ADC_Start() mengaktifkan ADC untuk sampling dan konversi berbasis SAR.



4. Flowchart dan Listing Program [Kembali]

Flowchart :




Listing Program :

#include "stm32f1xx_hal.h" // Definisi pin LED RGB #define LED_RED_PIN GPIO_PIN_12 #define LED_GREEN_PIN GPIO_PIN_13 #define LED_BLUE_PIN GPIO_PIN_14 #define LED_PORT GPIOB ADC_HandleTypeDef hadc1; // Handle ADC // Deklarasi fungsi void SystemClock_Config(void); void MX_GPIO_Init(void); void MX_ADC1_Init(void); void Error_Handler(void); int main(void) { // Inisialisasi HAL dan konfigurasi sistem HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_ADC1_Init(); while (1) { // Mulai pembacaan ADC HAL_ADC_Start(&hadc1); // Tunggu hingga konversi selesai if (HAL_ADC_PollForConversion(&hadc1, 10) == HAL_OK) { uint16_t adc_val = HAL_ADC_GetValue(&hadc1); // Jika kelembaban tanah dalam kondisi normal, nyalakan LED merah if (adc_val >= 1500 && adc_val <= 3000) { HAL_GPIO_WritePin(LED_PORT, LED_RED_PIN, GPIO_PIN_SET); HAL_GPIO_WritePin(LED_PORT, LED_GREEN_PIN | LED_BLUE_PIN, GPIO_PIN_RESET); } else { // Matikan semua LED jika kelembaban tidak normal HAL_GPIO_WritePin(LED_PORT, LED_RED_PIN | LED_GREEN_PIN | LED_BLUE_PIN, GPIO_PIN_RESET); } } HAL_Delay(10); // Delay untuk memberi waktu antara pembacaan } } void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct = {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; // Konfigurasi osilator internal HSI RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; RCC_OscInitStruct.HSIState = RCC_HSI_ON; RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { Error_Handler(); } // Konfigurasi clock sistem 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(); } } void MX_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct = {0}; // Aktifkan clock untuk GPIOB __HAL_RCC_GPIOB_CLK_ENABLE(); // Set pin LED RGB sebagai output GPIO_InitStruct.Pin = LED_RED_PIN | LED_GREEN_PIN | LED_BLUE_PIN; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_PULLDOWN; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; HAL_GPIO_Init(LED_PORT, &GPIO_InitStruct); } void MX_ADC1_Init(void) { ADC_ChannelConfTypeDef sConfig = {0}; // Inisialisasi ADC1 hadc1.Instance = ADC1; hadc1.Init.ScanConvMode = ADC_SCAN_DISABLE; hadc1.Init.ContinuousConvMode = DISABLE; hadc1.Init.DiscontinuousConvMode = DISABLE; hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT; hadc1.Init.NbrOfConversion = 1; if (HAL_ADC_Init(&hadc1) != HAL_OK) { Error_Handler(); } // Konfigurasi channel ADC sConfig.Channel = ADC_CHANNEL_0; sConfig.Rank = ADC_REGULAR_RANK_1; sConfig.SamplingTime = ADC_SAMPLETIME_71CYCLES_5; if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK) { Error_Handler(); } } void Error_Handler(void) { // Loop terus di sini jika terjadi error while (1) { } }
5. Kondisi [Kembali]

Percobaan 2 Kondisi 2
Buatlah rangkaian seperti gambar pada percobaan 2, buatlah ketika soil moisture sensor mendeteksi kelembapan tanah normal, LED RGB menampilkan warna Merah

6. Video Simulasi [Kembali]









7. Download File [Kembali]
Download file rangkaian klik disini
Download video Simulasi klik disini
Datasheet Mikrokontroler STM32F103C8 [Download]
Datasheet Soil Moisture Sensor [Download]
Datasheet RGB LED [Download]



Tidak ada komentar:

Posting Komentar

  Aldi Kurniawan 2210952047