Tugas Pendahuluan 1 Modul 2
(Percobaan 3 Kondisi 2)
1. Rangkai rangkaian di proteus sesuai dengan kondisi percobaan.
2. Tulis program untuk arduino di software Arduino IDE.
3. Compile program tadi, lalu upload ke dalam arduino.
4. Setelah program selesai di upload, jalankan simulasi rangkaian pada proteus.
2. Tulis program untuk arduino di software Arduino IDE.
3. Compile program tadi, lalu upload ke dalam arduino.
4. Setelah program selesai di upload, jalankan simulasi rangkaian pada proteus.
2. Hardware dan Diagram Blok
[Kembali]
3. Rangkaian Simulasi dan Prinsip Kerja
[Kembali]
Rangkaian Simulasi :
Prinsip Kerja :
Rangkaian ini terdiri dari 4 buah kompnen yaitu Arduino, 7-Segment 2 digit, Dipswitch, dan Resistor. Dipswith berguna sebagai input dari Arduino yang dihubungkan ke kaki A0-A3 arduino. sedangkan untuk outputnya yaitu 7-segment 2 digit yang masing masing pinnya dihubungkan ke pin 4-13 Arduino.
Ketika 2 buah dipswitch on, maka arduino akan mengeluarkan output berupa counting pada 7-segment dari angka 15 hingga 0 lalu reset counting lagi ke 15. karena 7-segement ini tidak bisa menampilkan 2 digit angka sekaligus maka, kami memprogram pada arduino menggunakan bilangan heksa 0-F dan bergantian di setiap digitnya
4. Flowchart dan Listing Program
[Kembali]
Flowchart :
Listing Program :
#define a 6
#define b 7
#define c 8
#define d 9
#define e 10
#define f 11
#define g 12
#define dp 13
#define D1 4
#define D2 5
#define Dsw1 A0
#define Dsw2 A1
#define Dsw3 A2
#define Dsw4 A3
bool sw1, sw2, sw3, sw4;
int segments[] = {a, b, c, d, e, f, g};
byte digitPatterns[16][7] = {
{1, 1, 1, 1, 1, 1, 0}, // 0
{0, 1, 1, 0, 0, 0, 0}, // 1
{1, 1, 0, 1, 1, 0, 1}, // 2
{1, 1, 1, 1, 0, 0, 1}, // 3
{0, 1, 1, 0, 0, 1, 1}, // 4
{1, 0, 1, 1, 0, 1, 1}, // 5
{1, 0, 1, 1, 1, 1, 1}, // 6
{1, 1, 1, 0, 0, 0, 0}, // 7
{1, 1, 1, 1, 1, 1, 1}, // 8
{1, 1, 1, 1, 0, 1, 1}, // 9
{1, 1, 1, 0, 1, 1, 1}, // 10 (A)
{0, 0, 1, 1, 1, 1, 1}, // 11 (B)
{1, 0, 0, 1, 1, 1, 0}, // 12 (C)
{0, 1, 1, 1, 1, 0, 1}, // 13 (D)
{1, 0, 0, 1, 1, 1, 1}, // 14 (E)
{1, 0, 0, 0, 1, 1, 1} // 15 (F)
};
void setup()
{
for (int i = 0; i < 7; i++)
{
pinMode(segments[i], OUTPUT);
}
pinMode(dp, OUTPUT);
pinMode(D1, OUTPUT);
pinMode(D2, OUTPUT);
pinMode(Dsw1, INPUT_PULLUP);
pinMode(Dsw2, INPUT_PULLUP);
pinMode(Dsw3, INPUT_PULLUP);
pinMode(Dsw4, INPUT_PULLUP);
Serial.begin(9600);
}
void number(int display)
{
if (display >= 0 && display <= 15)
{
for (int i = 0; i < 7; i++)
{
digitalWrite(segments[i], digitPatterns[display][i]);
}
}
}
void loop()
{
int sw1 = digitalRead(Dsw1);
int sw2 = digitalRead(Dsw2);
int sw3 = digitalRead(Dsw3);
int sw4 = digitalRead(Dsw4);
static int digit = 1; // Digit yang sedang ditampilkan (1 atau 2)
static int count = 15; // Counter untuk digit
static unsigned long lastTime = 0; // Waktu terakhir pembacaan tombol
if (sw1 == LOW && sw2 == LOW) // Check both switches active
{
if (millis() - lastTime > 250) // Debouncing
{
lastTime = millis();
count--;
if (count < 0)
{
count = 15;
}
if (digit == 1)
{
digitalWrite(D1, HIGH);
digitalWrite(D2, LOW);
number(count);
digit = 2;
}
else
{
digitalWrite(D1, LOW);
digitalWrite(D2, HIGH);
number(count);
digit = 1;
}
}
}
}
Percobaan 3 Kondisi 2
Ketika 2 switch aktif 7-Segment menghitung mundur dari 15
Ketika 2 switch aktif 7-Segment menghitung mundur dari 15
6. Video Simulasi
[Kembali]
7. Download File
[Kembali]
HTML klik disini
File Rangkaian klik disini
Video Percobaan klik disini
Video Percobaan klik disini
Listing Program klik disini
Datasheet Arduino klik disini
Datasheet Button klik disini
Datasheet Led klik disini
Datasheet Resistor klik disini
Tidak ada komentar:
Posting Komentar