Percobaan I Kondisi 6
1. Prosedur [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. 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]
3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]
Pada percobaan terdapat 7 button sebagai input dan 7 LED sebagai output. Button dihubungkan dengan pin analog (A0- A5, 13) Arduino Uno dan LED dihubungkan dengan pin 2- 7 Arduino Uno serta pin 13 juga dihubungkan dengan button. Pada rangkaian, button menggunakan rangkaian pull down, jadi ketika button ditekan, maka tegangan dari VCC akan mengalir menuju arduino dan memeberikan logika high, sedangkan ketika button dalam posisi terbuka, maka akan memberikan logika low pada arduino. Ketika 3 button ditekan, maka 3 LED akan aktif. ketika button 1, 2, dan 3 ditekan makan LED 1, 2, 3 juga akan aktif, begitu juga ketika button 3, 4, 6 ditekan maka LED 3, 4, 6 akan aktif. Sedangkan ketika 2 buah button ditekan, baik button nomor berapa pun, maka semua LED kan aktif secara running. Ketika kedua kondisi tersebut tidak terpenuhi ( 3 button menghidupkan 3 LED, 2 button menghidupkan 7 LED running) maka tidak akan ada LED yang aktif.
Flowchart :
Listing Program:
int led[] = {2, 3, 4, 5, 6, 7, 8}; // Array untuk menyimpan pin LED#define PB1 A0 // Tentukan nomor pin tombol tekan#define PB2 A1#define PB3 A2#define PB4 A3#define PB5 A4#define PB6 A5#define PB7 13
void setup() { Serial.begin(9600); // Memulai komunikasi serial untuk debug pinMode(PB1, INPUT); // Mengatur pin tombol tekan sebagai input pinMode(PB2, INPUT); pinMode(PB3, INPUT); pinMode(PB4, INPUT); pinMode(PB5, INPUT); pinMode(PB6, INPUT); pinMode(PB7, INPUT); for (int i = 0; i < 7; i++) { pinMode(led[i], OUTPUT); // Mengatur pin LED sebagai output } }
void loop(){ // Membaca status setiap tombol tekan int b7 = digitalRead(PB7); int b6 = digitalRead(PB6); int b5 = digitalRead(PB5); int b4 = digitalRead(PB4); int b3 = digitalRead(PB3); int b2 = digitalRead(PB2); int b1 = digitalRead(PB1); // Mengatur variabel untuk menghitung jumlah pin input yang berlogika tinggi int highCount = 0; if (b7 == HIGH) highCount++; if (b6 == HIGH) highCount++; if (b5 == HIGH) highCount++; if (b4 == HIGH) highCount++; if (b3 == HIGH) highCount++; if (b2 == HIGH) highCount++; if (b1 == HIGH) highCount++; // Jika 3 pin input berlogika tinggi, nyalakan 3 LED yang bersangkutan if (highCount == 3) { for (int i = 0; i < 7; i++) { digitalWrite(led[i], LOW); } if (b7 == HIGH) digitalWrite(led[6], HIGH); if (b6 == HIGH) digitalWrite(led[5], HIGH); if (b5 == HIGH) digitalWrite(led[4], HIGH); if (b4 == HIGH) digitalWrite(led[3], HIGH); if (b3 == HIGH) digitalWrite(led[2], HIGH); if (b2 == HIGH) digitalWrite(led[1], HIGH); if (b1 == HIGH) digitalWrite(led[0], HIGH); } // Jika 2 pin input berlogika tinggi, hidupkan 7 LED secara berjalan else if (highCount == 2) { for (int i = 0; i < 7; i++) { digitalWrite(led[i], HIGH); delay(100); digitalWrite(led[i], LOW); } } // Jika tidak ada kondisi yang terpenuhi, matikan semua LED else { for (int i = 0; i < 7; i++) { digitalWrite(led[i], LOW); } }}
Flowchart :
Listing Program:
int led[] = {2, 3, 4, 5, 6, 7, 8}; // Array untuk menyimpan pin LED
#define PB1 A0 // Tentukan nomor pin tombol tekan
#define PB2 A1
#define PB3 A2
#define PB4 A3
#define PB5 A4
#define PB6 A5
#define PB7 13
void setup()
{
Serial.begin(9600); // Memulai komunikasi serial untuk debug
pinMode(PB1, INPUT); // Mengatur pin tombol tekan sebagai input
pinMode(PB2, INPUT);
pinMode(PB3, INPUT);
pinMode(PB4, INPUT);
pinMode(PB5, INPUT);
pinMode(PB6, INPUT);
pinMode(PB7, INPUT);
for (int i = 0; i < 7; i++)
{
pinMode(led[i], OUTPUT); // Mengatur pin LED sebagai output
}
}
void loop()
{
// Membaca status setiap tombol tekan
int b7 = digitalRead(PB7);
int b6 = digitalRead(PB6);
int b5 = digitalRead(PB5);
int b4 = digitalRead(PB4);
int b3 = digitalRead(PB3);
int b2 = digitalRead(PB2);
int b1 = digitalRead(PB1);
// Mengatur variabel untuk menghitung jumlah pin input yang berlogika tinggi
int highCount = 0;
if (b7 == HIGH) highCount++;
if (b6 == HIGH) highCount++;
if (b5 == HIGH) highCount++;
if (b4 == HIGH) highCount++;
if (b3 == HIGH) highCount++;
if (b2 == HIGH) highCount++;
if (b1 == HIGH) highCount++;
// Jika 3 pin input berlogika tinggi, nyalakan 3 LED yang bersangkutan
if (highCount == 3) {
for (int i = 0; i < 7; i++) {
digitalWrite(led[i], LOW);
}
if (b7 == HIGH) digitalWrite(led[6], HIGH);
if (b6 == HIGH) digitalWrite(led[5], HIGH);
if (b5 == HIGH) digitalWrite(led[4], HIGH);
if (b4 == HIGH) digitalWrite(led[3], HIGH);
if (b3 == HIGH) digitalWrite(led[2], HIGH);
if (b2 == HIGH) digitalWrite(led[1], HIGH);
if (b1 == HIGH) digitalWrite(led[0], HIGH);
}
// Jika 2 pin input berlogika tinggi, hidupkan 7 LED secara berjalan
else if (highCount == 2) {
for (int i = 0; i < 7; i++) {
digitalWrite(led[i], HIGH);
delay(100);
digitalWrite(led[i], LOW);
}
}
// Jika tidak ada kondisi yang terpenuhi, matikan semua LED
else {
for (int i = 0; i < 7; i++) {
digitalWrite(led[i], LOW);
}
}
}
Percobaan 1 Kondisi 6: 3 button menghidupkan 3 LED, 2 button menghidupkan 7 LED running
7. Download File [Kembali]
HTML klik disini
fILE RANGKAIAN klik disini
Video Percobaan klik disini
Listing Program klik disini
datasheet arudino klik disini
Tidak ada komentar:
Posting Komentar