• 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

Berdasarkan uraian yang telah dipaparkan maka dapat dirumuskan masalah yang akan diteliti yaitu: bagaimana pengaruh spasi vertical drain terhadap derajat

Yang menghubungkan geometri ruang-waktu yang dinyatakan dalam suku tensor Einstein

kemudian tekan tombol “ Panggil Form dari DLL” Maka program akan menampilkan Form dengan memanggil fungsi Showmodal (DLL) pada file NgatesDLL.dll di file dynamic link library

Hal tersebut disebabkan oleh tingkat kekentalan pelumas mineral lebih tinggi (pada suhu 40 0 C adalah 134,69 cSt) dibandingkan pelumas sintetis (pada suhu 40 0 C adalah 77,83

Obat tidak dijual atau didistribusikan sebelum manajemen menyatakan bahwa tiap bets produksi dibuat dan dikendalikan sesuai dengan persyaratan yang tercantum dalam izin edar

JARIZAL HATMI, SE Pejabat Pengelola Keuangan

The purposes of this study are: (1) specifying spatial distribution of groundwater quality parameters such as Chloride, Electrical Conductivity (EC), pH, hardness

Pembebasan tanah hanya dapat dilakukan atas dasar persetujuan dari pihak pemegang hak baik mengenai besar dan bentuk ganti rugi yang diberikan terhadap