Kamis, 19 Maret 2020

Laporan Akhir 2 Modul 1

 




1. Prosedur
[Kembali]

- Rangkaian

   Rangkaian ini berfungsi sebagai sistem deteksi gerakan menggunakan sensor PIR yang terhubung ke Raspberry Pi Pico. Saat sensor PIR mendeteksi pergerakan, ia mengirimkan sinyal ke mikrokontroler. Raspberry Pi Pico kemudian memproses sinyal tersebut dan mengaktifkan indikator berupa LED merah atau kuning sesuai dengan kondisi yang telah diprogram. Jika tidak ada gerakan terdeteksi, LED tetap dalam keadaan mati atau hanya salah satu yang menyala. Sistem ini bekerja dengan suplai daya yang berasal dari Raspberry Pi Pico, yang terhubung ke sensor PIR dan LED melalui resistor sebagai pembatas arus.

2. Hardware dan Diagram Blok [Kembali]

Sensor Passive Infrared (PIR) untuk mendeteksi pergerakan berdasarkan perubahan radiasi inframerah di sekitarnya dan mengirimkan sinyal digital ke mikrokontroler.




- LED indikator menyala sebagai respons terhadap sinyal dari mikrokontroler. 



Resistor pembatas arus digunakan untuk melindungi LED dan memastikan operasi yang stabil.





3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

- Rangkaian



- Prinsip kerja

    Prinsip kerja rangkaian ini adalah mendeteksi pergerakan menggunakan sensor PIR dan memberikan respons visual melalui LED. Sensor PIR bekerja dengan mendeteksi perubahan radiasi inframerah dari objek bergerak di sekitarnya. Jika pergerakan terdeteksi, sensor mengirimkan sinyal digital ke Raspberry Pi Pico. Mikrokontroler kemudian memproses sinyal ini dan mengaktifkan LED merah atau kuning sebagai indikator. LED menyala sesuai dengan kondisi yang telah diprogram, sedangkan resistor berfungsi sebagai pembatas arus untuk menjaga stabilitas sistem.

4. Flowchart dan Listing Program [Kembali]

Flowchart :



Listing Program :

from machine import Pin

import time

# Konfigurasi sensor PIR sebagai input

pir = Pin(27, Pin.IN)

# Konfigurasi LED sebagai output

led_merah = Pin(15, Pin.OUT)   # LED merah menyala saat ada gerakan

led_kuning = Pin(14, Pin.OUT)  # LED kuning menyala saat tidak ada gerakan

print("Menunggu gerakan...")

while True:

if pir.value():  # Jika sensor PIR mendeteksi gerakan

led.value(0)  # Matikan LED

print("Gerakan terdeteksi!")

led_merah.value(1)  # Nyalakan LED merah

led_kuning.value(0)  # Matikan LED kuning

else:

led_merah.value(0)  # Matikan LED merah

led_kuning.value(1)  # Nyalakan LED kuning

time.sleep(0.1)  # Delay untuk menghindari pembacaan cepat


5. Video Demo [Kembali]




6. Kondisi [Kembali]




7. Video Simulasi [Kembali]



8. Download File[Kembali]

File HTML [disini]
Rangkaian [disini]
Listing Program [disini]
Video [disini]
Datasheet PIR Sensor [disini]

Laporan Akhir 1 Modul 1

 




1. Prosedur
[Kembali]

- Rangkaian


   Rangkaian ini menggunakan mikrokontroler STM32F103C8 sebagai pusat kendali dan dilengkapi dengan sensor inframerah untuk mendeteksi objek. Sensor IR mengirimkan sinyal ke mikrokontroler saat mendeteksi hambatan, yang kemudian memicu output ke LED RGB dan buzzer sebagai indikator. LED RGB dihubungkan melalui resistor pembatas arus untuk menampilkan warna yang sesuai dengan status deteksi, sedangkan buzzer berbunyi sebagai alarm. Sistem ini bekerja pada tegangan 5V dan menggunakan pull-up resistor pada tombol input untuk memastikan stabilitas sinyal.

2. Hardware dan Diagram Blok [Kembali]

STM32F103C8 sebagai mikrokontroler utama untuk mengontrol input dari sensor dan output ke LED.



