Percobaan 3
- Rangkai semua komponen sesuai kondisi yang dipilih
- Buat program di aplikasi arduino IDE
- Setelah selesai masukkan program ke arduino (Verify and Upload)
- Jalankan program pada simulasi dan cobakan sesuai dengan modul dan kondisi
- Selesai
2. Hardware dan diagram blok [Kembali]
1. Hardware
2. Diagram Blok
3. Rangkaian Simulasi dan Prinsip kerja
[Kembali]
PRINSIP KERJA
Pada rangkaian tersebut, dipswitch berperan sebagai input yang dihubungkan ke kaki analog arduino yaitu pin A0 sampai A3 outputnya yaitu dual 7-segment common anode yang dihubungkan pada pin digital arduino yaitu pin A sampai G 7-segmen dihubungkan ke pin 6 sampai 12 digital arduino,pin DP 7-segmen dihubungkan ke pin 13 digital arduino, sedangkan enabel 1 dan 2 - segmen dihubungkan ke pin 4 dan 5 arduino. Sesuai dengan datasheet, enabel 1 dual 7-segmen cammon anode aktif high sedangkan enabel 2 dual 7-segmen cammon anode aktif low.
Program arduino IDE diatur untuk beberapa kondisi yaitu:
1. ketika 1 switch aktif
maka salah satu segmen kanan di dual seven segmen common anode akan menghitung mundur dari 9 ke 0
2. Ketika 2 switch Aktif
maka seven segmen akan menghitung dari 1 sampai 10 pada segmen kanan dan kiri secara bergantian pada dual seven segmen common anode
3. Ketika 3 switch aktif
maka seven segmen akan menghitung dari 1 sampai 10 pada segmen kanan dan kiri secara bergantian pada dual seven segmen common anode dengan delay yang lebih cepat dari kondisi ketika 2 swtich yang aktif
4. FlowChart [Kembali]
#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[10][7] = {
{0, 0, 0, 0, 0, 0, 1}, // 0
{1, 0, 0, 1, 1, 1, 1}, // 1
{0, 0, 1, 0, 0, 1, 0}, // 2
{0, 0, 0, 0, 1, 1, 0}, // 3
{1, 0, 0, 1, 1, 0, 0}, // 4
{0, 1, 0, 0, 1, 0, 0}, // 5
{0, 1, 0, 0, 0, 0, 0}, // 6
{0, 0, 0, 1, 1, 1, 1}, // 7
{0, 0, 0, 0, 0, 0, 0}, // 8
{0, 0, 0, 0, 1, 0, 0} // 9
};
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 <= 9) {
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 = 0; // Counter untuk digit
static unsigned long lastTime = 0; // Waktu terakhir pembacaan tombol
if (sw1 == LOW) {
if (millis() - lastTime > 1000) { // Debouncing
lastTime = millis();
count++;
if (count > 9) {
count = 0;
}
if (digit == 1) {
digitalWrite(D1, HIGH);
digitalWrite(D2, LOW);
number(count);
digit = 2;
} else {
digitalWrite(D1, LOW);
digitalWrite(D2, HIGH);
number(count);
digit = 1;
}
}
}
else if (sw2 == LOW) {
if (millis() - lastTime > 1000) { // Debouncing
lastTime = millis();
digitalWrite(D1, HIGH);
digitalWrite(D2, LOW);
for (int i = 9; i >= 0; i--) {
number(i);
delay(1000); // Delay agar Anda bisa melihat perubahan digit
}
}
}
if (sw3 == LOW) {
if (millis() - lastTime > 2000) { // Debouncing
lastTime = millis();
count++;
if (count > 9) {
count = 0;
}
if (digit == 1) {
digitalWrite(D2, HIGH);
digitalWrite(D1, LOW);
number(count);
digit = 2;
} else {
digitalWrite(D2, LOW);
digitalWrite(D1, HIGH);
number(count);
digit = 1;
}
}
}
else if (sw4 == LOW) {
if (millis() - lastTime > 2000) { // Debouncing
lastTime = millis();
digitalWrite(D2, HIGH);
digitalWrite(D1, LOW);
for (int i = 9; i >= 0; i--) {
number(i);
delay(200); // Delay agar Anda bisa melihat perubahan digit
}
}
}
}
b. Flowchart
Kondisi : Percobaan 3 Sesuai modul
6. Video Simulasi [Kembali]
7. Download File
[Kembali]
Download HTML Klik disini
Download Video Simulasi Klik disini
Download Datasheet ARDUINO UNO klik disini
Download Datasheet DipSwitch Klik disini
Download Datasheet 7 Segmen Klik Disini
Tidak ada komentar:
Posting Komentar