LAPORAN AKHIR PRATIKUM



1. Prosedur [Kembali]

  • Catu Daya Aktif
    • Power supply 5V DC menyalakan Arduino Master, Arduino Slave, sensor api, dan relay.
  • Inisialisasi Sistem
    • Arduino Master dan Slave melakukan inisialisasi pin input/output dan komunikasi antar Arduino.
  • Pembacaan Sensor
    • Sensor api mendeteksi keberadaan nyala api.
    • Sinyal sensor dikirim ke Arduino Master sebagai input digital/analog.
  • Pemrosesan oleh Master
    • Jika tidak ada api:
      • LED indikator mati.
      • Master mengirim perintah OFF ke Slave.
    • Jika api terdeteksi:
      • LED indikator menyala.
      • Master mengirim perintah ON ke Slave.
  • Komunikasi Master–Slave
    • Data perintah dikirim dari Master ke Slave melalui jalur komunikasi yang telah ditentukan.
  • Pengendalian Aktuator oleh Slave
    • Slave menerima perintah dari Master.
    • Slave mengaktifkan relay jika perintah ON diterima.
  • Aktivasi Kipas DC
    • Relay menghubungkan catu daya ke kipas DC.
    • Kipas menyala untuk membantu pendinginan atau pemadaman.
  • Monitoring Berulang
    • Sistem terus memantau kondisi sensor api secara real-time.
    • Jika api hilang, kipas dan LED akan otomatis mati.
  • 2. Hardware dan Diagram Blok[Kembali]

    1. STM32F103C8

    Bagian - bagian 



    2.  LED 
    Light Emitting Diode atau sering disingkat dengan LED adalah komponen elektronika yang dapat memancarkan  cahaya monokromatik ketika diberikan tegangan maju. LED merupakan keluarga Dioda yang terbuat dari bahan semikonduktor. Warna-warna Cahaya yang dipancarkan oleh LED tergantung pada jenis bahan semikonduktor yang dipergunakannya. LED juga dapat memancarkan sinar inframerah yang tidak tampak oleh mata seperti yang sering kita jumpai pada Remote Control TV ataupun Remote Control perangkat elektronik lainnya.


    Tabel. Warna dan Material LED

    Warna
    Panjanggelombang [nm]
    Material semikonduktor

    λ > 760
    Gallium arsenide (GaAs)Aluminium gallium arsenide (AlGaAs)

    610 < λ < 760
    Aluminium gallium arsenide (AlGaAs)Gallium arsenide phosphide (GaAsP)Aluminium gallium indium phosphide (AlGaInP)Gallium(III) phosphide (GaP)

    590 < λ < 610
    Gallium arsenide phosphide (GaAsP)Aluminium gallium indium phosphide (AlGaInP)Gallium(III) phosphide (GaP)

    570 < λ < 590
    Gallium arsenide phosphide (GaAsP)Aluminium gallium indium phosphide (AlGaInP)Gallium(III) phosphide (GaP)

    500 < λ < 570
    Indium gallium nitride (InGaN) / Gallium(III) nitride (GaN)Gallium(III) phosphide (GaP)Aluminium gallium indium phosphide (AlGaInP)Aluminium gallium phosphide (AlGaP)

    450 < λ < 500
    Zinc selenide (ZnSe)Indium gallium nitride (InGaN)

    400 < λ < 450
    Indium gallium nitride (InGaN)

    multiple types
    Dual blue/red LEDs,
    blue with red phosphor,
    or white with purple plastic

    λ < 400
    Diamond (235 nm) Boron nitride (215 nm) Aluminium nitride (AlN) (210 nm) Aluminium gallium nitride (AlGaN)Aluminium gallium indium nitride (AlGaInN) – (down to 210 nm)

    multiple types
    Blue with one or two phosphor layers:
    yellow with red, orange or pink phosphor added afterwards,
    or white with pink pigment or dye.

    White
    Broad spectrum
    Blue/UV diode with yellow phosphor


    Bagian bagian

    Komponen LED tampak seperti lampu yang dipakai dalam sebuah rangkaian elektronika, walaupun sejatinya dia adalah Diode yang berpendar.

    Yang harus diperhatikan adalah kaki sebuah LED, dibuat berbeda panjangnya.

    Kaki yang panjang menunjukkan kutub positif, sementara yang pendek menunjukkan kutub negatif

    3. Resistor

    Resistor adalah komponen Elektronika Pasif yang memiliki nilai resistansi atau hambatan tertentu yang berfungsi untuk membatasi dan mengatur arus listrik dalam suatu rangkaian Elektronika (V=I R). 
    Jenis Resistor yang digunakan disini adalah Fixed Resistor, dimana merupakan resistor dengan nilai tetap terdiri dari film tipis karbon yang diendapkan subtrat isolator kemudian dipotong berbentuk spiral. Keuntungan jenis fixed resistor ini dapat menghasilkan resistor dengan toleransi yang lebih rendah.
    Cara menghitung nilai resistor:
    Tabel warna

    Contoh :
    Gelang ke 1 : Coklat = 1
    Gelang ke 2 : Hitam = 0
    Gelang ke 3 : Hijau   = 5 nol dibelakang angka gelang ke-2; atau kalikan 105
    Gelang ke 4 : Perak  = Toleransi 10%
    Maka nilai resistor tersebut adalah 10 * 105 = 1.000.000 Ohm atau 1 MOhm dengan toleransi 10%.

    Spesifikasi

    4. Buzzer

    Buzzer adalah sebuah komponen elektronika yang berfungsi untuk mengubah getaran listrik menjadi getaran suara. Buzzer biasa digunakan sebagai indikator bahwa proses telah selesai atau terjadi suatu kesalahan pada sebuah alat (alarm).

    Bagian - bagian


    5. Sensor Heart Beat
     





    1. Pulse Sensor Features and Specifications

      • Biometric Pulse Rate or Heart Rate detecting sensor
      • Plug and Play type sensor
      • Operating Voltage: +5V or +3.3V
      • Current Consumption: 4mA
      • Inbuilt Amplification and Noise cancellation circuit.
      • Diameter: 0.625”
      • Thickness: 0.125” Thick

    6. Vcc / Batrey



    Spesifikasi

    • Input voltage: ac 100~240v / dc 10~30v
    • Output voltage: dc 1~35v
    • Max. Input current: dc 14a
    • Charging current: 0.1~10a
    • Discharging current: 0.1~1.0a
    • Balance current: 1.5a/cell max
    • Max. Discharging power: 15w
    • Max. Charging power: ac 100w / dc 250w
    • Jenis batre yg didukung: life, lilon, lipo 1~6s, lihv 1-6s, pb 1-12s, nimh, cd 1-16s
    • Ukuran: 126x115x49mm
    • Berat: 460gr

    7. Push Button




    Spesifikasi:





    Cara-Kerja-Push-Button

    Prinsip kerja push button pada dasarnya adalah untuk menghubungkan dan memutuskan aliran listrik. Namun, tombol tekan tidak memiliki kunci dan akan kembali ke posisi semula setelah ditekan.

    Ketika tombol tekan ditekan, nilainya menjadi HIGH dan mengalirkan arus listrik. Namun, setelah dilepas, tombol akan bernilai LOW dan memutuskan arus listrik.

    Namun, bagaimana tombol tekan bekerja bisa berbeda tergantung dari jenis tombol tersebut, apakah itu NO atau NC.

    Oleh karena itu, penting untuk memahami konsep dasar dan spesifikasi dari tombol tekan yang akan digunakan pada setiap proyek.


    Blok Diagram



    3. Rangkaian Simulasi dan Prinsip Kerja[Kembali]

    Rangkaian Simulasi :


    Prinsip Kerja :

    Sistem ini bekerja dengan memanfaatkan sensor LDR (Light Dependent Resistor) sebagai pendeteksi intensitas cahaya yang dihasilkan oleh sumber tertentu, seperti nyala api atau cahaya terang. Perubahan intensitas cahaya akan menyebabkan nilai resistansi LDR berubah, kemudian dikonversi menjadi sinyal tegangan dan dibaca oleh Arduino Nano yang berperan sebagai Master. Arduino Master mengolah data dari sensor LDR untuk menentukan kondisi sistem. Apabila intensitas cahaya yang diterima LDR melebihi ambang batas yang telah ditentukan, Arduino Master akan menyalakan LED sebagai indikator dan mengirimkan sinyal perintah ke Arduino Nano Slave melalui jalur komunikasi. Arduino Slave kemudian menerima perintah tersebut dan mengaktifkan modul relay, sehingga kipas DC dapat menyala untuk melakukan pendinginan atau respons otomatis terhadap kondisi cahaya yang terdeteksi. Sebaliknya, jika intensitas cahaya berada di bawah ambang batas, Arduino Master akan mematikan LED dan mengirimkan perintah untuk menonaktifkan relay, sehingga kipas DC dalam keadaan mati. Proses ini berlangsung secara terus-menerus sehingga sistem mampu bekerja secara real-time dan otomatis.

    4. Flowchart dan LIsting Program[Kembali]

    Flowchart 

    MASTER









    Listing Program :


    #include "main.h"

    ADC_HandleTypeDef hadc1;

    SPI_HandleTypeDef hspi1;

    uint8_t txData[2];

    uint32_t ldrValue;

    void SystemClock_Config(void);

    static void MX_GPIO_Init(void);

    static void MX_ADC1_Init(void);

    static void MX_SPI1_Init(void);

    /*=========================================================*/

    uint32_t Read_LDR(void)

    {

    HAL_ADC_Start(&hadc1);

    HAL_ADC_PollForConversion(&hadc1,100);

    return HAL_ADC_GetValue(&hadc1);

    }

    /*=========================================================*/

    int main(void)

    {

    HAL_Init();

    SystemClock_Config();

    MX_GPIO_Init();

    MX_ADC1_Init();

    MX_SPI1_Init();

    while (1)

    {

    ldrValue = Read_LDR();

    if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0)==GPIO_PIN_RESET)

    txData[0] = 1;

    else

    txData[0] = 0;

    if(ldrValue < 1500)

    txData[1] = 1;

    else

    txData[1] = 0;

    HAL_SPI_Transmit(&hspi1, txData, 2, 100);

    HAL_Delay(200);

    }

    }

    /*=========================================================*/

    void SystemClock_Config(void)

    { }

    /*=========================================================*/

    static void MX_GPIO_Init(void)

    {

    GPIO_InitTypeDef GPIO_InitStruct = {0};

    __HAL_RCC_GPIOA_CLK_ENABLE();

    __HAL_RCC_GPIOB_CLK_ENABLE();

    GPIO_InitStruct.Pin = GPIO_PIN_0;

    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;

    GPIO_InitStruct.Pull = GPIO_PULLUP;

    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

    }

    /*=========================================================*/

    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;

    HAL_ADC_Init(&hadc1);

    sConfig.Channel = ADC_CHANNEL_9;

    sConfig.Rank = ADC_REGULAR_RANK_1;

    sConfig.SamplingTime = ADC_SAMPLETIME_71CYCLES_5;

    HAL_ADC_ConfigChannel(&hadc1, &sConfig);

    }

    /*=========================================================*/

    static void MX_SPI1_Init(void)

    {

    hspi1.Instance = SPI1;

    hspi1.Init.Mode = SPI_MODE_MASTER;

    hspi1.Init.Direction = SPI_DIRECTION_2LINES;

    hspi1.Init.DataSize = SPI_DATASIZE_8BIT;

    hspi1.Init.CLKPolarity = SPI_POLARITY_LOW;

    hspi1.Init.CLKPhase = SPI_PHASE_1EDGE;

    hspi1.Init.NSS = SPI_NSS_HARD_OUTPUT;

    hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;

    hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB;

    hspi1.Init.TIMode = SPI_TIMODE_DISABLE;

    hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;

    hspi1.Init.CRCPolynomial = 7;

    HAL_SPI_Init(&hspi1);

    }

    #include "main.h"

    SPI_HandleTypeDef hspi1;

    uint8_t rxData[2];

    void SystemClock_Config(void);

    static void MX_GPIO_Init(void);

    static void MX_SPI1_Init(void);

    /*=========================================================*/

    int main(void)

    {

    HAL_Init();

    SystemClock_Config();

    MX_GPIO_Init();

    MX_SPI1_Init();

    while (1)

    {

    HAL_SPI_Receive(&hspi1, rxData, 2, HAL_MAX_DELAY);

    if(rxData[0]==1)

    HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_SET);

    else

    HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_RESET);

    if(rxData[1]==1)

    HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_RESET);

    else

    HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_SET);

    }

    }

    /*=========================================================*/

    void SystemClock_Config(void)

    { }

    /*=========================================================*/

    static void MX_GPIO_Init(void)

    {

    GPIO_InitTypeDef GPIO_InitStruct = {0};

    __HAL_RCC_GPIOA_CLK_ENABLE();

    __HAL_RCC_GPIOB_CLK_ENABLE();

    HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0|GPIO_PIN_1,

    GPIO_PIN_RESET);

    GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1;

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

    }

    /*=========================================================*/

    static void MX_SPI1_Init(void)

    {

    hspi1.Instance = SPI1;

    hspi1.Init.Mode = SPI_MODE_SLAVE;

    hspi1.Init.Direction = SPI_DIRECTION_2LINES;

    hspi1.Init.DataSize = SPI_DATASIZE_8BIT;

    hspi1.Init.CLKPolarity = SPI_POLARITY_LOW;

    hspi1.Init.CLKPhase = SPI_PHASE_1EDGE;

    hspi1.Init.NSS = SPI_NSS_HARD_INPUT;

    hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB;

    hspi1.Init.TIMode = SPI_TIMODE_DISABLE;

    hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;

    hspi1.Init.CRCPolynomial = 7;

    HAL_SPI_Init(&hspi1);

    }



    5. Video Demo [Kembali]

    6. Analisa[Kembali]













    7. Video Simulasi[Kembali]


    8. Download File [Kembali]


    1. Download HTML [disini]

    2. Download Rangkaian Proteus [klik disini]

    3.  Download Vidio Rangkaian [disini]

    4.Download Vidio Demo [tekan disini]

    5. Download Datasheet Sensor: 

    6. Download library Komponen: 

    7. Download datasheet Motor [disini]

    8. Download datasheet Led [disini]

    9. Download listing program [disini]

    10. Download data sheet stm32 [disini]

    11. Download LA [disini]








    Tidak ada komentar:

    Posting Komentar

    LAPORAN AKHIR PRATIKUM

    [KEMBALI KE MENU SEBELUMNYA] DAFTAR ISI 1. Prosedur 2. Hardware dan Diagram Blok 3. Rangkaian Simulasi dan Prinsip Kerja 4. F...