TP2
Modul 2 PWM, ADC, dan Interrupt
1. Prosedur [Kembali]
1. Rangkai semua komponen sesuai kondisi yang dipilih2. buat program di aplikasi arduino IDE3. setelah selesai masukkan program ke arduino di proteus4. jalankan program pada simulasi dan cobakan sesuai dengan modul dan kondisi5. Selesai
2. Hardware dan diagram blok [Kembali] 1. Arduino Uno
2. DipSwitch
3. 7-Segment
4. Resistor
Diagram Blok :
3. Rangkaian Simulasi dan Prinsip kerja [Kembali]
→ Gambar Rangkaian Sebelum Disimulasikan→ Gambar Rangkaian Setelah DisimulasikanPRINSIP KERJA saat program dijalankan dan masuk ke komponen arduino. Selanjutnya, program terus berjalan dalam loop utama, menunggu input dari pengguna. 7Segment akan menampilkan hitung mundur dari 3 ke 0 saat tidak ada switch terjadi dari dipswitch. saat adanya swtich maka 7-segment akan menampilkan kombinasi 2,0,0,3 secara bergantian. dan apabila switch lagi maka akan kembali ke kondisi awal.
4. FlowChart [Kembali]
a. Listing Program
// Define pin untuk mengontrol 7 segment display#define segA 13#define segB 12#define segC 11#define segD 10#define segE 9#define segF 8#define segG 7#define en1 5#define en2 4#define switchPin A0 // Analog pin for the switch
// Array of pins for each segment (A-G)const int segmentPins[] = {segA, segB, segC, segD, segE, segF, segG};const int numSegments = 7;
void setup() { // Set pin sebagai output pinMode(segA, OUTPUT); pinMode(segB, OUTPUT); pinMode(segC, OUTPUT); pinMode(segD, OUTPUT); pinMode(segE, OUTPUT); pinMode(segF, OUTPUT); pinMode(segG, OUTPUT); pinMode(en1, OUTPUT); pinMode(en2, OUTPUT);}
void loop() { // Menunggu hingga switch diaktifkan while (analogRead(switchPin) < 500) { delay(100); // Tunda sebentar sebelum memeriksa kembali status switch }
// Menampilkan angka 3, 2, 1 digitalWrite(en1, LOW); digitalWrite(en2, HIGH);
for (char i = '3'; i > '0'; i--) { displayCharacter(i); delay(1000); }
// Menampilkan angka 2, 0, 0, 3 char numbers[] = {'2', '0', '0', '3'}; digitalWrite(en1, HIGH); digitalWrite(en2, LOW); for (int i = 0; i < 4; i++) { displayCharacter(numbers[i]); delay(1000); }
// Menunggu hingga switch dinonaktifkan sebelum melanjutkan while (analogRead(switchPin) > 500) { delay(100); // Tunda sebentar sebelum memeriksa kembali status switch }}
void displayCharacter(char key) { switch (key) { case '0': displaySegments(true, true, true, true, true, true, false); break; case '1': displaySegments(false, true, true, false, false, false, false); break; case '2': displaySegments(true, true, false, true, true, false, true); break; case '3': displaySegments(true, true, true, true, false, false, true); break; case '4': displaySegments(false, true, true, false, false, true, true); break; case '5': displaySegments(true, false, true, true, false, true, true); break; case '6': displaySegments(true, false, true, true, true, true, true); break; case '8': displaySegments(true, true, true, true, true, true, true); break; case '7': displaySegments(true, true, true, true, false, false, true); break; case '9': displaySegments(true, true, true, true, false, true, true); break; case 'A': displaySegments(true, true, true, false, true, true, true); break; case 'B': displaySegments(false, false, true, true, true, true, true); break; case 'C': displaySegments(true, false, false, true, true, true, false); break; case 'D': displaySegments(false, true, true, true, true, false, true); break; default: turnOffSegments(); break; }}
void displaySegments(bool a, bool b, bool c, bool d, bool e, bool f, bool g) { bool segments[] = {a, b, c, d, e, f, g}; for (int i = 0; i < numSegments; i++) { digitalWrite(segmentPins[i], segments[i] ? HIGH : LOW); }}
void turnOffSegments() { for (int i = 0; i < numSegments; i++) { digitalWrite(segmentPins[i], LOW); }}
b. Flowchart5. Kondisi [Kembali]Kondisi : Percobaan 3 Kondisi 4 Ketika 1 switch aktif 7-Segment akan menampilkan kombinasi 2,0,0,3 setelah hitung mundur dari 3
6. Video Simulasi [Kembali]
7. Download File [Kembali]Download Simulasi Rangkaian Klik disiniDownload HTML Klik disiniDownload Video Simulasi Klik disiniDownload Datasheet ARDUINO UNO klik disini
1. Prosedur [Kembali]
1. Rangkai semua komponen sesuai kondisi yang dipilih
2. buat program di aplikasi arduino IDE
3. setelah selesai masukkan program ke arduino di proteus
4. jalankan program pada simulasi dan cobakan sesuai dengan modul dan kondisi
5. Selesai
2. Hardware dan diagram blok [Kembali]
1. Arduino Uno
2. DipSwitch
3. 7-Segment
4. Resistor
Diagram Blok :
3. Rangkaian Simulasi dan Prinsip kerja [Kembali]
→ Gambar Rangkaian Sebelum Disimulasikan
→ Gambar Rangkaian Setelah Disimulasikan
PRINSIP KERJA
saat program dijalankan dan masuk ke komponen arduino. Selanjutnya, program terus berjalan dalam loop utama, menunggu input dari pengguna. 7Segment akan menampilkan hitung mundur dari 3 ke 0 saat tidak ada switch terjadi dari dipswitch. saat adanya swtich maka 7-segment akan menampilkan kombinasi 2,0,0,3 secara bergantian. dan apabila switch lagi maka akan kembali ke kondisi awal.
4. FlowChart [Kembali]
// Define pin untuk mengontrol 7 segment display
#define segA 13
#define segB 12
#define segC 11
#define segD 10
#define segE 9
#define segF 8
#define segG 7
#define en1 5
#define en2 4
#define switchPin A0 // Analog pin for the switch
// Array of pins for each segment (A-G)
const int segmentPins[] = {segA, segB, segC, segD, segE, segF, segG};
const int numSegments = 7;
void setup() {
// Set pin sebagai output
pinMode(segA, OUTPUT);
pinMode(segB, OUTPUT);
pinMode(segC, OUTPUT);
pinMode(segD, OUTPUT);
pinMode(segE, OUTPUT);
pinMode(segF, OUTPUT);
pinMode(segG, OUTPUT);
pinMode(en1, OUTPUT);
pinMode(en2, OUTPUT);
}
void loop() {
// Menunggu hingga switch diaktifkan
while (analogRead(switchPin) < 500) {
delay(100); // Tunda sebentar sebelum memeriksa kembali status switch
}
// Menampilkan angka 3, 2, 1
digitalWrite(en1, LOW);
digitalWrite(en2, HIGH);
for (char i = '3'; i > '0'; i--) {
displayCharacter(i);
delay(1000);
}
// Menampilkan angka 2, 0, 0, 3
char numbers[] = {'2', '0', '0', '3'};
digitalWrite(en1, HIGH);
digitalWrite(en2, LOW);
for (int i = 0; i < 4; i++) {
displayCharacter(numbers[i]);
delay(1000);
}
// Menunggu hingga switch dinonaktifkan sebelum melanjutkan
while (analogRead(switchPin) > 500) {
delay(100); // Tunda sebentar sebelum memeriksa kembali status switch
}
}
void displayCharacter(char key) {
switch (key) {
case '0':
displaySegments(true, true, true, true, true, true, false);
break;
case '1':
displaySegments(false, true, true, false, false, false, false);
break;
case '2':
displaySegments(true, true, false, true, true, false, true);
break;
case '3':
displaySegments(true, true, true, true, false, false, true);
break;
case '4':
displaySegments(false, true, true, false, false, true, true);
break;
case '5':
displaySegments(true, false, true, true, false, true, true);
break;
case '6':
displaySegments(true, false, true, true, true, true, true);
break;
case '8':
displaySegments(true, true, true, true, true, true, true);
break;
case '7':
displaySegments(true, true, true, true, false, false, true);
break;
case '9':
displaySegments(true, true, true, true, false, true, true);
break;
case 'A':
displaySegments(true, true, true, false, true, true, true);
break;
case 'B':
displaySegments(false, false, true, true, true, true, true);
break;
case 'C':
displaySegments(true, false, false, true, true, true, false);
break;
case 'D':
displaySegments(false, true, true, true, true, false, true);
break;
default:
turnOffSegments();
break;
}
}
void displaySegments(bool a, bool b, bool c, bool d, bool e, bool f, bool g) {
bool segments[] = {a, b, c, d, e, f, g};
for (int i = 0; i < numSegments; i++) {
digitalWrite(segmentPins[i], segments[i] ? HIGH : LOW);
}
}
void turnOffSegments() {
for (int i = 0; i < numSegments; i++) {
digitalWrite(segmentPins[i], LOW);
}
}
b. Flowchart
5. Kondisi [Kembali]Kondisi : Percobaan 3 Kondisi 4
Ketika 1 switch aktif 7-Segment akan menampilkan kombinasi 2,0,0,3 setelah hitung mundur dari 3
6. Video Simulasi [Kembali]
7. Download File [Kembali]
Download Simulasi Rangkaian Klik disini
Download HTML Klik disini
Download Video Simulasi Klik disini
Download Datasheet ARDUINO UNO klik disini
Komentar
Posting Komentar