Sensor inframerah (IR) digunakan untuk mendeteksi objek berdasarkan pantulan sinyal IR


- LED indikator menyala sebagai respons terhadap sinyal dari mikrokontroler. 



Resistor pembatas arus digunakan untuk melindungi LED dan memastikan operasi yang stabil.


- Buzzer  sebagai Aktuator suara yang menghasilkan bunyi saat objek terdeteksi.


- Push Button digunakan sebagai input manual untuk menguji fungsi sensor atau sistem.



- GND sebagai referensi tegangan.


3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

- Rangkaian


- Prinsip kerja

Rangkaian ini bekerja dengan mendeteksi keberadaan objek menggunakan sensor inframerah, yang akan mengirimkan sinyal digital ke mikrokontroler STM32F103C8 ketika hambatan terdeteksi. Mikrokontroler kemudian mengaktifkan indikator visual berupa LED RGB dan buzzer sebagai tanda adanya objek di depan sensor. LED RGB menyala dengan warna tertentu sesuai dengan logika program, sementara buzzer berbunyi sebagai alarm. Sistem ini dikendalikan oleh tombol input dan mendapatkan pasokan daya 5V untuk mengoperasikan semua komponennya.

Ketika sensor IR mendeteksi gerakan, maka buzzer akan berbunyi dan LED akan menampilkan warna hijau. Jika push button ditekan, akan menghasilkan LED berwarna biru dan buzzer menyala. Jika sensor IR mendeteksi gerakan dan push button ditekan secara bersamaan, maka LED akan menampilkan warna 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 button_status = HAL_GPIO_ReadPin(GPIOB, BUTTON_Pin); 
uint8_t ir_status = HAL_GPIO_ReadPin(GPIOB, IR_Pin); 
 
HAL_GPIO_WritePin(GPIOA, GREEN_Pin | RED_Pin | BUZZER_Pin, GPIO_PIN_RESET); 

if (button_status == GPIO_PIN_SET) 
 HAL_GPIO_WritePin(GPIOA, RED_Pin, GPIO_PIN_SET); 
 HAL_GPIO_WritePin(GPIOA, BUZZER_Pin, GPIO_PIN_SET); 
 } 

if (ir_status == GPIO_PIN_SET) 
 HAL_GPIO_WritePin(GPIOA, GREEN_Pin, GPIO_PIN_SET); 
 HAL_GPIO_WritePin(GPIOA, BUZZER_Pin, GPIO_PIN_SET); 
 } 

 HAL_Delay(100); 
  }
 } 
 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|BUZZER_Pin, GPIO_PIN_RESET);

HAL_GPIO_WritePin(BLUE_GPIO_Port, BLUE_Pin, GPIO_PIN_RESET);

GPIO_InitStruct.Pin = RED_Pin|GREEN_Pin|BUZZER_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 = BUTTON_Pin|IR_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


5. Video Demo [Kembali]




6. Kondisi [Kembali]




7. Video Simulasi [Kembali]





8. Download File[Kembali]

File HTML [disini]
Rangkaian [disini]
Listing Program [disini]
Video [disini]
Datasheet STM32F103C8 [disini]

Datasheet IR Sensor [disini]

Jumat, 13 Maret 2020

TP2 M1 Praktikum Mikroprosesor dan Mikrokontroler 2025

 




1. Prosedur
[Kembali]

- Rangkaian


    Rangkaian ini terdiri dari sensor inframerah (IR), sensor sentuh, mikrokontroler STM32F103C8, dan LED indikator. Sensor IR mendeteksi keberadaan objek berdasarkan pantulan sinyal inframerah, sedangkan sensor sentuh merespons ketika disentuh. Kedua sensor ini memberikan sinyal keluaran yang dihubungkan ke pin GPIO mikrokontroler STM32, yang kemudian memproses sinyal tersebut untuk mengendalikan LED indikator. Jika salah satu sensor mendeteksi perubahan kondisi, STM32 akan mengaktifkan atau menonaktifkan LED melalui resistor pembatas arus. Rangkaian ini mendapatkan tegangan +5V untuk mengoperasikan komponen-komponennya, dengan jalur GND sebagai referensi potensial.


2. Hardware dan Diagram Blok [Kembali]

