• Tidak ada hasil yang ditemukan

Rancangan Quadcopter Untuk Sistem Pemantau Udara Berbasis Mikrokontroller ATmega 328

N/A
N/A
Protected

Academic year: 2017

Membagikan "Rancangan Quadcopter Untuk Sistem Pemantau Udara Berbasis Mikrokontroller ATmega 328"

Copied!
23
0
0

Teks penuh

(1)

LAMPIRAN 1

(2)
(3)
(4)

LAMPIRAN 2

(5)

Program Kendali Pada Remote

#include <RCSwitch.h>

RCSwitch mySwitch = RCSwitch();

(6)

int inByte = 0; int kirim_data=0;

void setup() { Serial.begin(9600);

pinMode(tbl_k, INPUT);

mySwitch.enableTransmit(13); }

void loop(){

State_tbl_k = digitalRead(tbl_k); State_tbl_l = digitalRead(tbl_l); State_tbl_m = digitalRead(tbl_m); State_tbl_n = digitalRead(tbl_n);

State_tbl_g = digitalRead(tbl_g); State_tbl_h = digitalRead(tbl_h); State_tbl_i = digitalRead(tbl_i); State_tbl_j = digitalRead(tbl_j);

State_tbl_e = digitalRead(tbl_e); State_tbl_s = digitalRead(tbl_s); State_tbl_f = digitalRead(tbl_f);

(7)

if (State_tbl_k == LOW) {kirim_data=11; inByte = 0;} if (State_tbl_l == LOW) {kirim_data=12; inByte = 0;} if (State_tbl_m == LOW) {kirim_data=13; inByte = 0;} if (State_tbl_n == LOW) {kirim_data=14; inByte = 0;}

if (State_tbl_g == LOW) {kirim_data=7; inByte = 0;} if (State_tbl_h == LOW) {kirim_data=8; inByte = 0;} if (State_tbl_i == LOW) {kirim_data=9; inByte = 0;} if (State_tbl_j == LOW) {kirim_data=10; inByte = 0;}

if (State_tbl_e == LOW) {kirim_data=5; inByte = 0;} if (State_tbl_s == LOW) {kirim_data=15; inByte = 0;} if (State_tbl_f == LOW) {kirim_data=6; inByte = 0;}

if (State_tbl_a <=500) {kirim_data=1; inByte = 0;} if (State_tbl_b <=500) {kirim_data=2; inByte = 0;} if (State_tbl_c <=500) {kirim_data=3; inByte = 0;} if (State_tbl_d <=500) {kirim_data=4; inByte = 0;}

mySwitch.send(kirim_data, 8); inByte = 0;

(8)

Program Pada Quadcopter

#include <Servo.h> #include <RCSwitch.h>

RCSwitch mySwitch = RCSwitch();

const int analogInPin1 = A1; const int analogInPin2 = A3;

int sensorValue1 = 0; int sensorValue2 = 0;

double rpm_depan_kanan=0; double rpm_depan_kiri=0; double rpm_belakang_kanan=0; double rpm_belakang_kiri=0;

Servo esc_depan_kanan; Servo esc_belakang_kiri; Servo esc_belakang_kanan; Servo esc_depan_kiri;

void setup() { Serial.begin(9600);

esc_depan_kanan.attach(9); esc_belakang_kiri.attach(10); esc_belakang_kanan.attach(11); esc_depan_kiri.attach(3); mySwitch.enableReceive(0); }

void loop() {

if (mySwitch.available()) {

int value = mySwitch.getReceivedValue(); if(value==1)

{rpm_belakang_kanan=rpm_belakang_kanan+0.3; rpm_belakang_kiri=rpm_belakang_kiri+0.3; value=0;} if(value==2)

(9)

{rpm_depan_kiri=rpm_depan_kiri+0.3;

rpm_belakang_kiri=rpm_belakang_kiri+0.3; value=0;} if(value==4)

{rpm_depan_kanan=rpm_depan_kanan+0.3;

rpm_belakang_kanan=rpm_belakang_kanan+0.3; value=0;} if(value==5)

{rpm_depan_kanan=rpm_depan_kanan+0.3; rpm_belakang_kanan=rpm_belakang_kanan+0.3; rpm_depan_kiri=rpm_depan_kiri+0.3;

rpm_belakang_kiri=rpm_belakang_kiri+0.3; value=0;} if(value==6)

{rpm_depan_kanan=rpm_depan_kanan-0.3; rpm_belakang_kanan=rpm_belakang_kanan-0.3;

rpm_depan_kiri=rpm_depan_kiri-0.3; rpm_belakang_kiri=rpm_belakang_kiri-0.3; value=0;}

if(value==7){rpm_depan_kiri=rpm_depan_kiri+0.3; value=0;}

if(value==8 && rpm_depan_kiri!=0){rpm_depan_kiri=rpm_depan_kiri-0.3; value=0;}

if(value==9){rpm_belakang_kiri=rpm_belakang_kiri+0.3; value=0;} if(value==10 &&

rpm_belakang_kiri!=0){rpm_belakang_kiri=rpm_belakang_kiri-0.3; value=0;} if(value==11){rpm_depan_kanan=rpm_depan_kanan+0.3; value=0;}

if(value==12 &&

rpm_depan_kanan!=0){rpm_depan_kanan=rpm_depan_kanan-0.3; value=0;} if(value==13){rpm_belakang_kanan=rpm_belakang_kanan+0.3; value=0;} if(value==14 &&

rpm_belakang_kanan!=0){rpm_belakang_kanan=rpm_belakang_kanan-0.3; value=0;}

if(value==15){rpm_depan_kanan=0; rpm_belakang_kanan=0; rpm_depan_kiri=0; rpm_belakang_kiri=0; value=0;}

esc_depan_kanan.write(rpm_depan_kanan); esc_belakang_kiri.write(rpm_belakang_kiri); esc_belakang_kanan.write(rpm_belakang_kanan); esc_depan_kiri.write(rpm_depan_kiri);

(10)
(11)
(12)
(13)

Start

#include <RCSwitch.h> RCSwitch myswitch = RCSwitch();

Const int tbl_ = ... ;

Void setup() { Serial.begin(9600); PinMode(tbl_ , INPUT);

Void loop(){

State_tbl_ = digitalRead(tbl_ );

manufare

finish

Pembacaan program Ya Tidak

(14)

Start

#include<servo.h> #include<RCSwitch.h> RCSwitch mySwitch = RCSwitch();

Const int analogInPin1 = A1;

Void setup(){ Serial.begin(9600); Esc_..._...attach(...);

Void loop() { If (mySwitch.available() { Int value = mySwitch.getReceivedValue();

If(value == ...) {rpm_..._... =rpm_..._...;

manufare

finish

Pembacaan Program

Ya Tidak

(15)

LAMPIRAN 3

DATA SHEET

MIKROKONTROLLER ATmega

(16)
(17)
(18)

LAMPIRAN 4

Data Sheet Accelerometer

(19)
(20)
(21)

LAMPIRAN 5

Dokumentasi Perancangan Sistem

(22)
(23)

Gambar

Gambar Flowchart Program Kendali Pada Remote
Gambar Flowchart Program Pada Quadcopter

Referensi

Dokumen terkait

Flowchart untuk Main Program untuk komputer lokal maupun komputer remote dapat dilihat pada Gambar 5.. Flowchart Main Program pada Komputer Lokal dan

Sistem kendali holding position pada quadcopter adalah sebuah sistem kendali autonomous pada quadcopter untuk mempertahankan posisi ( holding position ) koordinat

Flowchart Program

Laporan akhir ini dibuat untuk memenuihi syarat menyelesaikan program Pendidikan Diploma III pada jurusan Teknik Elektro Program Studi Teknik Telekomunikasi

Pada kesempatan ini, penulis mengucapkan terima kasih yang sebesar-besarnya kepada Ayah dan Ibu serta Adik-adikku yang tercinta dan tersayang yang selalu memberikan

Kontak yang bergerak dipasangkan pada plunger. Aksi dari medan pada gilirannya menyebabkan plunger bergerak pada kumparan menutup kontak NO dan membuka kontak NC

Setelah dilakukan tempel kartu pada pintu brankas sebagai akses untuk membuka dengan system keamanan yang telah disetting program menggunakan e-ktp maka module GSM SIM 800

Namun jangan lupa untuk jenis pembacaan gauge atau display yang menggunakan sistem mecahnical register biasanya hanya mampu menampilkan flow rate dan volumetrik dan