July 21, 2024

Chase Lamp (Lampu Hazard) Menggunakan Prinsip Flip Flop

3 min read

Haii….. palcomster bertemu lagi dengan saya. Kali ini kita rehat dulu dengan konfig server, kali ini kita refreshing dulu cari suasana baru. Kalian tahu apa itu mikrocontroller ? Mikrokontroler merupakan salah satu piranti atau alat pengendali digital terpadu yang sangat terkenal (minimal di kalangan Elektronika dan Komputer). Mikrokontroler sendiri merupakan mikroprosesor dengan tambahan fitur yang memungkinkan mikrokontroler untuk menjadi piranti independen. Piranti-piranti yang ditambahkan supaya bisa independen. Mikrokontroller/mikroprosesor sendiri secara instruksinya terbagi menjadi dua :

  1. RISC (Reduced Instruction Set Computer) yang mana jumlah dari instruksi-instruksi/script program yang digunakan disederhanakan dan lebih mudah untuk di pahami dan di pelajari.
  2. CISC (Complex Instruction Set Computer) yang mana jumlah dan instruksi-instruksi/script program yang digunakan di perbanyak supaya lebih dapat mencakup lebih banyak kegunaannya

Secara pengalamatan (addressing) pada mikrokontroler/mikroprosesor terbagi jadi dua, yaitu :

  1. Von Neumann, yang menggabung jalur data dan program (instruksi)
  2. Harvard, yang memisahkan jalur data dan program (instruksi)

Arduino merupakan salah satu mikrokontroller yang biasa digunakan. Arduino adalah platform yang terdiri dari software dan hardware yang pada umumnya ditambahakan penamaan pin agar mudah diingat. Arduino terdiri dari microcontroller megaAVR seperti ATmega8, Atmega168, Atmega328, Atmega 1280, Atmega 2560 yang menggunakan kristal osilator 16MHz tetapi ada juga yang menggunakan kristal osilator 8MHz. Catu daya minimum yang digunakan oleh arduino adalah 5VDC. Arduino Atmega series menggunakan 20 pin yang terdiri dari 14 pin digital dan 6 pin analog, di 14 pin digital termuat 6 pin yang dapat berfusi sebagai PWM (Pulse Width Modulation). Arduino tidak perlu lagi menggunakan flash programmer external karena di dalam chip microcontroller arduino sudah menggunakan bootloader sehingga proses upload menjadi lebih mudah. Kita hanya memasukkan coding programnya saja yang nantinya akan di konversi menjadi bahasa assembler.

Penjelasan diatas merupakan pengetahuan tambahan untuk microcontroller. Kalau diatas dijelaskan dari sisi hardware secara pintas, untuk tutorial ini kita bahas masalah coding program yang mudah untuk di pelajari, apakah kalian tahu lampu sirine, sekarang ini ada banyak tipe lampu sirine, ada yang menggunakan rotator lampu sirine yang memutar dan ada juga yang menggunakan lampu led. sebagai contoh kali ini saya membahasa CHASE LAMP (prinsip lampu sirine non rotator). Pada sample ini hasil akhir lampu sirinenya nanti berjalan dari sisi kanan/kiri dan kembali ke posisi awal, untuk proses buatnya kita menggunakan bantuan arduino, di tutorial sebelumnya saya pernah membahas prinsip lampu flip flop dan sandi morse, traffic light nah di tutorial ini pun masih sama tidak jauh berbeda hanya logika programnya saja yang diubah. Ok kita langsung saja, yang harus dilakukan antara lain :

Langkah 1

Aktifkan aplikasi arduino kalau yang belum punya langsug download saja di home page resminya arduino.

Langkah 2

Tuliskan script berikut ini, tetapi jangan asal copas harus di baca dan dimengerti :

[sourcecode]
nomor pin yang digunakan type data byte

byte pinLed[] = {5, 6, 7, 8, 9, 10, 11, 12, 13};
int delayLed(20);  

//delay pergantian lampu 20ms (optional semakin besar nilai delay, maka pergantian lampu makin lama)

int arah = 1; //arah lampu dimulai dari lampu urutan pertama

int saatIni = 0; //saat ini tidak ada yang aktif

unsigned long perubahanWaktu;//variabel panjang yang mampu menyimpan 32 bit (4byte) angka dari 0- 2^32-1

 

void setup() {

for (int a=0; a<9; a++){ // jika a kurang dari 9, maka a ditambah 1, sampai a = 9

pinMode (pinLed[a], OUTPUT);} // nilai a dijadikan nilai array dari pinLed (nilai OUTPUT/ yg keluar)

perubahanWaktu = millis();</strong> // unsigned logn di kembalikan ke nilai 0

// milis adalah mengembalikan jumlah milidetik sejak mulai menjalankan program

// di kembalikan ke nilai 0 atau lebih tepatnya reset time.

}

void loop() {

if ((millis() – perubahanWaktu) > delayLed) { // jika milis di kurang unsigned long lebih kecil dari delayLed

<strong>ubahLed();   // maka jalankan ubahled()

perubahanWaktu = millis(); // dimana unsigned dikembalikan ke nilai 0

}

<

void ubahLed() {

for (int a=0; a<9; a++){ // jika a kurang dari 9, maka a ditambah 1, sampai a = 9

digitalWrite(pinLed[a], LOW);//nilai a dijadikan nilai array dari pinLed dan nilai array dinyatakan LOW (off), HIGH (ON)

}

digitalWrite(pinLed[saatIni], HIGH);//menyatakan pin yang berjalan saat ini dalam kondisi ON/ dinyalakan

saatIni += arah;<

if (saatIni == 9) {arah = -1;}// jika yang berjalan di lampu ke 9 maka nilai kembali di kurang 1 (9, 8, 7, 6, 5, 4, 3, 2, 1, 0(off))

if (saatIni == 0) {arah = 1;}// jika yang berjalan dalam keadaan off maka nilai di tambah 1 menuju 9 (0 (off), 1, 2, 3, 4, 5, 6, 7, 8, 9)

}

[/sourcecode]

Langkah 3

Kelengkapan perangkat yang dibutuhkan :

breadboard1

Langkah 4

Buat rangkaian seperti gambar di bawah ini, pin sosled yang keluar dari pin 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 dan pin ini bukannlah pin yang mutlak di gunakan boleh anda ubah dengan urutan pin yang lain.

breadboard2

Dari sketsa gambar di atas jika di implementasikan kurang lebih seperti gambar berikut:

breadboard3

Langkah 5

Kemudian verifikasi kode yang kita buat untuk memeriksa apakah ada error script atau tidak.

breadboard4

Langkah 6

Kemudian compile untuk di masukkan ke dalam microcontroller, dan hasilnya kurang lebih seperti gambar-gambar di bawah ini :

breadboard5

Selamat mencoba dan bereksperimen 🙂

 

Copyright © All rights reserved. | Newsphere by AF themes.