LA2 M1




1. Prosedur [Kembali]

  • Siapkan Komponen: Pastikan semua komponen tersedia dan periksa datasheet untuk pinout.
  • Identifikasi Pinout: Tentukan pin VCC, GND, dan output pada sensor PIR dan sentuh. Identifikasi pin Common Cathode dan warna (R, G, B) pada RGB LED. Tentukan pin GPIO pada STM32 yang akan digunakan.
  • Hubungkan Daya: Sambungkan +5V ke VCC sensor PIR dan sentuh. Sambungkan GND ke GND semua komponen.
  • Hubungkan Sensor PIR: Hubungkan output sensor PIR ke salah satu pin GPIO STM32.
  • Hubungkan RGB LED: Hubungkan Common Cathode RGB LED ke GND. Hubungkan masing-masing pin warna (R, G, B) melalui resistor ke pin GPIO STM32.
  • Hubungkan Sensor Sentuh: Hubungkan output sensor sentuh ke salah satu pin GPIO STM32.
  • Program Mikrokontroler: Tulis kode program untuk STM32 untuk membaca input sensor dan mengontrol warna RGB LED.
  • Uji Coba: Unggah kode, lakukan pengujian, dan periksa respons rangkaian terhadap input sensor. Sesuaikan kode jika diperlukan.
  • 2. Hardware dan Diagram Blog [Kembali]


    a) Mikrokontroler STM32F103C8

    STM32F103C8 board – Microscale


    2. Infrared Sensor

    \






    3. Touch Sensor

    Touch Sensor Module — SunFounder Ultimate Sensor Kit documentation



    4. Power Supply

     
    5. RGB LED
    Jual LED RGB 4 PIN WARNA MERAH HIJAU BIRU 5mm ( ARDUINO ) - Common Cathode  - Jakarta Barat - Ardushop-id | Tokopedia


    Blok Diagram :

    3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

     



      

    Rangkaian ini bekerja berdasarkan deteksi gerakan dan interaksi sentuhan, yang kemudian diindikasikan melalui perubahan warna pada sebuah RGB LED. Berikut adalah deskripsi prinsip kerjanya:

    Deteksi Gerakan (Melalui Sensor PIR):

    • Sensor PIR (Passive Infrared Sensor) memantau lingkungan untuk mendeteksi perubahan radiasi inframerah yang dipancarkan oleh objek bergerak, seperti manusia atau hewan.
    • Ketika sensor PIR mendeteksi adanya gerakan, ia akan menghasilkan sinyal HIGH pada pin output-nya.
    • Sinyal dari sensor PIR ini kemudian dibaca oleh mikrokontroler STM32F103C8 melalui salah satu pin input GPIO (dalam kode program, ini diidentifikasi sebagai PIR_Pin pada GPIOB).

    Deteksi Sentuhan (Melalui Sensor Sentuh):

    • Sensor sentuh adalah sensor kapasitif yang mendeteksi ketika ada sentuhan pada permukaannya.
    • Ketika sensor disentuh, ia akan menghasilkan sinyal HIGH pada pin output-nya.
    • Sinyal dari sensor sentuh ini juga dibaca oleh mikrokontroler STM32F103C8 melalui pin input GPIO lainnya (dalam kode program, ini diidentifikasi sebagai TOUCH_Pin pada GPIOB).

    Pengendalian RGB LED (Indikator Visual):

    • RGB LED adalah LED yang terdiri dari tiga warna dasar (Merah, Hijau, Biru) dalam satu kemasan. Dengan mengendalikan intensitas masing-masing warna, berbagai kombinasi warna dapat dihasilkan. Dalam rangkaian ini, digunakan RGB LED tipe Common Cathode, yang berarti semua pin katoda (negatif) LED dihubungkan bersama dan dihubungkan ke Ground (GND).
    • Mikrokontroler STM32F103C8 akan mengendalikan warna LED dengan cara mengirimkan sinyal HIGH atau LOW ke pin-pin output GPIO yang terhubung ke masing-masing warna LED (Merah, Hijau, Biru). Sinyal HIGH akan menyalakan warna tersebut (melalui resistor pembatas arus), dan sinyal LOW akan mematikannya.

    Logika Kontrol (Berdasarkan Kode Program):

    Kode program yang diunggah ke mikrokontroler akan menerapkan logika berikut untuk mengendalikan warna RGB LED:

    1. Jika Sensor Sentuh Ditekan: LED Hijau akan menyala selama beberapa saat (3 detik), memberikan indikasi adanya interaksi sentuhan. LED Merah dan Biru akan mati atau dalam keadaan tidak aktif selama periode ini.

    2. Jika Sensor Sentuh Tidak Ditekan:

      • Jika Tidak Ada Gerakan Terdeteksi (Sensor PIR LOW): LED Merah akan menyala. Ini bisa berfungsi sebagai indikator status "siaga" atau menunjukkan bahwa tidak ada aktivitas yang terdeteksi.
      • Jika Ada Gerakan Terdeteksi (Sensor PIR HIGH): LED Biru akan menyala. Ini memberikan indikasi visual bahwa gerakan telah terdeteksi oleh sensor PIR. LED Merah akan mati.
    3. Jika Sensor Sentuh Ditekan dan Jika Sensor PIR mendeteksi gerakan: led akan menyala berwarna cyan

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



    6. Kondisi [Kembali]

    PERCOBAAN 4

  • Deteksi Gerakan (PIR): Menyebabkan LED Biru menyala.
  • Deteksi Sentuhan: Menyebabkan LED Hijau menyala sebentar.
  • Tidak Ada Gerakan & Tidak Ada Sentuhan: LED Merah menyala sebagai indikator status diam.
  • 7. Analisa [Kembali]



    8. Download File [Kembali]

    -datasheet resistor [disini]
    -datasheet PIR sensor [disini]
    -datasheet TOUCH sensor [disini]
    -datasheet LED RGB [disini]

    Tidak ada komentar:

    Posting Komentar

      BAHAN PRESENTASI UNTUK MATA KULIAH  SISTEM DIGITAL 2024 OLEH: Afifah Febry Nabilla 2210952001 Dosen Pengampu: Darwison, M.T Referensi:  a....