Anda di halaman 1dari 8

Nama : Sarah Nur Maulida

NIM : C010318103
Kelas : 3D3K-LISTRIK

Diskusikan:
Kalau diamati lebih teliti pada perulangan ke-25 ketika display memperlihatkan angka 5 setelah itu langsung
ke-0. Coba fikirkan kenapa hal tersebut bisa terjadi.
Karena .. jumlah biner hanya 255 karna dibagi persen 10, hasilnya 5.Jadi, setelah perulangan angka 0-9
sebanyak 25 kali, maka tersisa hanya sampai angka 5 saja
Aktifitas 2
Dengan rangkaian yang sama dengan aktifitas 1 buatlah program agar simulasi menampilkan angka dari
9 turun ke 0 kemudian balik lagi ke angka 9 dst.

byte angka[]=
{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
byte i=249, number;
void setup() {
// put your setup code here, to run once:
DDRD=0xFF;
}

void loop() {
//proses
number = i;

//display
PORTD = angka[number%10];
delay(100);
i--;
if(i==255) i=249;
}
Aktifitas 4
Sama seperti aktifitas 3. Tambahkan satu button dan modifikasi programnya sehingga button
tersebut berfungsi sebagai tombol reset yang menyebabkan angka pada 7 segmen ke angka 0.
#define tblNaikPin 14
#define tblTurunPin 15
#define tblResetPin 16
byte angka[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
byte i=150,number;
bool tblNaik=0, tblTurun=0, tblReset=0, tblNaikOld, tblTurunOld,
tblResetOld;

void setup() {
// put your setup code here, to run once:
DDRD=0xFF;
pinMode(tblNaikPin, INPUT_PULLUP);
pinMode(tblTurunPin, INPUT_PULLUP);
pinMode(tblResetPin, INPUT_PULLUP);
}

void loop() {
//baca input
tblNaikOld = tblNaik;
tblNaik = not digitalRead(tblNaikPin);
tblTurunOld = tblTurun;
tblTurun = not digitalRead(tblTurunPin);
tblResetOld = tblReset;
tblReset = not digitalRead(tblResetPin);
//proses
number=i;
if(tblNaik and not tblNaikOld) i++;
if(tblTurun and not tblTurunOld) i--;
if(tblReset and not tblResetOld) i=250;

//display (output)
PORTD = angka[number%10];

}
Keadaan sebelum push-button ditekan.
Ketika pushbutton pin A0 ditekan, maka muncul Pushbutton pin A0 ditekan lagi, maka hasilnya
angka 1 counting up, angka naik menjadi angka 2

Pushbutton A0 ditekan lagi Pushbutton A0 ditekan lagi dan seterusnya


Ketika pushbutton pin A1 ditekan, maka hasilnya counting down, angka mundur menjadi 7

A1 ditekan lagi, maka angka mundur menjadi 6 dan seterusnya

Ketika pushbottton pada pin A2 ditekan, maka akan mereset hitungan menjadi 0

Aktifitas 5
Rangkaian seperti aktifitas 4. Buat sehingga sistem
- jika ditekan b1 maka akan count up terus menerus. Jika ditekan b1 sekali lagi maka akan
pause. tekan sekali lagi akan count up lagi, dst
-jika ditekan b3 akan reset ke 0 dan pause.
#define tblNaikPin 14
#define tblResetPin 15
byte angka[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
byte i=0,number, stat=0;
bool tblNaik=0, tblReset=0, tblNaikOld, tblResetOld;

void setup() {
// put your setup code here, to run once:
DDRD=0xFF;
pinMode(tblNaikPin, INPUT_PULLUP);
pinMode(tblResetPin, INPUT_PULLUP);
}

void loop() {
//baca input
tblNaikOld = tblNaik;
tblNaik = not digitalRead(tblNaikPin);
tblResetOld = tblReset;
tblReset = not digitalRead(tblResetPin);
//proses
number=i;
if(tblNaik and not tblNaikOld)
if(stat==1) stat=2;
else stat=1;
if(tblReset and not tblResetOld) stat=0;

if(stat==0) i=0;

if(stat==1){ i++;delay(200);}

PORTD= angka[number%10];
}

Ketika ditekan push-button pada pin A0 ditekan sekali


Ketika push button pin A0 ditekan kedua kalinya:

Maka akan ter-pause.

Apabila push-button pin A0 ditekan lagi, maka :

Maka akan lanjut ke angka berikutnya.

Ketika pushbutton pada pin A1 ditekan, maka :

Maka, angka akan ter-reset kembali ke keadaan awal.

Anda mungkin juga menyukai