You are on page 1of 14

Miniatur Robot

Pembuang Sampah
KELOMPOK 3
MUHAMMAD HAMDAN R
(213341066)
PURNANTO TRIDHARMOJ (213341069)
YANIE KARLINA
(212341048)

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
Motor DC
ON

Motor
Servo ON

Sensor
mendeteksi

Jarak <=
100cm
ya

tidak

Jarak <=
20cm
ya
Motor DC
OFF

tidak

Selesai

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 Glue
Tang Potong
Tang Penjepit
Obeng
Baud, mur, dan sekrup
Cutter
Penggaris
Spacer
Bahan :
Tupperware
Roda
Roll Parfume
Gear
Kabel
Papan
Mikrokontroler

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;
PORT_PING=1;
delay_us(5);
PORT_PING=0;
DDR_PING=0;
PORT_PING=1;

//jadikan PIN output


// memberi sinyal high selama 5 us
//memberi sinyal low
//jadikan PIN sebagai input
//aktifkan internal pullup

while (PIN_PING==0){}
while (PIN_PING==1)

//ketika sinyal low tidak ada perintah


//ketika sinyal high maka nilai counter mencacah naik setiap 1 us

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 Utama
void 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();

Test Drive !

Terimakasih

You might also like