miniatur truk pembuang sampah
Post on 11-Apr-2016
49 Views
Preview:
DESCRIPTION
TRANSCRIPT
KELOMPOK 3MUHAMMAD HAMDAN R (213341066)PURNANTO TRIDHARMOJ (2133410 69)YANIE KARLINA (2123410 48)
Miniatur Robot Pembuang Sampah
Deskripsi Alat
Alat ini merupakan salah satu contoh miniatur robot pemungut sampah. Mempunyai fungsi untuk mendeteksi sampah atau benda yang ada didepannya. Ketika ia diaktifkan, ia langsung bekerja untuk mendeteksi benda yang ada didepannya. Jika ada benda yang terdeteksi maka alat ini akan mendekati lalu berhenti berjalan dan memindahkan benda tersebut ke dalam tempat sampah atau bak sampah.
Prinsip Kerja
Diagram Chart
Mulai
Sensor mendetek
si
Jarak <= 100cm
Motor DC ON
Jarak <= 20cm
Motor DC OFF
Motor Servo ON
Selesai
tidak
ya
tidak
ya
PING SENSOR
Sensor PING mendeteksi jarak objek dengan cara memancarkan gelombang ultrasonik ( 40 KHz ) selama t = 200 us kemudian mendeteksi pantulannya. Sensor PING memancarkan gelombang ultrasonik sesuai dengan kontrol dari mikrokontroller pengendali ( pulsa trigger dengan tout min 2 us ). Berfungsi sebagai pendeteksi benda dan inputan untuk aktuator.
Aktuator
1. Motor DC
Sebuah motor DC adalah motor listrik bertenaga mekanis commutated dari arus searah (DC).Berfungsi sebagai pemutar roda sehingga roda dapat berputar dan alat dapat bergerak maju mundur
Aktuator
2. Motor Servo Motor servo adalah sebuah motor dengan sistem closed feedback di mana posisi dari motor akan diinformasikan kembali ke rangkaian kontrol yang ada di dalam motor servo.Berfungsi sebagai penggerak lengan pembuang sampah.
Alat dan Bahan
Alat :Super GlueTang PotongTang PenjepitObengBaud, mur, dan sekrupCutterPenggarisSpacer
Bahan :TupperwareRodaRoll ParfumeGearKabelPapanMikrokontroler
Perakitan
Program Ping Sensor
#include <mega8535.h>#include <alcd.h>#include <delay.h>#include <stdio.h>
#define DDR_PING DDRC.3#define PORT_PING PORTC.3#define PIN_PING PINC.3
unsigned char kata[16];float jarak;int baca_jarak()//fungsi untuk membaca jarak dengan menggunakan ping sensor{ unsigned int count=0;//variabel counter diset 0
DDR_PING=1; //jadikan PIN output PORT_PING=1; // memberi sinyal high selama 5 us delay_us(5);
PORT_PING=0; //memberi sinyal low DDR_PING=0; //jadikan PIN sebagai input PORT_PING=1; //aktifkan internal pullup
while (PIN_PING==0){} //ketika sinyal low tidak ada perintah while (PIN_PING==1) //ketika sinyal high maka nilai counter mencacah naik setiap 1 us { count++; delay_us(1); }
jarak=(unsigned int)(((float)count)/25); //hitung nilai count dan dikalibrasi menjadi jarak dalam cm return(jarak);}
Program Motor Servo
int i,j,k;void putar_servo(void){for(k=1; k<=75; k++) { PORTD.0=1; for (j=1; j<=i; j++)
delay_us(10); PORTD.0=0;
TIFR&=0x40;
TCNT2=0xB1;
while(!(TIFR&=0x40));
TIFR&=0x40; }}
Program Utamavoid main(void){ PORTA=0x00; DDRA=0x00; PORTB=0x00; DDRB=0xFF; PORTC=0x00; DDRC=0x00; PORTD=0x00; DDRD=0x01; TCCR2=0x07; ASSR=0x00; ACSR=0x80; SFIOR=0x00;
lcd_init(8);
while (1) {
baca_jarak(); i=100; putar_servo(); if(jarak<=100) { lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("*jarak*"); sprintf(kata," %3d cm", baca_jarak()); lcd_gotoxy(0,1); lcd_puts(kata); delay_ms(300); PORTB=0b00010100; if(jarak<=20) { PORTB=0b00101000; delay_ms(1); PORTB=0x00; i=205;
putar_servo(); delay_ms(100); PORTB=PORTB=0b00010100; delay_ms(800); i=100; putar_servo(); PORTB=0x00; } } else { lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("Tdk Ada"); lcd_gotoxy(0,1); lcd_putsf("Sampah"); delay_ms(300); } }}
Test Drive !
Terimakasih
top related