TP 2 Modul 1 mikro
1.Persiapan
2. Pembuatan Rangkaian di Wokwi
3. Penulisan Program
4. Simulasi
2. Pembuatan Rangkaian di Wokwi
3. Penulisan Program
4. Simulasi
2. Hardware dan Diagram Blok[Kembali]
1. STM32F103C8
Warna | Panjanggelombang [nm] | Material semikonduktor | |
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
.jpeg)
4. Buzzer
Blok Diagram
6.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.
3. Rangkaian Simulasi dan Prinsip Kerja[Kembali]
Rangkaian Simulasi
Prinsip Kerja:
Prinsip kerja rangkaian ini didasarkan pada pengolahan logika kombinasional dari dua buah sensor, yaitu Infrared (IR) sensor dan Touch sensor, yang dikendalikan oleh mikrokontroler STM32. Pada kondisi awal, ketika rangkaian diberi catu daya, mikrokontroler akan melakukan inisialisasi pin GPIO, di mana pin yang terhubung ke sensor IR dan Touch sensor diset sebagai input, sedangkan pin untuk LED dan Buzzer diset sebagai output. Mikrokontroler kemudian membaca kondisi logika dari kedua sensor tersebut secara terus-menerus (looping).
Sensor IR akan mendeteksi keberadaan objek atau halangan di depannya, sementara Touch sensor akan mendeteksi adanya sentuhan fisik dari pengguna. Mikrokontroler memproses kedua sinyal input tersebut menggunakan operator logika AND melalui pemrograman. Artinya, sistem akan mengevaluasi secara ketat dan hanya menganggap kondisi valid apabila persyaratan spesifik ini terpenuhi secara bersamaan: Sensor IR dalam keadaan aktif (mendeteksi benda) DAN Touch sensor dalam keadaan pasif (tidak mendeteksi sentuhan).
Apabila kombinasi dari kedua syarat sensor tersebut terpenuhi secara bersamaan, mikrokontroler akan merespons dengan mengaktifkan output LED. LED akan diberi logika HIGH sehingga menyala terus-menerus (statis, tidak berkedip) sebagai indikator visual bahwa benda terdeteksi oleh IR tanpa adanya sentuhan pada modul kapasitif. Pada kondisi tersebut, Buzzer tidak diaktifkan. Hal ini dikarenakan pada pemrograman mikrokontrolernya, pin Buzzer dipertahankan dalam kondisi LOW secara mutlak sehingga tidak menghasilkan bunyi sama sekali.
Jika salah satu saja dari kondisi sensor berubah sehingga tidak sesuai dengan syarat kombinasi awal (misalnya benda dijauhkan dari sensor IR, atau Touch sensor tiba-tiba disentuh oleh pengguna), maka logika kombinasional bernilai salah (FALSE). Mikrokontroler akan segera mematikan LED (mengubah statusnya menjadi LOW) dan memastikan Buzzer tetap dalam keadaan mati. Dengan demikian, sistem akan kembali ke kondisi siaga penuh (LED OFF, Buzzer OFF) hingga syarat kombinasi kedua sensor tersebut kembali terpenuhi.
4. Flowchart dan LIsting Program[Kembali]
Listing Program:
#include "main.h"
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
int main(void)
{
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* Configure the system clock */
SystemClock_Config();
/* Initialize all configured peripherals */
MX_GPIO_Init();
/* Infinite loop */
while (1)
{
// Membaca status sensor pada pin input
uint8_t ir_status = HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0);
uint8_t touch_status = HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_1);
// KONDISI: Infrared mendeteksi (SET) DAN Touch sensor tidak mendeteksi (RESET)
if (ir_status == GPIO_PIN_SET && touch_status == GPIO_PIN_RESET)
{
// LED (PB0) menyala terus, Buzzer (PB1) mati
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET);
}
else
{
// Jika kondisi di atas tidak terpenuhi, matikan semua output
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET);
}
// Delay singkat sebagai debouncing sederhana
HAL_Delay(50);
}
}
void SystemClock_Config(void)
{
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
/** Initializes the RCC Oscillators according to the specified parameters
* in the RCC_OscInitTypeDef structure.
*/
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();
}
/** Initializes the CPU, AHB and APB buses clocks
*/
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};
/* GPIO Ports Clock Enable */
__HAL_RCC_GPIOD_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0|GPIO_PIN_1, GPIO_PIN_RESET);
/*Configure GPIO pins : PA0 PA1 */
GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_PULLDOWN; // Pull-down agar logika awal adalah 0
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/*Configure GPIO pins : PB0 PB1 */
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);
}
void Error_Handler(void)
{
__disable_irq();
while (1)
{
}
}
Buatlah rangkaian seperti pada gambar percobaan 3 dengan kondisi ketika Infrared sensor mendeteksi benda dan Touch sensor tidak mendeteksi sentuhan, maka LED menyala terus namun Buzzer tetap mati
1. Download HTML [disini]
2. Download Rangkaian Proteus [disini]
3. Download Vidio Rangkaian [disini]
4. Download Datasheet Sensor:
- datasheet Sensor Infrared[disini]
- datasheet Sensor Touch [disini]
5. Download library Komponen:
- library Sensor Infrared [disini]
- library Sensor Touch [disini]
6. Download datasheet Relay [disini]
7. Download datasheet Motor [disini]
8. Download datasheet Led [disini]
9. Download listing program [disini]
10. Download data sheet [disini]





.png)


Komentar
Posting Komentar