STM32F103C8 sebagai mikrokontroler utama untuk mengontrol input dari sensor dan output ke LED.



Sensor inframerah (IR) digunakan untuk mendeteksi objek berdasarkan pantulan sinyal IR


- Touch Sensor berfungsi sebagai saklar digital yang aktif saat disentuh. 




- LED indikator menyala sebagai respons terhadap sinyal dari mikrokontroler. 



Resistor pembatas arus digunakan untuk melindungi LED dan memastikan operasi yang stabil.


- GND sebagai referensi tegangan.


3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

- Rangkaian


- Prinsip kerja

Rangkaian ini bekerja dengan memanfaatkan sensor inframerah (IR) dan sensor sentuh sebagai input untuk mengendalikan LED melalui mikrokontroler STM32F103C8. Sensor inframerah mendeteksi keberadaan objek berdasarkan pantulan sinyal IR. Ketika sebuah objek berada dalam jangkauan sensor, modul IR akan mengirimkan sinyal digital ke mikrokontroler melalui salah satu pin GPIO. Begitu juga dengan sensor sentuh, yang akan memberikan sinyal digital ketika disentuh.

Mikrokontroler STM32F103C8 memproses sinyal dari kedua sensor dan menentukan apakah LED harus menyala atau mati. Jika salah satu sensor aktif, STM32 akan mengaktifkan pin output yang terhubung ke LED. Arus yang mengalir ke LED dikontrol oleh resistor pembatas arus, yang bertujuan untuk melindungi LED dari arus berlebih dan memastikan nyala LED yang stabil.

Sumber daya +5V digunakan untuk memberi daya ke seluruh rangkaian, termasuk sensor IR, sensor sentuh, dan mikrokontroler. GND berfungsi sebagai referensi tegangan untuk memastikan rangkaian bekerja dengan benar. Dengan demikian, rangkaian ini memungkinkan pendeteksian objek melalui sensor IR serta aktivasi LED melalui sentuhan pada sensor sentuh, menjadikannya sistem sederhana untuk kontrol berbasis sensor.


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)

 

   // LED Biru menyala jika IR aktif

   HAL_GPIO_WritePin(BLUE_GPIO_Port, BLUE_Pin, ir_status);

 

   // LED Hijau menyala jika Touch aktif

   HAL_GPIO_WritePin(GPIOA, GREEN_Pin, touch_status);

 

   // LED Merah menyala jika tidak ada sensor yang aktif

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

       HAL_GPIO_WritePin(GPIOA, RED_Pin, GPIO_PIN_SET);  // Nyalakan LED

RED

   } else {

       HAL_GPIO_WritePin(GPIOA, RED_Pin, GPIO_PIN_RESET); // Matikan LED

RED

   }

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

}

static void MX_GPIO_Init(void)

{

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

}

}

GPIO_InitTypeDef GPIO_InitStruct = {0};

__HAL_RCC_GPIOD_CLK_ENABLE();

__HAL_RCC_GPIOA_CLK_ENABLE();

__HAL_RCC_GPIOB_CLK_ENABLE();

/*Configure GPIO pin Output Level */

HAL_GPIO_WritePin(GPIOA, RED_Pin|GREEN_Pin, GPIO_PIN_RESET);

/*Configure GPIO pin Output Level */

HAL_GPIO_WritePin(BLUE_GPIO_Port, BLUE_Pin, GPIO_PIN_RESET);

/*Configure GPIO pins : RED_Pin GREEN_Pin */

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

/*Configure GPIO pin : BLUE_Pin */

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

void Error_Handler(void)

{

/*Configure GPIO pins : IR_Pin TOUCH_Pin */

GPIO_InitStruct.Pin = IR_Pin|TOUCH_Pin;

GPIO_InitStruct.Mode = GPIO_MODE_INPUT;

GPIO_InitStruct.Pull = GPIO_NOPULL;

HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

}


5. Video Demo [Kembali]




6. Kondisi [Kembali]

Kondisi 7
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 hijau

7. Video Simulasi [Kembali]



8. Download File[Kembali]

File HTML [disini]
Rangkaian [disini]
Listing Program [disini]
Video [disini]
Datasheet Sensor Infrared [disini]

Datasheet Touch Sensor [disini]

Datasheet STM32F103C8 [disini]




















