Tugas Pendahuluan 2 Modul 1




Tugas Pendahuluan 2 Modul 1
(Percobaan 2 Kondisi 1)

1. Kondisi
 [Kembali]
  

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. Hardware dan Diagram Blok [Kembali]

Hardware :
1.Arduino Uno



2.Dipswitch


3.Seven Segment 2 Digit




4.Resistor

Diagram Blok :


3. Video Simulasi [Kembali]



4. Rangkaian Simulasi dan Prinsip Kerja [Kembali]
Rangkaian Simulasi :




Prinsip Kerja :
Dalam rangkaian di atas, push button diatur dalam konfigurasi matriks 4x4 yang berperan sebagai keypad untuk memasukkan angka. Baris keypad dihubungkan ke pin A4, A3, A2, dan A1 pada Arduino, sedangkan kolom keypad dihubungkan ke pin 10, 11, 12, dan 13. Mikrokontroler akan melakukan pemindaian baris secara bergantian saat salah satu push button ditekan, dan setelah baris yang ditekan teridentifikasi, pemindaian akan dilanjutkan ke setiap kolom untuk mengetahui push button mana yang ditekan dalam baris tersebut. Dengan informasi ini, mikrokontroler dapat mengonversi posisi push button yang ditekan menjadi angka yang sesuai dengan kondisi yang telah ditetapkan. Misalnya, saat Button Baris 1 Kolom 1 ditekan, mikrokontroler akan menampilkan angka 3 pada seven segment yang terhubung ke pin 9, 8, 7, 6, 5, 4, 3, dan 2 pada Arduino.

4. Flowchart dan Listing Program [Kembali]

Flowchart :

Master


 Slave


Listing Program :
break;
 case '8':
 // Move servo to position 45 degrees
 servoMotor.write(45);
 break;
 case '9':
 // Move servo to position 0 degrees
 servoMotor.write(0);
 break;
 default:
 break;
 }
 }
}
 {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
 }
 }
}
}

5. Link Download [Kembali]
Download HMTL klik disini
Download Simulasi Rangkaian klik disini


















Tidak ada komentar:

Posting Komentar