Anda di halaman 1dari 7

ROSAN SANJANI

207002516020
TUGAS SISTEM EMBEDDED

1. PRINSIP KERJA

mendektesi adanya benda atau halangan yang berada di depan robot. Robot akan
mendektesi objek jika robot terhalang, robot ini akan terus berjalan jika tidak ada objek
atau halangan, dan jika robot terhalang maka robot akan berbelok ke arah dimana robot
tidak terdektesi objek atau halangan.Yang di gunakan robot avoider adalah robot
memakai sensor ultrasonic HC-SR04 yang berfungsi untuk mendektesi objek atau jarak,
ultrasonic akan bekerja ketika sensor mendektesi objek maka Sensor ultrasonik
pendektesi jarak objek dengan cara memancarkan gelombang ultrasonik (40 KHz) selama
(200 us) kemudian mendektesi pantulannya. Sensor HC-SR04 memancarkan gelombang
ultrasonik sesuai dengan kontrol dari mikrokontroler pengendali

Batterry 12v

Merupakan salah satu sumber tegangan pada rangkaian robot

ARDUINO UNO

Arduino Uno adalah salah satu produk berlabel arduino yang sebenarnya adalah suatu
papan elektronik yang mengandung mikrokontroler Atmega328P, yang memiliki 14 pin
I/O digital dan 6 pin input analog dan bersifat open Pada rangkaian Robot Avoider ini pin
keluaran arduino yang digunakan adalah pin Analog Output dan Digital Output. Pin AO2
dan AO3 akan dihubungkan ke kaki pin sensor HC-SR 04, pin DO9 dihubungkan ke kaki
pin motor servo, dan pin A1 ke kaki positif buzzer, sedangkan sensor infrared
dihubungkan ke pin A0, pin A5 dihubungkan ke port SCL modul I2C, Pin A4
dihubungkan ke port SDA modul I2C.

SENSOR HC-SR04

Sensor ultrasonik berfungsi sebagai mengukur jarak antara penghalang dan sensor.
Secara umum, alat ini akan menembakkan gelombang ultrasonik menuju suatu area atau
suatu target. Setelah gelombang menyentuh permukaan target, maka target akan
memantulkan kembali gelombang tersebut. Gelombang pantulan dari target akan
ditangkap oleh sensor, kemudian sensor menghitung selisih antara waktu pengiriman
gelombang dan waktu gelombang pantul diterima.

BUZZER

Buzzer adalah komponen elektronika yang berfungsi mengeluarkan suara, prinsip kerja
buzzer yaitu merubah listrik menjadi getaran suara. Buzzer biasa digunakan sebagai
indikator (alarm) bahwa proses sedang bekerja atau proses sudah selesai pada sebuah
alat.

LCD

LCD berfungsi untuk menampilkan suatu nilai hasil sensor, menampilkan text, atau
menampilkan menu pada aplikasi mikrokontroler.

MOTOR DRIVER

Digunakan untuk mengendalikan motor dc


MOTOR DC

mengubah energi listrik yang didapatkan dari sumber utama, menjadi energi gerak yang
digunakan

DIAGRAM BLOK
FLOWCHART
CODING SOFTWARE ARDUINO
#include <UltraDistSensor.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// buzzer const int buzzer = 5;

// L298N motor driver const

int LeftMotorForward = 11;

const int LeftMotorBackward

= 10; const int

RightMotorForward = 9; const

int RightMotorBackward = 8;

boolean goesForward = false;


// LCD I2C
LiquidCrystal_I2C lcd(0x27,20,4);

UltraDistSensor mysensor;

float reading;

void setup() { lcd.init(); //

initialize the LCD I2C

lcd.backlight();

Serial.begin(9600); // serial monitor

mysensor.attach(7,6);// Trigger pin , Echo pin HSCR

// Motor driver

pinMode(RightMotorForward, OUTPUT);

pinMode(LeftMotorForward, OUTPUT);

pinMode(LeftMotorBackward, OUTPUT);

pinMode(RightMotorBackward,

OUTPUT);

void loop() { //

motor driver int


distanceRight = 0;
int distanceLeft =

0; delay(50);

if (reading <= 5){

moveStop();

delay(200);

moveBackward();

delay(300);

moveStop();

delay(200);

moveForward();

delay(300);

if (reading >=

distanceLeft){

turnRight();

moveStop();

}
else{

turnLeft();

moveStop();

}
}
// buzzer if

(reading <= 5){

tone(buzzer,

1000);

}
else{

noTone(buzzer);

}
// LCD I2C
Serial.print("Distance: ");

Serial.println(reading);

reading=mysensor.distanceInC
m(); lcd.setCursor(0,0);
lcd.print("Distance :- ");

lcd.print(reading); delay(50);

}
// motor driver void moveStop(){

digitalWrite(RightMotorForward,

LOW);

digitalWrite(LeftMotorForward,

LOW);

digitalWrite(RightMotorBackward,

LOW);

digitalWrite(LeftMotorBackward,

LOW);

}
void moveForward(){

if(!goesForward){

goesForward=true;

digitalWrite(LeftMotorForward,

HIGH);

digitalWrite(RightMotorForward,

HIGH);

digitalWrite(LeftMotorBackward,

LOW);

digitalWrite(RightMotorBackward,

LOW); }

}
void moveBackward(){

goesForward=false;

digitalWrite(LeftMotorBackward,

HIGH);

digitalWrite(RightMotorBackward,

HIGH);

digitalWrite(LeftMotorForward, LOW);
digitalWrite(RightMotorForward, LOW);
}
void turnRight(){

digitalWrite(LeftMotorForward, HIGH);

digitalWrite(RightMotorBackward,

HIGH);

digitalWrite(LeftMotorBackward, LOW);

digitalWrite(RightMotorForward, LOW);

delay(200);

digitalWrite(LeftMotorForward, HIGH);

digitalWrite(RightMotorForward, HIGH);

digitalWrite(LeftMotorBackward, LOW);

digitalWrite(RightMotorBackward,

LOW);

}
void turnLeft(){

digitalWrite(LeftMotorBackward, HIGH);

digitalWrite(RightMotorForward, HIGH);

digitalWrite(LeftMotorForward, LOW);

digitalWrite(RightMotorBackward,

LOW);

delay(200);

digitalWrite(LeftMotorForward, HIGH);

digitalWrite(RightMotorForward, HIGH);

digitalWrite(LeftMotorBackward, LOW);

digitalWrite(RightMotorBackward,

LOW);

Anda mungkin juga menyukai