Modul 2 Percobaan 3



Modul 2 Percobaan 3

1. Prosedur [Kembali]

  • Rangkai semua komponen 
  • Buat program di aplikasi arduino IDE
  • Setelah selesai masukkan program ke arduino 
  • Jalankan program pada simulasi dan cobakan dengan modul
  • Lihat hasil pada 7-segment

  • Hardware


  • Diagram Blok


    • Rangkaian Simulasi
    • Prinsip Kerja

    Pada percobaan ketiga, Kondisi 1 mengharuskan agar ketika satu tombol aktif, 7-segment display akan menghitung mundur dari angka 10. Dalam eksperimen ini, kami menggunakan dipswitch yang terhubung ke Arduino Uno. Dipswitch ini memiliki empat pin yang terhubung ke pin A0, A1, A2, dan A3 di Arduino, sedangkan pin yang lainnya, yaitu pin 5, 6, 7, dan 8, terhubung ke ground.

    Keluaran dari dipswitch kemudian ditampilkan pada 7-segment display yang terhubung langsung ke Arduino Uno. Pada output 1 dan 2 dari 7-segment display, kami menambahkan resistor untuk memastikan logika 0 atau 1 (biru atau merah). Tanpa resistor, sinyal logika mungkin tidak terbaca dengan jelas dan hanya akan menampilkan warna abu-abu yang tidak jelas.

    Dengan menggunakan konfigurasi ini, kami dapat mengontrol 7-segment display melalui input dari dipswitch, yang pada gilirannya dapat digunakan untuk mengatur penghitungan mundur dari angka 10 sesuai dengan kebutuhan percobaan. Ini memberikan pengalaman praktis yang berguna dalam memahami penggunaan dipswitch, 7-segment display, dan koneksi dengan Arduino Uno, serta pentingnya penggunaan resistor untuk memastikan sinyal logika yang jelas dan dapat dibaca dengan benar



  • 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[10][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
};
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
}
}
}
}



                                            

6. Kondisi [Kembali]

 Percobaan 3 Timer Arduino

7. Download File [Kembali]

HTML klik disini

- Gambar Hardware  klik disini

- Gambar Simulasi  klik disini

- Video Demo  klik disini

- Listring Program  klik disini

- Datasheet:
     ARDUINO UNO klik disini
     















Tidak ada komentar:

Posting Komentar