LAPORAN AKHIR 1 Percobaan 1



 1. Prosedur [kembali]

1. Siapkan 2 STM32F103C8, LDR, push button, LED, fan, breadboard, dan jumper. 

2. Rangkai komunikasi SPI antar STM32 (MOSI, MISO, SCK, NSS, GND). 

3. Konfigurasikan SPI Master dan Slave pada STM32CubeIDE. 

4. Upload program master dan slave sesuai modul. 

5. Jalankan sistem dan amati: Push button mengontrol LED. LDR mengontrol fan.

 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. FAN


 



5.  Sensor LDR


  1. Spesifikasi Sensor Cahaya LDR

     

    1. Supply : 3.3 V – 5 V (arduino available)

    2. Output Type: Digital Output (0 and 1) 

    3. Inverse output

    4. Include IC LM393 voltage comparator

    5. Sensitivitasnya dapat diatur 

    6. Dimensi PCB size: 3.2 cm x 1.4 cm

     

    Modul sensor cahaya ini memudahkan Anda dalam menggunakan sensor LDR (Light Dependent Resistor) untuk mengukur intensitas cahaya. Modul LDR ini memiliki pin output analog dan pin output digital dengan label AO dan DO pada PCB. Nilai resistansi LDR pada pin analog akan meningkat apabila intensitas cahaya meningkat dan menurun ketika intensitas cahaya semakin gelap. Pada pin digital, pada batas tertentu DO akan high atau low, yang dikendalikan sensitivitas nya menggunakan on-board potensiometer.

    • Input Voltage: DC 3.3V - 5V

    • Output: Digital - Sensitivitas bisa diatur, dan analog

    • Ukuran PCB : 33 mm x 15 mm 

     

    LDR atau Light Dependent Resistor merupakan salah satu komponen jenis resistor dengan nilai resistansi yang terus berubah sesuai intensitas cahaya yang mengenai sensor. Semakin banyak cahaya yang mengenai sensor LDR, maka akan semakin menurun nilai resistansinya. Nah, semakin sedikit cahaya yang mengenai sensor (gelap), maka nilai resistansinya akan semakin besar, jadi arus listrik yang mengalir akan terhambat.

     

    Pada umumnya, sensor LDR mempunyai nilai resistansi sebesar 200 KOhm di tengah kegelapan dan akan turun menjadi 500 Ohm saat terkena banyak cahaya. Oleh karena itu, menjadi hal biasa apabila komponen elektronika yang peka cahaya ini sering digunakan untuk lampu alarm, kamar tidur, penerangan jalan dan lain sebagainya.

     

    LDR memiliki peran sebagai sensor cahaya di dalam aneka rangkaian elektronika seperti saklar otomatis berdasarkan cahaya. Jadi jika sensor terkena cahaya, maka arus listrik akan mengalir (ON) dan jika sensor berada di dalam kondisi minim cahaya alias gelap, maka aliran listrik akan terhambat (OFF). LDR sering digunakan untuk sensor lampu kamar tidur, penerangan jalan otomatis, alarm dan lain sebagainya





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.


 3. Rangkaian Simulasi Dan Prinsip Kerja [kembali]



Rangkaian ini bekerja menggunakan komunikasi SPI antara dua mikrokontroler STM32, yaitu master dan slave. STM32 master berfungsi membaca kondisi input dari sensor cahaya (LDR) dan push button. Ketika intensitas cahaya berubah atau tombol ditekan, master akan mengirimkan data perintah melalui jalur SPI berupa MOSI, MISO, SCK, dan NSS menuju STM32 slave. Slave kemudian memproses data tersebut untuk mengendalikan aktuator pada rangkaian. LED digunakan sebagai indikator kondisi sistem, sedangkan modul relay berfungsi sebagai saklar elektronik untuk menghubungkan atau memutus daya kipas DC. Saat kondisi tertentu terpenuhi, misalnya cahaya rendah terdeteksi oleh sensor atau tombol diaktifkan, master mengirim sinyal ke slave sehingga relay aktif dan kipas menyala. Sebaliknya, ketika kondisi tidak terpenuhi, relay akan mati dan kipas berhenti. Dengan demikian, sistem ini menunjukkan proses komunikasi data antar mikrokontroler menggunakan SPI untuk melakukan pengendalian perangkat elektronik secara 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. Kondisi [kembali] 

Kontrol Greenhouse (SPI)

 7. Analisa [kembali]





 8. Download File [kembali]


Komentar

Postingan populer dari blog ini