TP1 M1 Praktikum Mikroprosesor dan Mikrokontroler 2025

 




1. Prosedur
[Kembali]

- Rangkaian

    Rangkaian ini menggunakan Raspberry Pi Pico sebagai mikrokontroler utama untuk mengontrol enam push button dan tujuh LED merah. Setiap push button dihubungkan ke pin GPIO input pada Raspberry Pi Pico, sementara LED terhubung ke pin GPIO output dengan masing-masing diberikan resistor pembatas arus untuk mencegah kerusakan komponen. Saat sebuah push button ditekan, sinyal dikirim ke mikrokontroler yang kemudian mengaktifkan LED yang sesuai. Push button dan LED memiliki hubungan satu-ke-satu, di mana setiap tombol mengontrol satu LED tertentu. Seluruh rangkaian mendapatkan daya dari VCC dan GND Raspberry Pi Pico, dengan koneksi yang memastikan aliran arus sesuai dengan prinsip kelistrikan dasar.


2. Hardware dan Diagram Blok [Kembali]

Raspberry Pi Pico sebagai mikrokontroler utama untuk mengendalikan input dari push button dan output ke LED. 


- Push button berfungsi sebagai saklar digital yang memberikan sinyal input ke Pico saat ditekan.


 
- LED merah digunakan sebagai indikator visual yang menyala ketika menerima sinyal dari mikrokontroler. 


- Resistor dipasang seri dengan LED untuk membatasi arus dan mencegah kerusakan. Koneksi daya menggunakan pin VCC (3.3V)


- GND dari Raspberry Pi Pico untuk menyediakan sumber tegangan bagi seluruh rangkaian.


3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

- Rangkaian


- Prinsip kerja

Rangkaian ini menggunakan Raspberry Pi Pico sebagai mikrokontroler untuk mengontrol nyala LED berdasarkan input dari push button. Setiap push button dihubungkan ke salah satu pin GPIO pada Raspberry Pi Pico sebagai input, sedangkan setiap LED juga terhubung ke GPIO lain sebagai output.

Ketika salah satu push button ditekan, sinyal logika tinggi dikirim ke pin input terkait pada Raspberry Pi Pico. Mikrokontroler kemudian membaca status tombol dan mengaktifkan pin output yang sesuai untuk menyalakan LED yang berhubungan dengan tombol tersebut. Jika tombol dilepaskan, sinyal kembali ke logika rendah, dan mikrokontroler mematikan LED terkait.

Setiap LED dipasang dengan resistor pembatas arus untuk mencegah arus berlebih yang dapat merusak LED atau komponen lain. Sumber daya utama untuk rangkaian ini berasal dari Raspberry Pi Pico, dengan jalur GND sebagai referensi tegangan bersama. Dengan konfigurasi ini, pengguna dapat mengontrol setiap LED secara individual menggunakan push button yang sesuai.




4. Flowchart dan Listing Program [Kembali]

Flowchart :

Listing Program :

from machine import Pin 
import time 

# Daftar GPIO untuk LED dan push button 
led_pins = [2, 3, 4, 5, 6, 7, 16] # Output LED 
button_pins = [9, 10, 11, 12, 13, 14, 17] # Input dari push button 

# Inisialisasi LED sebagai output 
leds = [Pin(pin, Pin.OUT) for pin in led_pins] 

# Inisialisasi push button sebagai input dengan pull-down 
buttons = [Pin(pin, Pin.IN, Pin.PULL_DOWN) for pin in button_pins] 

while True: 
    for i in range(7): 
        if buttons[i].value() == 1: # Jika push button ditekan 
            leds[i].on() # Nyalakan LED 
    else: 
        leds[i].off() # Matikan LED 
    time.sleep(0.05) # Delay untuk debounce sederhana 



5. Video Demo [Kembali]



6. Kondisi [Kembali]

Kondisi 7
Buatlah rangkaian seperti gambar  pada percobaan 1 dengan input 6 Push Button dan 3 output LED merah, dengan 2 input masing-masing menghidupkan 1 output


7. Video Simulasi [Kembali]



8. Download File[Kembali]

File HTML [disini]
Rangkaian [disini]
Listing Program [disini]
Video [disini]
Datasheet Raspberry Pi Pico [disini]