0% menganggap dokumen ini bermanfaat (0 suara)
98 tayangan8 halaman

Arduino Seven Segment

Dokumen tersebut berisi diskusi tentang program mikrokontroler Arduino untuk mengontrol display 7 segmen. Program tersebut dapat menampilkan hitungan mundur dan naik serta mereset nilai ke awal dengan menggunakan tombol. Beberapa modifikasi dilakukan untuk menambahkan fitur pause pada hitungan naik.

Diunggah oleh

sarah maulida
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
98 tayangan8 halaman

Arduino Seven Segment

Dokumen tersebut berisi diskusi tentang program mikrokontroler Arduino untuk mengontrol display 7 segmen. Program tersebut dapat menampilkan hitungan mundur dan naik serta mereset nilai ke awal dengan menggunakan tombol. Beberapa modifikasi dilakukan untuk menambahkan fitur pause pada hitungan naik.

Diunggah oleh

sarah maulida
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 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