MENGHIDUPKAN LED MENGGUNAKAN GPIO RASPBERRY PI DAN PYTHON - TUTORIAL 1
MENGHIDUPKAN LED MENGGUNAKAN GPIO RASPBERRY PI DAN PYTHON
TUTORIAL
1
LAPORAN
PRAKTIKUM LABORATORIUM MIKROKONTROLER II
Dosen
Pengampu:
Dr. Samuel Beta K., Ing. Tech., M.T.
Disusun
oleh:
Kelompok 1
06
- Bagas Agung Pramudya |
RE-3A
(4.34.22.0.06) |
15
- M. Ajik Al-Khusain |
RE-3A
(4.34.22.0.16) |
20
- Roytua Daud S. |
RE-3A
(4.34.22.0.22) |
22
- Tiara Hande Dias K. |
RE-3A
(4.34.22.0.25) |
PROGRAM
STUDI TEKNOLOGI REKAYASA ELEKTRONIKA
JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI SEMARANG
2025
BAB
I
PENDAHULUAN
1.1 Latar Belakang
Raspberry Pi adalah komputer mini berukuran kecil yang
memiliki kemampuan besar untuk digunakan dalam berbagai aplikasi, termasuk
pendidikan, otomasi rumah, hingga sistem kendali industri. Salah satu fitur
utama dari Raspberry Pi adalah tersedianya pin GPIO (General Purpose Input
Output) yang memungkinkan pengguna untuk berinteraksi langsung dengan perangkat
keras eksternal seperti sensor, LED, motor, dan aktuator lainnya. Dalam dunia
pendidikan, GPIO menjadi alat pembelajaran yang efektif untuk memahami prinsip
dasar sistem digital dan kontrol elektronik.
Pada praktikum ini, digunakan media bantu berupa
Raspberry Pi Trainer Kit Advanced (RTKA) yang telah dirancang khusus untuk
memfasilitasi pembelajaran sistem kendali berbasis Raspberry Pi. Dengan RTKA,
mahasiswa dapat lebih mudah menghubungkan LED dan perangkat lainnya ke GPIO
tanpa harus membuat rangkaian dari awal. Praktikum ini berfokus pada
pemrograman LED menggunakan pustaka Python gpiozero dan time untuk memahami
bagaimana Raspberry Pi dapat mengendalikan perangkat output secara terjadwal
dan otomatis.
Melalui kegiatan ini, mahasiswa diharapkan dapat
memahami alur kerja dari pengendalian perangkat melalui GPIO, cara mengakses
Raspberry Pi secara remote menggunakan SSH, serta dasar pemrograman Python
untuk implementasi kendali digital. Praktikum ini juga menjadi dasar penting
untuk praktikum tingkat lanjut yang akan menggunakan berbagai sensor dan sistem
IoT.
BAB
II
TINJAUAN
PUSTAKA
2.1 Raspberry Pi Trainer Kit Advanced
(RTKA)
RTKA adalah sebuah kit pembelajaran terintegrasi yang
menggunakan Raspberry Pi 4B sebagai pusat pemrosesannya. Kit ini dirancang
khusus untuk mendukung pembelajaran praktik kendali sistem tertanam, IoT, dan
otomasi. RTKA menyediakan antarmuka langsung ke berbagai perangkat input/output
seperti LED, sensor suhu, sensor jarak, trimpot, dan motor. Dalam konteks
praktikum ini, RTKA memudahkan akses ke GPIO melalui konektor yang sudah
terorganisir, sehingga risiko kesalahan rangkaian dapat diminimalkan. Selain itu,
RTKA juga mendukung koneksi jaringan dan komunikasi serial, menjadikannya media
pembelajaran yang lengkap untuk mahasiswa vokasi.
2.2 GPIO Raspberry Pi
GPIO atau General Purpose Input Output adalah
antarmuka digital multifungsi yang tersedia pada papan Raspberry Pi. Pin GPIO
dapat dikonfigurasi baik sebagai input maupun output digital. Ketika disetel
sebagai output, GPIO dapat digunakan untuk mengendalikan perangkat seperti LED,
relay, dan motor. Sebaliknya, jika disetel sebagai input, pin ini dapat membaca
sinyal dari tombol tekan, sensor jarak, atau sensor lainnya. Setiap pin GPIO
memiliki nomor fisik dan juga penomoran logika (BCM), sehingga penting untuk
memahami konfigurasi pinout sebelum menggunakannya dalam pemrograman. Akses
GPIO biasanya dilakukan melalui bahasa Python dengan bantuan pustaka seperti
RPi.GPIO atau gpiozero.
2.3 Library gpiozero dan time
gpiozero adalah pustaka Python yang dirancang untuk
menyederhanakan proses pemrograman GPIO pada Raspberry Pi. Dibandingkan pustaka
RPi.GPIO yang lebih teknis, gpiozero menawarkan pendekatan yang lebih ramah
bagi pemula dengan sintaks yang sederhana dan jelas. Misalnya, untuk menyalakan
LED hanya dibutuhkan satu baris perintah: led.on(). Sedangkan pustaka time
merupakan bagian dari pustaka standar Python yang digunakan untuk mengatur jeda
waktu eksekusi program. Fungsi sleep() dari pustaka time sangat berguna untuk
menciptakan efek berkedip (blinking) dengan memberikan jeda antara LED menyala
dan mati. Kedua pustaka ini menjadi dasar yang penting dalam praktikum kendali
output digital.
BAB
III
PERANCANGAN
SISTEM
3.1 Alat dan Bahan
Adapun alat dan bahan yang digunakan dalam praktikum
ini adalah sebagai berikut:
- Raspberry
Pi 4B (via RTKA)
- LED
- Resistor
330 Ω (jika diperlukan)
- Kabel
jumper
- MobaXterm
(untuk akses SSH)
- Software
Python 3
3.2 Diagram Blok
Sistem kendali LED
menggunakan Raspberry Pi dapat digambarkan dalam bentuk diagram blok berikut:
Diagram blok ini menunjukkan bahwa program Python yang
dijalankan di Raspberry Pi memberikan perintah digital kepada pin GPIO.
Perintah ini mengatur kondisi logika HIGH atau LOW pada pin tertentu (misalnya
GPIO 17). Sinyal dari GPIO ini kemudian diteruskan ke LED. Jika pin diberi
logika HIGH, maka LED akan menyala; sebaliknya, jika diberi logika LOW, maka
LED akan mati. Proses ini terjadi secara terus-menerus sesuai perintah dalam
program yang berjalan.
3.3 Diagram Alir
Diagram alir berikut menjelaskan alur kerja sistem
secara umum:
Keterangan posisi:
- Langkah
disusun dari atas ke bawah.
- Panah
vertikal menghubungkan tiap proses.
- Decision
(langkah 8) bercabang:
- “Ya”
mengarah ke atas (ulang)
- “Tidak”
mengarah ke “Selesai”
3.4 Langkah-Langkah Praktikum
- Persiapan
Perangkat:
- Pastikan
Raspberry Pi telah terhubung dengan RTKA dan laptop melalui jaringan
Wi-Fi.
- Remote
ke Raspberry Pi menggunakan MobaXterm via SSH.
2.
Hubungkan pin GPIO 17 (pin fisik 11) ke kaki anoda LED.
3.
Hubungkan kaki katoda LED ke GND Raspberry Pi.
4.
Buka aplikasi MobaXterm dan lakukan koneksi SSH ke
Raspberry Pi.
5.
Masuk ke Raspberry Pi dengan username: pi
, password default: raspberry
.
6.
Buat file Python baru dengan nama led.py
.
7.
Masukkan kode berikut:
from gpiozero import LED
from time import sleep
led = LED(17)
while True:
led.on()
print("LED ON")
sleep(1)
led.off()
print("LED OFF")
sleep(1)
BAB
IV
HASIL
DAN PEMBAHASAN
4.1 Hasil
Setelah seluruh rangkaian
dan kode program dijalankan, LED akan berkedip menyala dan mati dengan interval
1 detik. Hal ini ditandai dengan perubahan kondisi LED secara fisik serta
keluaran teks "LED ON" dan "LED OFF" yang muncul di
terminal secara bergantian. Kondisi tersebut membuktikan bahwa Raspberry Pi
berhasil mengakses dan mengendalikan pin GPIO 17 sebagai output digital, serta
bahwa fungsi sleep() bekerja sebagaimana mestinya dalam memberikan jeda waktu
antar perubahan kondisi.
4.2 Pembahasan
Dari hasil pengamatan,
sistem dapat dikatakan bekerja dengan baik dan sesuai dengan rancangan. GPIO 17
berhasil digunakan sebagai jalur output untuk mengendalikan LED. Perintah
led.on() dan led.off() dari pustaka gpiozero memberikan kontrol logika digital
HIGH dan LOW pada pin tersebut. Program berjalan dalam loop tak hingga (while
True:), sehingga LED akan terus berkedip selama program belum dihentikan secara
manual oleh pengguna (misalnya dengan Ctrl+C). Delay yang diberikan oleh
sleep(1) dari pustaka time sangat penting agar perubahan kondisi LED dapat
diamati secara jelas. Praktikum ini memberikan pemahaman langsung tentang
bagaimana logika digital diterapkan dalam kendali perangkat fisik menggunakan
pemrograman Python pada Raspberry Pi.
BAB
V
PENUTUP
5.1 Kesimpulan
Berdasarkan hasil praktikum yang telah dilakukan,
dapat disimpulkan bahwa Raspberry Pi mampu mengendalikan perangkat output
digital seperti LED secara efektif melalui pin GPIO dengan menggunakan
pemrograman Python. Penggunaan pustaka gpiozero mempermudah proses pengendalian
karena sintaksnya sederhana dan intuitif, sangat cocok untuk pemula. Selain
itu, penerapan fungsi sleep() dari pustaka time memungkinkan pengaturan waktu
nyala dan mati LED secara presisi. Praktikum ini membuktikan bahwa sistem
digital dasar dapat diimplementasikan dengan baik menggunakan Raspberry Pi
sebagai kontroler, dan dapat menjadi dasar untuk eksperimen lanjutan seperti
kendali buzzer, motor, atau sistem berbasis sensor.
5.2 Tanya Jawab
1. Apa kelebihan menggunakan pustaka
gpiozero dibandingkan RPi.GPIO dalam pengendalian LED pada Raspberry Pi?
(Ardian Saputra – 04)
Jawaban:
gpiozero memiliki sintaks yang lebih sederhana dan ramah pemula. Contohnya,
untuk menyalakan LED hanya diperlukan led.on() tanpa konfigurasi pin manual,
sementara RPi.GPIO memerlukan setup dan deklarasi arah pin terlebih dahulu. Ini
mempercepat proses belajar dan implementasi dasar.
2. Jika Anda diminta membuat simulasi
lampu lalu lintas 3 warna menggunakan GPIO, bagaimana struktur program
sederhananya? (Arief Rahman – 03)
Jawaban:
Gunakan 3 LED mewakili merah, kuning, dan hijau. Aktifkan secara bergantian
dengan delay tertentu:
while True:
led1.on() # Merah nyala
sleep(5)
led1.off()
led2.on() # Kuning nyala (transisi ke hijau)
sleep(2)
led2.off()
led3.on() # Hijau nyala
sleep(5)
led3.off()
led2.on() # Kuning nyala lagi (transisi ke merah)
sleep(2)
led2.off()
Program tersebut merepresentasikan siklus lampu lalu
lintas yang umum.
3. Apa peran penting dari fungsi sleep()
dalam kendali LED, dan apa yang terjadi jika fungsi ini dihapus? (Ilham Yahya –
11)
Jawaban:
Fungsi sleep() memberikan jeda waktu agar LED menyala/mati dapat dilihat secara
nyata oleh mata manusia. Tanpa sleep(), perubahan nyala-mati akan sangat cepat
dan terlihat seperti LED berkedip acak atau bahkan menyala terus karena
perubahan terlalu cepat.
4. Jelaskan bagaimana konsep flip-flop SR
bisa diimplementasikan menggunakan dua tombol dan dua LED pada Raspberry Pi.
(M. Nur Afiq – 16)
Jawaban:
Flip-flop SR (Set-Reset) dapat diimplementasikan dengan:
- Tombol
1 untuk Set (menyalakan LED 1)
- Tombol
2 untuk Reset (mematikan LED 1)
Menggunakan logika digital dan pengondisian tombol di Python, LED akan tetap menyala setelah tombol Set ditekan sampai tombol Reset ditekan.
Dengan program :
# ===
Import Library ===
from gpiozero import LED, Button
# LED dan
Button dari gpiozero
from signal import pause
#
Agar program tetap berjalan
# ===
Inisialisasi GPIO ===
led = LED(17)
# LED pada pin GPIO 17
btn_set = Button(2)
# Tombol SET pada GPIO 2
btn_reset = Button(3)
#
Tombol RESET pada GPIO 3
# ===
Fungsi untuk mengubah status LED ===
def set_led():
# Fungsi Set: nyalakan LED
led.on()
print("LED ON (SET)")
def reset_led():
# Fungsi Reset: matikan LED
led.off()
print("LED OFF (RESET)")
# ===
Pemicu Tombol ===
btn_set.when_pressed
= set_led
# Saat
tombol SET ditekan
btn_reset.when_pressed
= reset_led # Saat tombol RESET ditekan
# ===
Menjaga program tetap berjalan ===
pause()
#
Tunggu input terus-menerus
5. Bagaimana Anda dapat memperluas sistem
kendali LED menjadi sistem interaktif berbasis sensor, dan berikan contohnya?
(M. Affan – 14)
Jawaban:
Dengan menambahkan sensor seperti LDR atau PIR, kita dapat mengendalikan LED
secara otomatis berdasarkan kondisi lingkungan. Contohnya, LED menyala saat
cahaya ruangan gelap menggunakan LDR:
from gpiozero import LED, LightSensor
led = LED(17)
ldr = LightSensor(4)
ldr.when_dark
= led.on
ldr.when_light
= led.off
Sistem ini otomatis menyalakan LED saat mendeteksi
kegelapan.
Untuk video lengkap dapat di akses melalui link di bawah ini :
https://youtu.be/PYKvn0QAvxM
Komentar
Posting Komentar