TP 2 MODUL 1


Percobaan 5 Kondisi 6

DIP SWITCH DAN DUAL 7-SEGMENT

1. Prosedur [Kembali]

  • Rangkai semua komponen 
  • Buat program di aplikasi arduino IDE
  • Setelah selesai masukkan program ke arduino 
  • Jalankan program pada simulasi dan cobakan sesuai kondisi

  • Rangkaian



  • Prinsip Kerja
Pada percobaan 5 Kondisi 6 diminta untuk setiap 1 Switch aktif muncul angka berbeda pada digit ke 1, Setiap,Switch aktif muncul angka pada kedua digit.
Dimana pada percobaan kali ini menggunakan DIPSW_8 sebagai inputan yang terhubung ke Arduino Atmega328, dimana inputan pinnya ke A0, dan untuk menampilkan outputannya menggunakan dual 7-Segment dimana masing masing pin pada dual 7-Segment terhubung ke pin arduino dengan, d6-d12 ke A-G, d13 ke DP, pin 1 terhubung ke d4 yang terkoneksi dengan resistor, dan pin 2 terhubung ke d5 yang terkoneksi dengan resistor. Dimana fungsi dari resistor disini sebagai pengaman terhadap dual 7-Segment, agar tidak ada arus yg berlebih. Pada percobaan kali ini juga menggunakan Virtual terminal yang berfungsi untuk membaca berapa kali perpindahan angka yang hidup pada dual 7-Segment.

  • Flowchart


  • Listing Program
//M1P5
#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 Dsw A0 /*39 32 26 27 19 */ 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() { // put your setup code here, to run once: for (int i = 0; i < 7; i++) { pinMode(segments[i], OUTPUT); } pinMode(dp,OUTPUT); pinMode(D1,OUTPUT); pinMode(D2,OUTPUT); pinMode(Dsw,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 sw = analogRead(Dsw); Serial.print("ADC Value = "); Serial.println(sw); delay(100); if(sw == 23){ digitalWrite(D1,LOW); digitalWrite(D2,HIGH); number(1); delay(50); digitalWrite(D1,HIGH); digitalWrite(D2,LOW); number(0); delay(50); } else if(sw == 22){ digitalWrite(D1,LOW); digitalWrite(D2,HIGH); number(0); delay(1000); digitalWrite(D1,HIGH); digitalWrite(D2,LOW); number(1); delay(1000); }else if(sw == 21){ digitalWrite(D1,HIGH); digitalWrite(D2,LOW); number(0); delay(1000); number(1); delay(1000); number(2); delay(1000); number(3); delay(1000); number(4); delay(1000); number(5); delay(1000); number(6); delay(1000); number(7); delay(1000); number(8); delay(1000); number(9); delay(1000); }else if(sw == 19){ digitalWrite(D1,HIGH); digitalWrite(D2,HIGH); number(0); delay(1000); number(1); delay(1000); number(2); delay(1000); number(3); delay(1000); number(4); delay(1000); number(5); delay(1000); number(6); delay(1000); number(7); delay(1000); number(8); delay(1000); number(9); delay(1000); }else if(sw == 16){ digitalWrite(D1,LOW); digitalWrite(D2,HIGH); number(0); delay(500); number(1); delay(500); number(2); delay(500); number(3); delay(500); number(4); delay(500); digitalWrite(D1,HIGH); digitalWrite(D2,LOW); number(5); delay(500); number(6); delay(500); number(7); delay(500); number(8); delay(500); number(9); delay(500); }else if(sw == 13){ digitalWrite(D1,LOW); digitalWrite(D2,HIGH); number(1); delayMicroseconds (500); digitalWrite(D1,HIGH); digitalWrite(D2,LOW); number(0); delayMicroseconds (500); }else if(sw == 10){ digitalWrite(D1,LOW); digitalWrite(D2,HIGH); number(9); delay(500); number(8); delay(500); number(7); delay(500); number(6); delay(500); number(5); delay(500); number(4); delay(500); number(3); delay(500); number(2); delay(500); number(1); delay(500); number(0); delay(500); }else if(sw == 5){ digitalWrite(D1,LOW); digitalWrite(D2,HIGH); number(1); delay(50); digitalWrite(D1,HIGH); digitalWrite(D2,LOW); number(0); delay(50); digitalWrite(D1,LOW); digitalWrite(D2,HIGH); number(1); delay(50); digitalWrite(D1,HIGH); digitalWrite(D2,LOW); number(1); delay(50); digitalWrite(D1,LOW); digitalWrite(D2,HIGH); number(1); delay(50); digitalWrite(D1,HIGH); digitalWrite(D2,LOW); number(2); delay(50); digitalWrite(D1,LOW); digitalWrite(D2,HIGH); number(1); delay(50); digitalWrite(D1,HIGH); digitalWrite(D2,LOW); number(3); delay(50); digitalWrite(D1,LOW); digitalWrite(D2,HIGH); number(1); delay(50); digitalWrite(D1,HIGH); digitalWrite(D2,LOW); number(4); delay(50); digitalWrite(D1,LOW); digitalWrite(D2,HIGH); number(1); delay(50); digitalWrite(D1,HIGH); digitalWrite(D2,LOW); number(5); delay(50); digitalWrite(D1,LOW); digitalWrite(D2,HIGH); number(1); delay(50); digitalWrite(D1,HIGH); digitalWrite(D2,LOW); number(6); delay(50); digitalWrite(D1,LOW); digitalWrite(D2,HIGH); number(1); delay(50); digitalWrite(D1,HIGH); digitalWrite(D2,LOW); number(7); delay(50); digitalWrite(D1,LOW); digitalWrite(D2,HIGH); number(1); delay(50); digitalWrite(D1,HIGH); digitalWrite(D2,LOW); number(8); delay(50); digitalWrite(D1,LOW); digitalWrite(D2,HIGH); number(1); delay(50); digitalWrite(D1,HIGH); digitalWrite(D2,LOW); number(3); delay(50); digitalWrite(D1,LOW); digitalWrite(D2,HIGH); number(1); delay(50); digitalWrite(D1,HIGH); digitalWrite(D2,LOW); number(4); delay(50); digitalWrite(D1,LOW); digitalWrite(D2,HIGH); number(1); delay(50); digitalWrite(D1,HIGH); digitalWrite(D2,LOW); number(5); delay(50); digitalWrite(D1,LOW); digitalWrite(D2,HIGH); number(1); delay(50); digitalWrite(D1,HIGH); digitalWrite(D2,LOW); number(6); delay(50); digitalWrite(D1,LOW); digitalWrite(D2,HIGH); number(1); delay(50); digitalWrite(D1,HIGH); digitalWrite(D2,LOW); number(7); delay(50); digitalWrite(D1,LOW); digitalWrite(D2,HIGH); number(1); delay(50); digitalWrite(D1,HIGH); digitalWrite(D2,LOW); number(8); delay(50); digitalWrite(D1,LOW); digitalWrite(D2,HIGH); number(1); delay(50); digitalWrite(D1,HIGH); digitalWrite(D2,LOW); number(9); delay(50); digitalWrite(D1,LOW); digitalWrite(D2,HIGH); number(2); } }

4. Kondisi [Kembali]

Setiap 1 Switch aktif muncul angka berbeda pada digit ke 1, Setiap,Switch aktif muncul angka pada kedua digit   

x HTML klik disini  
Simulasi  klik disini
Gambar Simulasi  klik disini
Video Simulasi   klik disini
Listring Program  klik disini


Tidak ada komentar:

Posting Komentar