BAHAN PRESENSTASI UNTUK MATA KULIAH ELEKTRONIKA 2022




Oleh :

Adib Naufal Sayyid

2210953002 


Dosen Pengampu :

Darwison, M.T.

Rizki Wahyu Pratama, M.T


Referensi:

a. Darwison, 2010, ” Teori, Simulasi, dan Aplikasi Elektronika ” ”, Jilid 1, ISBN: 978-602-9081-10-7, CV Ferila, Padang. 
b. Darwison, 2010, ” Teori, Simulasi, dan Aplikasi Elektronika ””,Jilid 2,  ISBN: 978-602-9081-10-8, CV Ferila, Padang.
c. Robert L. Boylestad and Louis Nashelsky, Electronic Devices and Circuit Theory, Pearson, 2013 
d. Jimmie J. Cathey, Theory and Problems of Electronic Device and Circuit, McGraw Hill, 2002.
e. Keith Brindley, Starting Electronics, Newness 3rd Edition, 2005.
f. Ian R. Sinclair and John Dunton, Practical Electronics Handbook, Newness, 2007.
g. John M. Hughes, Practical Electronics: Components and Techniques, O’Reilly Media, 2016.
 


Jurusan Teknik Elektro
Fakultas Teknik
Padang 2022

tp modul 1 percobaan 2






1. Prosedur [kembali]
  1. Siapkan Komponen komponen yang diperlukan
  2. Rangkai sesuai gambar dan kondisi
  3. Siapkan listing program dan konfigurasi pin sesuai proteus pada software STM32CubeIDE
  4. Import listing program ke proteus
  5. Running proteus untuk melihat Hasil


2. Hardware dan Diagram Blok [kembali]
  • STM32F103C8


  • TOUCH SENSOR

Mendeteksi Sentuhan dan merubahnya menjadi energi listrik.

  • INFRARED SENSOR

Mendeteksi panas dan juga pergerakan

  • RGB LED


3. Rangkaian Simulasi dan Prinsip Kerja [kembali]



prinsip kerjanya :
1. Input dari Sensor

Infrared Sensor (IR Obstacle Sensor)
  • Sensor ini mendeteksi keberadaan objek di depannya.
  • Jika ada objek, sensor akan mengeluarkan sinyal HIGH (1) pada pin OUT.
  • Jika tidak ada objek, sensor akan mengeluarkan sinyal LOW (0).
Touch Sensor
  • Sensor ini berfungsi untuk mendeteksi sentuhan.
  • Saat disentuh, sensor memberikan sinyal HIGH (1) pada pin OUT.
  • Jika tidak disentuh, sensor tetap pada keadaan LOW (0).
2. Pemrosesan oleh Mikrokontroler (STM32F103C8)
  • Mikrokontroler membaca sinyal dari sensor IR dan sensor sentuh melalui pin GPIO.
  • Berdasarkan data yang diterima, STM32 akan mengaktifkan atau menonaktifkan LED RGB yang terhubung ke pin keluarannya.
  • Rangkaian resistor (R2, R3, R4) membatasi arus menuju LED untuk menghindari kerusakan.
3. Output ke LED RGB
  • LED RGB memiliki 3 pin warna utama (Red, Green, Blue) yang dapat dikendalikan secara independen.
  • Mikrokontroler menyalakan LED berdasarkan sinyal input dari sensor:
  • Jika sensor IR mendeteksi objek, STM32 dapat mengaktifkan satu warna LED.
  • Jika sensor sentuh ditekan, warna lain dari LED dapat diaktifkan.


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 ir_status = HAL_GPIO_ReadPin(GPIOB, IR_Pin); // Membaca IR sensor (PB10)

        uint8_t touch_status = HAL_GPIO_ReadPin(GPIOB, TOUCH_Pin); // Membaca Touch Sensor (PB6)



        // Matikan LED Biru karena tidak digunakan

        HAL_GPIO_WritePin(BLUE_GPIO_Port, BLUE_Pin, GPIO_PIN_RESET);



        if (ir_status == GPIO_PIN_SET && touch_status == GPIO_PIN_RESET) {

            // *Jika IR aktif dan Touch mati, LED Merah menyala*

            HAL_GPIO_WritePin(GPIOA, RED_Pin, GPIO_PIN_SET);

            HAL_GPIO_WritePin(GPIOA, GREEN_Pin, GPIO_PIN_RESET);

        }

        else if (touch_status == GPIO_PIN_SET) {

            // *Jika Touch aktif, LED Kuning (Merah + Hijau) menyala*

            HAL_GPIO_WritePin(GPIOA, RED_Pin, GPIO_PIN_SET);

            HAL_GPIO_WritePin(GPIOA, GREEN_Pin, GPIO_PIN_SET);

        }

        else {

            // *Jika tidak ada sensor aktif, semua LED mati*

            HAL_GPIO_WritePin(GPIOA, RED_Pin, GPIO_PIN_RESET);

            HAL_GPIO_WritePin(GPIOA, GREEN_Pin, 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 pin Output Level */

    HAL_GPIO_WritePin(GPIOA, RED_Pin | GREEN_Pin, GPIO_PIN_RESET);

    HAL_GPIO_WritePin(BLUE_GPIO_Port, BLUE_Pin, GPIO_PIN_RESET);



    /* Konfigurasi GPIO pin untuk LED Merah dan Hijau */

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



    /* Konfigurasi GPIO pin untuk LED Biru */

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



    /* Konfigurasi GPIO pin untuk IR Sensor dan Touch Sensor */

    GPIO_InitStruct.Pin = IR_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)

    {

    }

}



#ifdef USE_FULL_ASSERT

void assert_failed(uint8_t *file, uint32_t line)

{

}

#endif /* USE_FULL_ASSERT */


5. Video Demo [kembali]


6. Kondisi [kembali]

percobaan 2 kondisi 1
Buatlah Rangkaian seperti gambar percobaan 2 dengan kondisi ketika sensor Infrared mendeteksi gerakan dan sensor touch tidak mendeteksi sentuhan maka LED RGB akan menampilkan warna Merah


7. Video Simulasi [kembali]







8. Download file [kembali]

Komentar

Postingan populer dari blog ini