Tugas Pendahuluan 2 uP uC Modul 1

TUGAS PENDAHULUAN 2 (MODUL I GENERAL INPUT DAN OUTPUT)





1. Prosedur  [Kembali]

  • Rangkailah seperti rangkaian berikut 
  • Buka Arduino IDE dan masukan listing program Upload program ke arduino 
  • Variasikan tombol yang ditekan dan amati keluarannya pada 7-Segment
2. Hardware dan Diagram Blok [Kembali]

a. Arduino

 


b. Dipswitch

c. 7-Segment








Diagram blok

3. Rangkaian Simulasi dan Prinsip Kerja  [Kembali]



    Prinsip kerja dari rangkaian ini adalah, ketika Arduino menerima inputan sinyal digital dari     Dipswitch dan sesuai dengan program, maka Arduino akan menangkapnya sebagai sebuah     instruksi, yang mana akan meneruskan ke 7-Segment. Lalu akan ditampilkan berupa angka yang akan melakukan hitung mundur dari 9 - 0. Dengan keadaan yang akan saling bergiliran pada digit 1 (kiri) dan digit 2 (kanan)

4. Flowchart dan Listing Program [Kembali]

    Flowchart


Listing Program
//M1P5 Meninisiasi pin dengan huruf
#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: set up pin untuk dijadikan output dan input
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]);
}
}
}
//mengeksekusi program dengan hitung mundur
void loop() {
int sw = analogRead(Dsw);
Serial.print("ADC Value = ");
Serial.println(sw);
delay(100);
if(sw == 21){
digitalWrite(D1,HIGH);
digitalWrite(D2,LOW);
number(9);
delay(500);
digitalWrite(D1,LOW);
digitalWrite(D2,HIGH);
number(8);
delay(500);
digitalWrite(D1,HIGH);
digitalWrite(D2,LOW);
number(7);
delay(500);
digitalWrite(D1,LOW);
digitalWrite(D2,HIGH);
number(6);
delay(500);
digitalWrite(D1,HIGH);
digitalWrite(D2,LOW);
number(5);
delay(500);
digitalWrite(D1,LOW);
digitalWrite(D2,HIGH);
number(4);
delay(500);
digitalWrite(D1,HIGH);
digitalWrite(D2,LOW);
number(3);
delay(500);
digitalWrite(D1,LOW);
digitalWrite(D2,HIGH);
number(2);
delay(500);
digitalWrite(D1,HIGH);
digitalWrite(D2,LOW);
number(1);
delay(500);
digitalWrite(D1,LOW);
digitalWrite(D2,HIGH);
number(0);
delay(500);
digitalWrite(D1,HIGH);
digitalWrite(D2,LOW);
}
}
view raw gistfile1.txt hosted with ❤ by GitHub

5. Video Demo [Kembali]


Saat Praktikum

6. Kondisi [Kembali]
Setiap 3 switch yang aktif akan melakukan counting 9 - 0 pada digit 1 dan 2 secara berseling

7. Video Simulasi [Kembali]



8. Link Download [Kembali]
Download HTML [Klik di sini]
Download file rangkaian [Klik di sini]
Download video rangkaian [Klik di sini]
Download program Arduino [Klik di sini]
Download datasheet Arduino [Klik di sini]











Komentar