LA M1 - Percobaan 4

[menuju akhir]

1. Prosedur [kembali]

1.siapkan PIR sensor, Touch sensor, dan 1 RGB LED

2.pilih STM32

3.buat rangkaian seperti percobaan 4 pada modul


2. Hardware dan Diagram Blok [kembali]

  • STM32

STM32 merupakan keluarga mikrokontroler berbasis ARM Cortex-M yang dikembangkan oleh STMicroelectronics. Mikrokontroler ini dirancang untuk aplikasi embedded system dengan berbagai fitur unggulan, termasuk efisiensi daya, performa tinggi, serta dukungan periferal yang luas.

Keunggulan STM32:

  • Arsitektur ARM Cortex-M yang mendukung berbagai tingkatan performa, mulai dari Cortex-M0 untuk aplikasi hemat daya hingga Cortex-M7 untuk komputasi berkecepatan tinggi.

  • Beragam varian dan konfigurasi, memungkinkan fleksibilitas dalam pemilihan sesuai dengan kebutuhan sistem.

  • Dukungan periferal yang luas, seperti ADC, PWM, UART, SPI, I2C, USB, dan Ethernet, yang memudahkan komunikasi dengan berbagai perangkat eksternal.

  • Penggunaan Hardware Abstraction Layer (HAL) yang menyederhanakan proses pemrograman dan meningkatkan kompatibilitas antar perangkat.

  • Kompatibilitas dengan berbagai lingkungan pengembangan, seperti STM32CubeIDE, Keil, IAR Embedded Workbench, dan Arduino (STM32duino).

Aplikasi STM32:

Mikrokontroler STM32 banyak digunakan dalam berbagai bidang, antara lain:

  • Sistem kendali motor (BLDC, servo, dan stepper)

  • Otomasi industri dan robotika

  • Sistem Internet of Things (IoT)

  • Pengolahan sinyal digital (DSP)

  • Elektronika medis dan perangkat pintar

Dengan keunggulan tersebut, STM32 menjadi salah satu pilihan utama bagi insinyur dan pengembang dalam merancang sistem tertanam yang efisien dan berkinerja tinggi.


  • RGB Led

RGB LED (Red, Green, Blue LED) adalah jenis LED yang terdiri dari tiga warna dasar—merah, hijau, dan biru—yang dapat dikombinasikan untuk menghasilkan berbagai warna cahaya. Dengan mengatur intensitas masing-masing warna, RGB LED dapat menampilkan spektrum warna yang luas.

RGB LED umumnya dikendalikan menggunakan mikrokontroler atau rangkaian elektronik dengan teknik PWM (Pulse Width Modulation) untuk mengatur kecerahan setiap warna. Ada dua jenis utama RGB LED:

  1. Common Anode – Katoda (negatif) masing-masing warna terpisah, sementara anoda (positif) terhubung bersama.

  2. Common Cathode – Anoda (positif) masing-masing warna terpisah, sementara katoda (negatif) terhubung bersama.

RGB LED sering digunakan dalam dekorasi, tampilan visual, indikator status, dan proyek elektronik interaktif.


  • TOUCH SENSOR

Touch sensor adalah sensor yang mendeteksi sentuhan fisik atau tekanan pada permukaannya. Sensor ini bekerja dengan prinsip kapasitif atau resistif, di mana perubahan kapasitansi atau resistansi akibat sentuhan akan dikenali oleh rangkaian elektronik di dalamnya.

Cara Kerja Touch Sensor

  1. Sensor Kapasitif

    • Menggunakan medan listrik untuk mendeteksi kehadiran benda konduktif (seperti jari manusia).

    • Ketika jari menyentuh permukaan sensor, kapasitansi berubah dan sensor mengenali sebagai input aktif.

  2. Sensor Resistif

    • Terdiri dari dua lapisan konduktif yang terpisah oleh ruang kecil.

    • Saat ditekan, kedua lapisan bersentuhan dan resistansi berubah, yang diterjemahkan menjadi sinyal input.



  • PIR SENSOR

