3.6 Pemrograman Perangkat Lunak Pada Arduino
Berikut adalah diagram alir dari program alat yang telah dirancang:
Inisialisasi Pin yang Digunakan
Data Serial “1”
Mulai
Cek data serial port
Data Serial “2”
Data Serial “3”
Data Serial “4”
Data Serial “5”
Data Serial “6”
Data Serial “7”
Data Serial “8”
Tidak Tidak
Tidak Tidak
Tidak Tidak
Tidak Motor 1 Kamera 1
Searah jarum jam Motor 1 Kamera 1
Berlawanan arah jarum jam
Motor 2 Kamera 1 Berlawan Arah
Jarum Jam Motor 2 Kamera 1
Searah Jarum Jam
Motor 1 Kamera 2 Serah jarum jam
Motor 2 Kamera 2 Berlawanan Arah
Jarum Jam Motor 1 Kamera 2
Berlawanan jarum jam
Motor 2 Kamera 2 Searah Jarum
Jam Ya
Ya Ya
Ya Ya
Ya Ya
Ya Tidak
Gambar 3.6 diagram alir perangkat lunak pada mikrokontroler
Universitas Sumatera Utara
Program dimulai dengan inisialisasi pin-pin yang digunakan serta untuk mendeklarasikan komunikasi serial yang digunakan. Selanjutnya program akan
mengecek apakah ada data dari komunikasi serial. Jika ada data serial, maka mikrokontroler akan memeriksa data tersebut. Jika data dari serial berupa karakter
“1” maka mikrokontroler akan mengeluarkan logika yang akan menggerakan motor 1 pada kamera 1 untuk bergerak naik searah jarum jam clock wise. Jika
data serial berupa karakter “2” maka mikrokontroler akan memberikan logika yang akan menggerakan motor 1 pada kamera 1 bergerak turun berlawanan arah
jarum jam counter clock wise. Jika data serial berupa karakter “3”, maka mikrokontroler akan
mengeluarkan logika yang akan menggerakkan motor 2 pada kamera 1 untuk berputar kearah kiri berlawanan arah jarum jam counter clock wise. Jika data
serial berupa karakter “4”, maka mikrokontroler akan mengeluarkan logika yang akan menggerakan motor 2 pada kamera 1 untuk berputar ke kanan searah jarum
jamclockwise. Jika data serial berupa karakter “5”, maka mikrokontroler akan
memberikan logika yang akan menggerakan motor 1 pada kamera 2 untuk bergerak naik searah jarum jamclock wise. Jika data serial berupa karakter “6”,
maka mikrokontroler akan memberikan logika yang akan menggerakan motor 2 pada kamera 2 berputar kearah kiri berlawanan arah jarum jam counter clock
wise. Jika data serial berupa karakter “7”, maka mikrokontroler akan
memberikan logika yang akan menggerakan motor 1 pada kamera 2 bergerak
Universitas Sumatera Utara
turun berlawanan arah jarum jamcounter clock wise. Jika data serial berupa karakter “8”, maka mikrokontroler akan mengeluarkan logika yang akan
menggerakkan motor 2 pada kamera 2 berputar kekanan searah jarum jamclock wise.
Berikut ini adalah listing program pada mikrokontroler ATMega328: int pwmab=10;
int pwmcd=5; int motas1=12;
int motas2=11; int motbwh1=9;
int motbwh2=8; int motasa=7;
int motasb=6; int motbwha=4;
int motbwhb=3; void setup{
pinModepwmab, OUTPUT; pinModepwmcd, OUTPUT;
pinModemotas1, OUTPUT; pinModemotas2, OUTPUT;
pinModemotbwh1, OUTPUT; pinModemotbwh2, OUTPUT;
pinModemotasa, OUTPUT; pinModemotasb, OUTPUT;
pinModemotbwha, OUTPUT; pinModemotbwhb, OUTPUT;
Serial.begin9600;
Universitas Sumatera Utara
} void loop{
if Serial.available0{ int serial = Serial.read;
switchserial{ case 1:
atasnaek1; delay20;
stopmot1; stopmot2;
break; case 2:
atastrn1; delay20;
stopmot1; stopmot2;
break; case 3:
kiribwh1; delay20;
stopmot1; stopmot2;
break; case 4:
kananbwh1; delay20;
stopmot1; stopmot2;
Universitas Sumatera Utara
break; case 5:
atasnaek2; delay20;
stopmot1; stopmot2;
break; case 6:
kiribwh2; delay20;
stopmot1; stopmot2;
break; case 7:
atastrn2; delay20;
stopmot1; stopmot2;
break; case 8:
kananbwh2; delay20;
stopmot1; stopmot2;
break; default:
stopmot1; stopmot2;
Universitas Sumatera Utara
break; }
} }
void kiribwh1{ digitalWritemotbwh1, HIGH;
digitalWritemotbwh2, LOW; analogWritepwmab, 70;
} void kananbwh1{
digitalWritemotbwh1, LOW; digitalWritemotbwh2, HIGH;
analogWritepwmab, 70; }
void stopmot1{ digitalWritemotbwh1, HIGH;
digitalWritemotbwh2, HIGH; digitalWritemotas1, HIGH;
digitalWritemotas2, HIGH; }
void kiribwh2{ digitalWritemotbwha, LOW;
digitalWritemotbwhb, HIGH; analogWritepwmcd, 70;
} void kananbwh2{
digitalWritemotbwha, HIGH; digitalWritemotbwhb, LOW;
Universitas Sumatera Utara
analogWritepwmcd, 70; }
void stopmot2{ digitalWritemotbwha, HIGH;
digitalWritemotbwhb, HIGH; digitalWritemotasa, HIGH;
digitalWritemotasb, HIGH; }
void atastrn1{ digitalWritemotas1, HIGH;
digitalWritemotas2, LOW; analogWritepwmab, 70;
} void atasnaek1{
digitalWritemotas1, LOW; digitalWritemotas2, HIGH;
analogWritepwmab, 70; }
void atastrn2{ digitalWritemotasa, LOW;
digitalWritemotasb, HIGH; analogWritepwmcd, 70;
} void atasnaek2{
digitalWritemotasa, HIGH; digitalWritemotasb, LOW;
analogWritepwmcd, 70; }
Universitas Sumatera Utara
BAB IV PENGUJIAN ALAT DAN PROGRAM
4.1 Pengujian Rangkaian Power Supplay PSA