Laporan 2 Modul 1 - uP & uC
1. Prosedur [Kembali]
- Rangkai komponen sesuai percobaan dan yang dipilih.
- Buat program menggunakan Arduino IDE.
- Run program yang telah dibuat ke Arduino Uno.
- Uji coba program pada rangkaian percobaan sesuai dengan kondisi yang diinginkan.
- Proses selesai setelah uji coba berhasil dilakukan.
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).
Berbeda dengan sebelumnya (pada percobaan 1), switch di sini hanya masuk dalam 1 pin input yaitu A0, hal ini dikarenakan di sini kita membaca sinyal digital yang dihasilkan dari perpindahan switch (ADC). Hal ini juga yang nantinya akan divariasikan pada code Arduino.
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. Kondisi [Kembali]
Setiap 3 switch yang aktif akan melakukan counting 9 - 0 pada digit 1 dan 2 secara berseling
7. Link Download [Kembali]
Download HTML [Klik di sini]
Download file rangkaian [Klik di sini]
Download video demo [Klik di sini]
Download program Arduino [Klik di sini]
Download datasheet Arduino [Klik di sini]
Komentar
Posting Komentar