Sensor PIR (Passive Infrared Sensor) adalah sensor yang mendeteksi pergerakan berdasarkan perubahan radiasi inframerah di sekitarnya. Sensor ini sering digunakan dalam sistem keamanan, pencahayaan otomatis, dan aplikasi lain yang memerlukan deteksi gerakan.

Cara Kerja Sensor PIR

  1. Deteksi Radiasi Infrared

    • Setiap objek dengan suhu di atas nol mutlak memancarkan radiasi inframerah.

    • Sensor PIR memiliki dua elemen peka panas yang menangkap perubahan radiasi di sekitarnya.

  2. Perubahan Radiasi (Gerakan Terdeteksi)

    • Jika tidak ada gerakan, kedua elemen menerima jumlah radiasi yang sama.

    • Jika ada objek bergerak (misalnya manusia), satu elemen akan menerima perubahan radiasi lebih dulu, yang memicu sinyal output sensor.

  3. Keluaran Sinyal Digital

    • Jika sensor mendeteksi perubahan radiasi, output akan bernilai HIGH (1).

    • Jika tidak ada gerakan, output akan LOW (0).



3. Rangkaian Simulasi dan Prinsip Kerja [kembali]


Rangkaian ini menggunakan PIR sensor dan Touch sensor sebagai input yang dihubungkan ke pin GPIO pada STM32 dan diinisialisasi sebagai pin input pada program. Output dari rangkaian ini menggunakan RGB LED yang dihubungkan ke pin GPIO dan diinisialisasi sebagai pin output pada program. RGB LED akan bewarna merah selama 3 detik lalu mati 3 detik dan terus berulang selama PIR mendeteksi gerakan. RGB LED akan bewarna biru selama 3 detik lalu mati 3 detik dan terus berulang ketika Touch sensor ditekan.




  • 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 pir_status = HAL_GPIO_ReadPin(GPIOB, PIR_Pin);

        uint8_t touch_status = HAL_GPIO_ReadPin(GPIOB, TOUCH_Pin);


        HAL_GPIO_WritePin(BLUE_GPIO_Port, BLUE_Pin, pir_status);


        if (touch_status == GPIO_PIN_SET)

        {

            HAL_GPIO_WritePin(GPIOA, RED_Pin, GPIO_PIN_RESET);

            HAL_GPIO_WritePin(GPIOA, GREEN_Pin, GPIO_PIN_SET);

            HAL_Delay(3000);

            HAL_GPIO_WritePin(GPIOA, GREEN_Pin, GPIO_PIN_RESET);

            HAL_Delay(3000);

        }

        else

        {

            if (pir_status == GPIO_PIN_RESET && touch_status == GPIO_PIN_RESET)

            {

                HAL_GPIO_WritePin(GPIOA, RED_Pin, GPIO_PIN_SET);

            }

            else

            {

                HAL_GPIO_WritePin(GPIOA, RED_Pin, GPIO_PIN_RESET);

            }

        }

    }

}


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


    HAL_GPIO_WritePin(GPIOA, RED_Pin | GREEN_Pin, GPIO_PIN_RESET);

    HAL_GPIO_WritePin(BLUE_GPIO_Port, BLUE_Pin, GPIO_PIN_RESET);


    GPIO_InitStruct.Pin = RED_Pin | GREEN_Pin;

    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 = BLUE_Pin;

    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;

    GPIO_InitStruct.Pull = GPIO_NOPULL;

    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;

    HAL_GPIO_Init(BLUE_GPIO_Port, &GPIO_InitStruct);


    GPIO_InitStruct.Pin = PIR_Pin | TOUCH_Pin;

    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. Analisa [kembali]





6. Video Percobaan [kembali]








7. Download file [kembali]

  • Datasheet PIR sensor klik
  • Datasheet Touch sensor klik
  • Datasheet STM32 klik









[menuju awal]







Tidak ada komentar:

Posting Komentar

    BAHAN PRESENTASI UNTUK MATA KULIAH  ELEKTRONIKA 2022 Nama: Adnan Fauzan    NIM: 2210953001 Elektronika B Dosen Pengampu ; Darwison,M.T R...