Kondisi 1
int led [ ] = {2, 3, 4, 5, 6, 7, 8, 9}; //mendeklarasikan pin 2-9 yang digunakan
void setup() //semua kode dalam fungsi ini hanya dibaca sekali
{
for (int i = 0; i < 8; i++) //perulangan dari 0 sampai kecil 8, increament
{
pinMode (led[i], OUTPUT); //menyatakan pin yang dihubungkan ke LED sebagai OUTPUT
}
}
void loop() //Semua kode dalam fungsi ini dibaca berulang
{
for (int red = 0; red < 8; red++) //perulangan dari 0 sampai kecil 8 untuk menghidupkan LED dari kiri , increament
{
digitalWrite(led[red], HIGH); //LED diberi logika High sehingga LED menyala
delay(250); //Jarak waktu 250 ms menyatakn lama menyalanya
digitalWrite(led[red], LOW); //LED diberi logika Low sehingga LED mati
delay(250); //Jarak waktu 250 ms antar LED yang akan menyala (lama jeda pergantian)
}
for (int red = 3; red >=0; red--) //perulangan dari 3 sampai kecil sama 0 untuk menghidupkan LED dari tengah , decreament
{
digitalWrite(led[red], HIGH); //LED diberi logika 1 sehingga LED menyala untuk LED 1,2,3,4
digitalWrite(led[7-red], HIGH); //LED diberi logika 1 sehingga LED menyala untuk LED 5,6,7,8
delay(250); //Jarak waktu 100 ms antar LED yang akan menyala
digitalWrite(led[red], LOW); //LED diberi logika 1 sehingga LED mati
digitalWrite(led[7-red], LOW); //LED diberi logika 1 sehingga LED mati
delay(250); //Jarak waktu 250 ms antar LED yang akan mati (lama jeda pergantian)
}
delay(250); //Jarak waktu 250 ms sebelum memulai perulangan
}
Rangkaian terdiri dari 1 buah Arduino
Uno, seven segment common katoda dan ground. Pin digital yang digunakan yaitu
pin 2, 3, 4, 5, 6, 7, 8 secara berurutan lalu dihubungkan ke seven segment
common katoda pin G, F, E, D, C, B, A dan diteruskan ke ground.
Untuk program arduino pertama sekali mendeklarasikan variabel sev_seg[]
dengan tipe data byte yang berisikan 8 pin yang akan dihubungkan dengan seven
segment sebagai output. Output yang diinginkan yaitu menampilkan angka 1, 0, 4,
dan 5 berurutan pada seven segment katoda. Dengan demikian untuk menampilkan
angka 1 maka pin 2-5, 8 Low dan 6,7 High dengan fungsi void display_satu() yang
dimuat dalam digitalWrite yang menunjukkan pin I dengan output high/low.
Menampilkan angka 0 maka pin 1 Low dan 3-8 High dengan fungsi void display_nol()
yang dimuat dalam digitalWrite yang menunjukkan pin I dengan output high/low.
Menampilkan angka 4 maka pin 2, 3, 6, 7 High dan 4, 5, 8 Low dengan fungsi void
display_empat() yang dimuat dalam digitalWrite yang menunjukkan pin I dengan
output high/low. Menampilkan angka 5 maka pin 2, 3, 5, 6, 8 High dan 4, 7 Low dengan
fungsi void display_delapan() yang dimuat dalam digitalWrite yang menunjukkan
pin I dengan output high/low.
Setelah itu digunakan fungsi void setup
yang akan membaca kode sekali. Selanjutnya ada perulangan for dari 0 sampai
kecil 9 dan increment. Setelah itu ada perintah pinMode(sev_seg[i],OUTPUT);
yang menyatakan pin yang dihubungkan ke LED sebagai OUTPUT. Kemudian ada fungsi
void loop() yang akan melakukan pembacaan kode berulang. Selanjutnya yaitu
memanggil fungsi display_satu() untuk menampilkan 1 kemudian didelay selama
1000ms (1 detik) lalu memanggil fungsi display_nol() untuk menampilkan 0. Selanjutnya
yaitu memanggil fungsi display_empat() untuk menampilkan 4 kemudian didelay
selama 1000ms (1 detik) lalu memanggil fungsi display_lima() untuk menampilkan 5.
Kondisi 2
int led [ ] = {2, 3, 4, 5, 6, 7, 8, 9}; //mendeklarasikan pin 2-9 yang digunakan
void setup() //semua kode dalam fungsi ini hanya dibaca sekali
{
for (int i = 0; i < 8; i++) //perulangan dari 0 sampai kecil 8, increament
{
pinMode (led[i], OUTPUT); //menyatakan pin yang dihubungkan ke LED sebagai OUTPUT
}
}
void loop() //Semua kode dalam fungsi ini dibaca berulang
{
for (int red = 0; red < 8; red++) //perulangan dari 0 sampai kecil 8 untuk menghidupkan LED dari kiri , increament
{
digitalWrite(led[red], HIGH); //LED diberi logika High sehingga LED menyala
delay(250); //Jarak waktu 250 ms menyatakn lama menyalanya
}
for (int red = 0; red < 8; red++) //perulangan dari 0 sampai kecil 8 untuk menghidupkan LED dari kiri , increament
{
digitalWrite(led[red], LOW); //LED diberi logika High sehingga LED menyala
delay(250); //Jarak waktu 250 ms menyatakn lama menyalanya
}
for (int i = 0; i < 8; i++) //perulangan dari 0 sampai kecil 8 untuk menghidupkan LED dari kiri , increament
{
digitalWrite(led[i], LOW); //LED diberi logika High sehingga LED menyala
delay(250); //Jarak waktu 250 ms menyatakn lama menyalanya
}
for (int red = 7; red >= 8; red--) //perulangan dari 0 sampai kecil 8 untuk menghidupkan LED dari kiri , increament
{
digitalWrite(led[red], HIGH); //LED diberi logika High sehingga LED menyala
delay(250); //Jarak waktu 250 ms menyatakn lama menyalanya
}
delay(250)
}
Rangkaian terdiri dari 1 buah Arduino
Uno, seven segment common katoda dan anoda. Pin digital yang digunakan yaitu
pin 2, 3, 4, 5, 6, 7, 8 secara berurutan lalu dihubungkan ke seven segment
common anoda pin G, F, E, D, C, B, A dan diteruskan ke ground.
Untuk program arduino pertama sekali mendeklarasikan variabel sev_seg[]
dengan tipe data byte yang berisikan 8 pin yang akan dihubungkan dengan seven
segment sebagai output. Output yang diinginkan yaitu menampilkan angka 1, 0, 4,
dan 5 berurutan pada seven segment anoda. Dengan demikian untuk menampilkan
angka 1 maka pin 2-5, 8 Low dan 6,7 High
dengan fungsi display_satu() yang dimuat dalam digitalWrite yang menunjukkan
pin I dengan output high/low. Menampilkan angka 0 maka pin 1 Low dan 3-8 High dengan
fungsi display_nol() yang dimuat dalam digitalWrite yang menunjukkan pin I
dengan output high/low. Menampilkan angka 4 maka pin 2, 3, 6, 7 High dan 4, 5,
8 Low dengan fungsi display_empat() yang dimuat dalam digitalWrite yang
menunjukkan pin I dengan output high/low. Menampilkan angka 5 maka pin 2, 3, 5,
6, 8 High dan 4, 7 Low dengan fungsi display_delapan() yang dimuat dalam digitalWrite
yang menunjukkan pin I dengan output high/low.
Setelah itu digunakan fungsi void setup yang akan membaca kode sekali. Selanjutnya ada perulangan for dari 0 sampai kecil 9 dan increment. Setelah itu ada perintah pinMode(sev_seg[i],OUTPUT); yang menyatakan pin yang dihubungkan ke LED sebagai OUTPUT. Kemudian ada fungsi void loop() yang akan melakukan pembacaan kode berulang. Selanjutnya yaitu memanggil fungsi display_satu() untuk menampilkan 1 kemudian didelay selama 1000ms (1 detik) lalu memanggil fungsi display_nol() untuk menampilkan 0. Selanjutnya yaitu memanggil fungsi display_empat() untuk menampilkan 4 kemudian didelay selama 1000ms (1 detik) lalu memanggil fungsi display_lima() untuk menampilkan 5.
1. Jelaskan
apa yang terjadi ketika penggunaan seven segment common katoda diubah menjadi
seven segment common anoda
Jawab:
Jika menggunakan seven segment katoda akan
mengeluarkan output sesuai perintah input yaitu 1045. Namun jika menggunakan seven segment
anoda adalah sebaliknya, yaitu segment yang mati menunjukkan outputnya.
2. Jelaskan
mengapa seven segment common katoda tidak hidup jika pin commonnya dihubungkan
ke VCC
Karena pada dasarnya seven segment common katoda
merupakan deretan LED yang disusun dengan pemakaian katoda bersama. Untuk dapat
menyala kaki katoda harus terhubung ke ground dan akan aktif ketika low. Maka
dari itu pin commonya harus dihubungkan ke pin GND (ground) arduino.
Tidak ada komentar:
Posting Komentar