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]
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
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//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); | |
} | |
} |
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
Posting Komentar