Skip to content

Instantly share code, notes, and snippets.

@idriszmy
Last active May 30, 2019 05:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save idriszmy/5b3ab2cc8679a490c304111882a060d9 to your computer and use it in GitHub Desktop.
Save idriszmy/5b3ab2cc8679a490c304111882a060d9 to your computer and use it in GitHub Desktop.
Menghasilkan corak cahaya LED (Contoh 2)
#
# Fungsi kod: Menghasilkan corak cahaya LED (Contoh 2).
# Penulis: Idris Zainal Abidin
# Blog: https://idrisz.my
# Kemaskini: 30 Mei 2019
#
from gpiozero import LED, Buzzer # Import fungsi LED dan Buzzer
# daripada pustaka gpiozero
from time import sleep # Import fungsi sleep dari pustaka time
led1 = LED(17) # led1 bersambung pada GPIO17
led2 = LED(18) # led2 bersambung pada GPIO18
led3 = LED(27) # led3 bersambung pada GPIO27
led4 = LED(22) # led4 bersambung pada GPIO22
led5 = LED(25) # led5 bersambung pada GPIO25
led6 = LED(12) # led6 bersambung pada GPIO12
led7 = LED(13) # led7 bersambung pada GPIO13
led8 = LED(19) # led8 bersambung pada GPIO19
buzzer = Buzzer(26) # buzzer bersambung pada GPIO26
NONE = 0 # Pemboleh ubah untuk mengawal mod led - NONE
DECREASE = 1 # Pemboleh ubah untuk mengawal mod led - DECREASE
INCREASE = 2 # Pemboleh ubah untuk mengawal mod led - INCREASE
ALL_OFF = 9 # Pemboleh ubah untuk mengawal mod led - ALL_OFF
ALL_ON = 10 # Pemboleh ubah untuk mengawal mod led - ALL_ON
def led(ledNumber): # Fungsi corak cahaya LED dengan pemboleh ubah ledNumber
if ledNumber == 1: # Jika pemboleh ubah ledNumber adalah 1
led1.on() # Nyalakan led1
else: # Jika bukan
led1.off() # Padamkan led1
if ledNumber == 2: # Jika pemboleh ubah ledNumber adalah 2
led2.on() # Nyalakan led2
else: # Jika bukan
led2.off() # Padamkan led2
if ledNumber == 3: # Jika pemboleh ubah ledNumber adalah 3
led3.on() # Nyalakan led3
else: # Jika bukan
led3.off() # Padamkan led3
if ledNumber == 4: # Jika pemboleh ubah ledNumber adalah 4
led4.on() # Nyalakan led4
else: # Jika bukan
led4.off() # Padamkan led4
if ledNumber == 5: # Jika pemboleh ubah ledNumber adalah 5
led5.on() # Nyalakan led5
else: # Jika bukan
led5.off() # Padamkan led5
if ledNumber == 6: # Jika pemboleh ubah ledNumber adalah 6
led6.on() # Nyalakan led6
else: # Jika bukan
led6.off() # Padamkan led6
if ledNumber == 7: # Jika pemboleh ubah ledNumber adalah 7
led7.on() # Nyalakan led7
else: # Jika bukan
led7.off() # Padamkan led7
if ledNumber == 8: # Jika pemboleh ubah ledNumber adalah 8
led8.on() # Nyalakan led8
else: # Jika bukan
led8.off() # Padamkan led8
if ledNumber == ALL_OFF: # Jika pemboleh ubah ledNumber adalah ALL_OFF
led1.off() # Padamkan led1
led2.off() # Padamkan led2
led3.off() # Padamkan led3
led4.off() # Padamkan led4
led5.off() # Padamkan led5
led6.off() # Padamkan led6
led7.off() # Padamkan led7
led8.off() # Padamkan led8
elif ledNumber == ALL_ON: # Jika pemboleh ubah ledNumber adalah ALL_ON
led1.on() # Nyalakan led1
led2.on() # Nyalakan led2
led3.on() # Nyalakan led3
led4.on() # Nyalakan led4
led5.on() # Nyalakan led5
led6.on() # Nyalakan led6
led7.on() # Nyalakan led7
led8.on() # Nyalakan led8
mode = INCREASE # Pemboleh ubah mod led
ledPosition = 0 # Pemboleh ubah posisi led
led(ALL_ON) # Nyalakan semua led
buzzer.beep(0.1, 0.1, 1) # Buzzer bunyi beep sekali
led(ALL_OFF) # Padamkan semua led
try:
while True: # Kenyataan berulang utama
if mode == INCREASE: # Jika mod led adalah INCREASE
if ledPosition < 8: # Jika posisi led lebih kurang daripada 8
ledPosition = ledPosition + 1 # Naikkan posisi led
else: # Sebaliknya
mode = DECREASE # Tetapkan mod kepada DECREASE
ledPosition = 7 # Tetapkan posisi led kepada 7
elif mode == DECREASE: # Jika mod led adalah DECREASE
if ledPosition > 1: # Jika posisi led lebih besar daripada 1
ledPosition = ledPosition - 1 # Kurangkan posisi led
else: # Sebaliknya
mode = INCREASE # Tetapkan mod kepada INCREASE
ledPosition = 2 # Tetapkan posisi led kepada 2
led(ledPosition) # Panggil fungsi posisi led
sleep(0.05) # Tunggu 50 mili saat
except KeyboardInterrupt:
led(ALL_OFF) # Padamkan semua led
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment