Rabu, 14 November 2018

sensor pendeteksi banjir


#define trigPin 7
#define echoPin 6
#define ledaman 8
#define led1 9
#define led2 10
#define led3 11





void setup() {
 Serial.begin (505200);
 pinMode(trigPin, OUTPUT);
 pinMode(echoPin, INPUT);

 pinMode(ledaman, OUTPUT);
 pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);

}

void loop() {
 long duration, distance;
 digitalWrite(trigPin, LOW);
 delayMicroseconds(2);
 digitalWrite(trigPin, HIGH);
 delayMicroseconds(10);
 digitalWrite(trigPin, LOW);
 duration = pulseIn(echoPin, HIGH);
 distance = (duration/2) / 29.1;

if(distance>=16) {
  digitalWrite(ledaman, HIGH);
  digitalWrite(led1, LOW);
  digitalWrite(led2, LOW);
  digitalWrite(led3, LOW);
}
else {
   digitalWrite(ledaman, LOW);
}
if(distance <= 15) {
 digitalWrite(led1, HIGH);
  digitalWrite(led2, LOW);
  digitalWrite(led3, LOW);
}

if(distance < 10) {
   digitalWrite(led2, HIGH);
  digitalWrite(led1, LOW);
  digitalWrite(led3, LOW);
}

if(distance < 5) {
  digitalWrite(led3, HIGH);
  digitalWrite(led2, LOW);
  digitalWrite(led1, LOW);
}

delay(500);
}





buka pintu dengan kartu acces

//Viral Science
//RFID
#include <SPI.h>
#include <MFRC522.h>
#include <Servo.h>

#define SS_PIN 10
#define RST_PIN 9
#define LED_G 4 //define green LED pin
#define LED_R 5 //define red LED
#define BUZZER 2 //buzzer pin
MFRC522 mfrc522(SS_PIN, RST_PIN);   // Create MFRC522 instance.
Servo myServo; //define servo name

void setup()
{
  Serial.begin(9600);   // Initiate a serial communication
  SPI.begin();      // Initiate  SPI bus
  mfrc522.PCD_Init();   // Initiate MFRC522
  myServo.attach(3); //servo pin
  myServo.write(0); //servo start position
  pinMode(LED_G, OUTPUT);
  pinMode(LED_R, OUTPUT);
  pinMode(BUZZER, OUTPUT);
  noTone(BUZZER);
  Serial.println("Put your card to the reader...");
  Serial.println();

}
void loop()
{
  // Look for new cards
  if ( ! mfrc522.PICC_IsNewCardPresent())
  {
    return;
  }
  // Select one of the cards
  if ( ! mfrc522.PICC_ReadCardSerial())
  {
    return;
  }
  //Show UID on serial monitor
  Serial.print("UID tag :");
  String content= "";
  byte letter;
  for (byte i = 0; i < mfrc522.uid.size; i++)
  {
     Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
     Serial.print(mfrc522.uid.uidByte[i], HEX);
     content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
     content.concat(String(mfrc522.uid.uidByte[i], HEX));
  }
  Serial.println();
  Serial.print("Message : ");
  content.toUpperCase();
  if (content.substring(1) == "83 23 38 BB") //change here the UID of the card/cards that you want to give access
  {
    Serial.println("Authorized access");
    Serial.println();
    delay(500);
    digitalWrite(LED_G, HIGH);
    tone(BUZZER, 500);
    delay(300);
    noTone(BUZZER);
    myServo.write(180);
    delay(5000);
    myServo.write(0);
    digitalWrite(LED_G, LOW);
  }

 else   {
    Serial.println(" Access denied");
    digitalWrite(LED_R, HIGH);
    tone(BUZZER, 300);
    delay(1000);
    digitalWrite(LED_R, LOW);
    noTone(BUZZER);
  }
}

line follower


Line follower robot adalah sebuah robot yang dapat mengikuti garis secara otomatis. Robot didukung oleh rangkain komponen elektronika yang dilengkapi dengan roda dan digerakan oleh motor. Pengendalian kecepatan sangat bergantung pada batas putaran dan pergesekan antara ban robot dengan lantainya. Robot tersebut dirancang untuk bernavigasi dan bergerak secara otomatis mengikuti sebuah alur garis yang dibuat.
Untuk membaca garis, robot dilengkapi dengan sensor yang diletakkkan diujung depan dari robot tersebut. Line follower robot ini memiliki jenis dan bentuk serta memiliki beberapa sistem penggerak dan pengendali sebagai pengatur kinerja yang beraneka ragam sesuai dengan kreatifitas pembuatnya. 
Bahan yang harus disediakan:
1x Arduino Uno : http://jogjarobotika.com/arduino-uno-r3-compatible-cable-data
2x TCRT5000 : http://jogjarobotika.com/sensor-garis-tcrt5000-infrared-module
1x L298N Driver Motor : http://jogjarobotika.com/l298n-driver-modul
1x Sasis Kit 2WD : http://jogjarobotika.com/2wd-sasis-kit
2xSpacer 3cm :http://jogjarobotika.com/spacer-kuningan-30mm6mm
1x Kabel Jumper Male-Female http://jogjarobotika.com/kabel-jumper-male-female-40pc
Mur baut 3mm, Jack DC Male
Setelah bahan ready maka tahap selanjutnya adalah merakitnya, namun sebelum itu solderlah motor dc, saklar, dan jack dc terlebih dahulu.
Penyolderan Saklar dilakukan dengan cara membagi jumper male-female menjadi dua. bagian female disolder ke bagian 0 (mati) dan bagian male disolder ke bagian - (Hidup). Sedangkan Jack DC disolder dengan cara membuang bagian female dari kabel jumper, perlu dicatat warna dan polaritasnya! Begitupun dengan penyolderan Motor DC..
Sudah?? Lanjut rakit sasis kitnyaa...
Saya rasa perakitan sasis nggk perlu dijelaskan :P
Oke lanjut ke pengkabelan..
Pengkabelan dilakukan dengan menggunakan kabel jumper, untuk power 5V dapat diambil dari L298N driver (Hati-hati jangan sampai salah ke 12V)
Berikut bentuk robot nampak bawah setelah terakit..
Sebelum masuk ke pemrograman alangkah baiknya kita tahu sistem kerja dari sensor dan driver motor yg digunakan.
Sensor Garis TCRT5000
Sensor ini merupakan sensor garis yang mempunyai 4Pin, VCC,GND, Output Analog (A0), Output Digital (DO). Dalam diagram pengkabelan diatas dapat dilihat bahwa kita (berencana) menggunakan DO sebagai input ke Arduino, dimana nantinya kita menggunakan teori Input-Output dalam pemrogramannya. Dimana jika sensor mendeteksi garis hitam maka sensor akan mengirimkan logika High (1). Kalibrasi sensor dilakukan dengan memutar trimpot yang terdapat pada sensor.
L298N Driver
L298N driver merupakan dricer motor yang sanggup mengontrol dua buah motor DC, driver ini membutuhkan sebuah pin logic (LOW/HIGH)  dan sebuah pin PWM untuk menggerakkan motor.  Berikut konfigurasi dari L298N Driver.
Setelah mengerti cara kerja dari sensor dan driver motor maka kita siap untuk masuk ke pemrograman..
#define m1 3
#define m2 5
#define m3 9
#define m4 10
int arrow =0;
void setup() {

pinMode(m1,OUTPUT);
pinMode(m2,OUTPUT);
pinMode(m3,OUTPUT);
pinMode(m4,OUTPUT);
pinMode(12,INPUT);
pinMode(13,INPUT);

}
void loop() {
// pembacaan sensor pada pin 12 dan 13

int lsensor=digitalRead(12);
int rsensor=digitalRead(13);
//logika robot menggunakan prinsip  AND
if((lsensor == LOW)&&(rsensor== HIGH))
{
// maju dengan kecepatan 100
motorOut(100,100,2);
}
if((lsensor== HIGH)&&(rsensor== LOW))
{
//belok kiri
motorOut(0,100,2);
}
if((lsensor==HIGH)&&(rsensor== HIGH))
{
motorOut(0,100,2);

//belok kiri
}
if((lsensor== LOW)&&(rsensor==LOW))
{
//belok kanan
motorOut(100,0,2);
}
}
//Fungsi untuk menggerakkan motor
void motorOut(unsigned char lpwm, unsigned char rpwm, int arrow){
//arrow =1 mundur, 2 maju,
if(arrow==1){
digitalWrite(m3,HIGH);
digitalWrite(m1,LOW);
analogWrite(m4,255-lpwm);
analogWrite(m2,rpwm);
}
else if (arrow==2)
{
digitalWrite(m3,LOW);
digitalWrite(m1,HIGH);
analogWrite(m4,lpwm);
analogWrite(m2,255-rpwm);
}

}


robot pemadam api

#include <Servo.h>
Servo myservo;

int pos = 0;   
boolean fire = false;

/*-------defining Inputs------*/
#define Left_S 9      // left sensor
#define Right_S 10      // right sensor
#define Forward_S 8 //forward sensor

/*-------defining Outputs------*/
#define LM1 2       // left motor
#define LM2 3       // left motor
#define RM1 4       // right motor
#define RM2 5       // right motor
#define pump 6

void setup()
{
  pinMode(Left_S, INPUT);
  pinMode(Right_S, INPUT);
  pinMode(Forward_S, INPUT);
  pinMode(LM1, OUTPUT);
  pinMode(LM2, OUTPUT);
  pinMode(RM1, OUTPUT);
  pinMode(RM2, OUTPUT);
  pinMode(pump, OUTPUT);

  myservo.attach(11);
  myservo.write(90);
}

void put_off_fire()
{
    delay (500);

    digitalWrite(LM1, HIGH);
    digitalWrite(LM2, HIGH);
    digitalWrite(RM1, HIGH);
    digitalWrite(RM2, HIGH);
   
   digitalWrite(pump, HIGH); delay(500);
   
    for (pos = 50; pos <= 130; pos += 1) {
    myservo.write(pos);
    delay(10); 
  }
  for (pos = 130; pos >= 50; pos -= 1) {
    myservo.write(pos);
    delay(10);
  }
 
  digitalWrite(pump,LOW);
  myservo.write(90);
 
  fire=false;
}

void loop()
{
   myservo.write(90); //Sweep_Servo(); 

    if (digitalRead(Left_S) ==1 && digitalRead(Right_S)==1 && digitalRead(Forward_S) ==1) //If Fire not detected all sensors are zero
    {
    //Do not move the robot
    digitalWrite(LM1, HIGH);
    digitalWrite(LM2, HIGH);
    digitalWrite(RM1, HIGH);
    digitalWrite(RM2, HIGH);
    }
   
    else if (digitalRead(Forward_S) ==0) //If Fire is straight ahead
    {
    //Move the robot forward
    digitalWrite(LM1, HIGH);
    digitalWrite(LM2, LOW);
    digitalWrite(RM1, HIGH);
    digitalWrite(RM2, LOW);
    fire = true;
    }
   
    else if (digitalRead(Left_S) ==0) //If Fire is to the left
    {
    //Move the robot left
    digitalWrite(LM1, HIGH);
    digitalWrite(LM2, LOW);
    digitalWrite(RM1, HIGH);
    digitalWrite(RM2, HIGH);
    }
   
    else if (digitalRead(Right_S) ==0) //If Fire is to the right
    {
    //Move the robot right
    digitalWrite(LM1, HIGH);
    digitalWrite(LM2, HIGH);
    digitalWrite(RM1, HIGH);
    digitalWrite(RM2, LOW);
    }
   
delay(300); //Slow down the speed of robot

     while (fire == true)
     {
      put_off_fire();
     }
}

sensor data android

#define trigPin 7
#define echoPin 6
int led1 =2;
int led2 =3;
int jarakMAX = 250;
int jarakMin = 2;
long microSecond, jarakCm;
int ledTime =450;
void setup() {
 Serial.begin (9600); //Kecepatan komunikasi serial
 pinMode(trigPin, OUTPUT); //Set pin Trigger sebagai output
 pinMode(echoPin, INPUT); //Set pin Echo sebagai input

}

void loop() {
 digitalWrite(trigPin, LOW);
 delayMicroseconds(2);
 digitalWrite(trigPin, HIGH);
 delayMicroseconds(10);
 digitalWrite(trigPin, LOW);
 microSecond = pulseIn(echoPin, HIGH);
 jarakCm = microSecond / 58.3;

 if (jarakCm >= jarakMAX)

{
  Serial.println("....>250cm");
 
}
else if (jarakCm < 5)
{
   Serial.println("<5 cm");
   }
 
else if (jarakCm < 10)
{
   Serial.println("<10 cm");
}
else if (jarakCm <= jarakMin)
{
   Serial.println("....<2cm");
}
else {
  Serial.print(jarakCm);
   Serial.println("cm");
}
delay(100);
}










robot pemungut sampah otomatis

#include <SoftwareSerial.h>
#include <Servo.h>
#include <NewPing.h> //Library untuk Sensor Ultrasonic
#define trigPin A0 //Set Trigger HCSR04 di Pin digital 12
#define echoPin A1 //Set Echo HCSR04 di Pin digital 13
#define MAX_DISTANCE 500 //Set jarak maksimal
NewPing sonar(trigPin, echoPin, MAX_DISTANCE);
SoftwareSerial BT(0, 1); // RX dan TX
Servo myservo1, myservo2, myservo3, myservo4, myservo5, myservo6;
int bluetoothTx = 0;
int bluetoothRx = 1;
SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);
///////============/////////////
const int pinRelay = 7;
String dataDikirim;
String readdata;
char val;

void setup() {
  myservo1.attach(8);
  myservo2.attach(9);
  myservo3.attach(10);
  myservo4.attach(11);
  myservo5.attach(12);
  myservo6.attach(6);
  bluetooth.begin(9400);

  ////////////===========//////////
   BT.begin(9600);
Serial.begin(9600);
pinMode(pinRelay, OUTPUT);
 digitalWrite(pinRelay, HIGH); //tombol otomats dan manual
pinMode(4, OUTPUT); // connect to input 1 of l293d
pinMode(2, OUTPUT); // connect to input 4 of l293d
pinMode(5, OUTPUT); // connect to input 3 of l293d
pinMode(3, OUTPUT); // connect to input 2 of l293d
 pinMode(2,OUTPUT);
  pinMode(3,OUTPUT);
  pinMode(4,OUTPUT);
   pinMode(5,OUTPUT);
    pinMode(trigPin, OUTPUT); //Set pin Trigger sebagai output
 pinMode(echoPin, INPUT); //Set pin Echo sebagai input

}
//-----------------------------------------------------------------------//
void loop() {

long duration, jarak,posisi=0,i;
 digitalWrite(trigPin, LOW);
 delayMicroseconds(2);
 digitalWrite(trigPin, HIGH);
 delayMicroseconds(10);
 digitalWrite(trigPin, LOW);
 duration = pulseIn(echoPin, HIGH);
 jarak = (duration/2) / 29.1;
  Serial.print(jarak);
  Serial.println("cm");
 

if(jarak<=30) // belok kanan

 {



}

 else{
 }
delay(100); //Delay

//Sensor 
while (BT.available())
 {
 delay(10);
 char c = BT.read();
 dataDikirim += c;
 }
 if (dataDikirim.length() > 0)
 {
 Serial.println(dataDikirim);

 if (dataDikirim == "A1")      //otomatis
 {
 digitalWrite(pinRelay, LOW);
 }
 else if (dataDikirim == "A")      //manual
 {
 digitalWrite(pinRelay, HIGH);
 }
 dataDikirim = "";


//khusus relay
 
if( Serial.available() >0 ) {
    val = Serial.read();
    Serial.println(val);
}
  if( val == '1' ) {
    digitalWrite(2,HIGH); }
  else if( val == '2' ) {
    digitalWrite(3,HIGH); }
  else if( val == '3' ) {
    digitalWrite(4,HIGH); }
  else if( val == '4' ) {
    digitalWrite(5,HIGH); }
  else if( val == '5' ) {

 }
  else if( val == 'A' ) {
    digitalWrite(2,LOW); }
  else if( val == 'B' ) {
    digitalWrite(3,LOW); }
  else if( val == 'C' ) {
    digitalWrite(4,LOW); }
      else if( val == 'D' ) {
    digitalWrite(5,LOW); }
///control led

 if(bluetooth.available()>= 2 )
  {
    unsigned int servopos = bluetooth.read();
    unsigned int servopos1 = bluetooth.read();
    unsigned int realservo = (servopos1 *256) + servopos;
    Serial.println(realservo);
   
    if (realservo >= 1000 && realservo <1180){
    int servo1 = realservo;
    servo1 = map(servo1, 1000,1180,0,180);
    myservo1.write(servo1);
    Serial.println("servo 1 ON");
    delay(10);

    }
   
    if (realservo >=2000 && realservo <2180){
      int servo2 = realservo;
      servo2 = map(servo2,2000,2180,0,180);
      myservo2.write(servo2);
      Serial.println("servo 2 On");
      delay(10);
     
    }
   
    if (realservo >=3000 && realservo < 3180){
      int servo3 = realservo;
      servo3 = map(servo3, 3000, 3180,0,180);
      myservo3.write(servo3);
      Serial.println("servo 3 On");
      delay(10);
    }
    if (realservo >=4000 && realservo < 4180){
      int servo4 = realservo;
      servo4 = map(servo4, 4000, 4180,0,180);
      myservo4.write(servo4);
      Serial.println("servo 4 On");
      delay(10);
    }
   
    if (realservo >=5000 && realservo < 5180){
      int servo5 = realservo;
      servo5 = map(servo5, 5000, 5180,0,180);
      myservo5.write(servo5);
      Serial.println("servo 5 On");
      delay(10);
    }
   
    if (realservo >=6000 && realservo < 6180){
      int servo6 = realservo;
      servo6 = map(servo6, 6000, 6180,0,180);
      myservo6.write(servo6);
      Serial.println("servo 6 On");
      delay(10);
    }


// control servo
 
while (Serial.available()){  //Check if there is an available byte to read
delay(10); //Delay added to make thing stable
  char c = Serial.read(); //Conduct a serial read
readdata += c; //build the string- "forward", "reverse", "left" and "right"
  }
if (readdata.length() > 0) {
Serial.println(readdata); // print data to serial monitor
// if data received as forward move robot forward
if(readdata == "maju")
  {
digitalWrite(4, HIGH);
digitalWrite (2, HIGH);
digitalWrite(5,LOW);
digitalWrite(3,LOW);
delay(100);
  }
  // if data received as reverse move robot reverse

else if(readdata == "mundur")
  {
digitalWrite(4, LOW);
digitalWrite(2, LOW);
digitalWrite(5, HIGH);
digitalWrite(3,HIGH);
delay(100);
  }
// if data received as right turn robot to right direction.
else if (readdata == "kanan")
  {
digitalWrite (4,HIGH);
digitalWrite (2,LOW);
digitalWrite (5,LOW);
digitalWrite (3,LOW);
delay (100);

  }
// if data received as left turn robot to left direction
else if ( readdata == "kiri")
 {
digitalWrite (4, LOW);
digitalWrite (2, HIGH);
digitalWrite (5, LOW);
digitalWrite (3, LOW);
delay (100);
 }
 // if data received as stop, halt the robot

else if (readdata == "stop")
 {
digitalWrite (4, LOW);
digitalWrite (2, LOW);
digitalWrite (5, LOW);
digitalWrite (3, LOW);
delay (100);
 }

}
  }

readdata="";}} //Reset the variable

Kamis, 01 November 2018

program arduino

pogram mobile yg ad aplikasi nya


#include <SoftwareSerial.h>
SoftwareSerial mySerial(12, 13); // RX, TX
#define m1 3
#define m2 5
#define m3 9
#define m4 10
int data=0,kec=0;
boolean maju=true;
//array kecepatan
int fast[11]={0,80,100,120,140,160,180,200,220,240,255};
void setup()
{
pinMode(m1,OUTPUT);
pinMode(m2,OUTPUT);
pinMode(m3,OUTPUT);
pinMode(m4,OUTPUT);
// for HC-05 use 38400 when poerwing with KEY/STATE set to HIGH on power on
mySerial.begin(9600);
}
void motorOut(unsigned char lpwm, unsigned char rpwm, boolean arrow){
//arrow=false=maju; arrow=true=mundur;
if(arrow==false){
digitalWrite(m3,HIGH);
digitalWrite(m1,LOW);
analogWrite(m4,255-lpwm);
analogWrite(m2,rpwm);
}
else{
digitalWrite(m3,LOW);
digitalWrite(m1,HIGH);
analogWrite(m4,lpwm);
analogWrite(m2,255-rpwm);
}
}

void loop(){
if(mySerial.available()>0){
data=mySerial.read();
//penyimpan data kecepatan
if (data =='0') { kec=0;}
else if (data =='1') { kec=1;}
else if (data =='2') { kec=2;}
else if (data =='3') { kec=3;}
else if (data =='4') { kec=4;}
else if (data =='5') { kec=5;}
else if (data =='6') { kec=6;}
else if (data =='7') { kec=7;}
else if (data =='8') { kec=8;}
else if (data =='9') { kec=9;}
else if (data =='q') {kec=10;}


//S= Stop
if (data == 'S')
{ motorOut(0,0,false); }
//F=Maju
if (data=='F')
{ motorOut(fast[kec],fast[kec],true); }
//I=Maju sambil belok kanan
if (data=='I')
{ motorOut(fast[kec],((fast[kec])/2),true);}
//G=Maju sambil belok kiri
if (data=='G')
{ motorOut(((fast[kec])/2),fast[kec],true); }
//R=Belok kanan
if(data=='R')
{ motorOut(fast[kec],0,true); }
//L=Belok kiri
if(data=='L')
{ motorOut(0,fast[kec],true); }
//B=Mundur
if(data=='B')
{ motorOut(fast[kec],fast[kec],false); }
//H=Mundur kiri
if (data=='H')
{ motorOut(((fast[kec])/2),fast[kec],false); }
//Mundur kanan
if (data=='J')
{ motorOut(fast[kec],((fast[kec])/2),false); }
}
}



program mobile arduino tanpa bluettoooth


#include <Servo.h>  // Includes servo library.
// defines pins numbers
const int trigPin = 9;
const int echoPin = 8;
const int lm1=7;
const int lm2=6;
const int rm1=5;
const int rm2=4;
const int servoPin=10;

Servo myservo;

// defines variables
long duration;
int distance;
int distance_f;
int distance_r;
int distance_l;
int maxLowDistance=70;

void setup() {
pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
pinMode(echoPin, INPUT); // Sets the echoPin as an Input

pinMode(lm1,OUTPUT);
pinMode(lm2,OUTPUT);
pinMode(rm1,OUTPUT);
pinMode(rm2,OUTPUT);

myservo.attach(servoPin);
myservo.write(90);

Serial.begin(9600); // Starts the serial communication
}
void loop() {
   distance_f=ping();
   if(distance_f > maxLowDistance){
     front();
     delay(400);
   }else{
      Break();
      get_Distance();
      if(distance_r > maxLowDistance){
        right();
        delay(400);
        front();
      }else if(distance_l > maxLowDistance){
        left();
        delay(400);
        front();
      }else{
        back();
        delay(400);
        Break();
      }
   
   }
}
void displayDistance(){
     Serial.print("Right Distance : ");
     Serial.print(distance_r);
     Serial.println("");
     Serial.print("Front Distance : ");
     Serial.print(distance_f);
     Serial.println("");
     Serial.print("Left Distance : ");
     Serial.print(distance_l);
     Serial.println("");
 
}
void front(){
Serial.println("Forward Move");
digitalWrite(lm2,HIGH);
digitalWrite(rm2,HIGH);
digitalWrite(lm1,LOW);
digitalWrite(rm1,LOW);

}
void back(){
    Serial.println("Back Move");
    digitalWrite(lm1,HIGH);
    digitalWrite(rm1,HIGH);
    digitalWrite(lm2,LOW);
    digitalWrite(rm2,LOW);
}
void left(){
  digitalWrite(rm2,HIGH);
  digitalWrite(rm1,LOW);
  digitalWrite(lm1,HIGH);
  digitalWrite(lm2,LOW);
}
void right(){
  digitalWrite(lm2,HIGH);
  digitalWrite(lm1,LOW);
  digitalWrite(rm1,HIGH);
  digitalWrite(rm2,LOW);
}
void Break(){
  digitalWrite(lm2,LOW);
  digitalWrite(lm1,LOW);
  digitalWrite(rm1,LOW);
  digitalWrite(rm2,LOW);
}

void get_Distance(){
  myservo.write(0);
  delay(500);
  int temp_r1=ping();
  myservo.write(45);
  delay(500);
  int temp_r2=ping();
  if(temp_r1<temp_r2){
    distance_r=temp_r1;
  }else{
    distance_r=temp_r2;
  }
  myservo.write(90);
  delay(500);
  distance_f=ping();
 
  myservo.write(135);
  delay(500);
  int temp_l1=ping();
  myservo.write(180);
  delay(500);
  int temp_l2=ping();
  if(temp_l1<temp_l2){
    distance_l=temp_l1;
  }else{
    distance_l=temp_l2;
  }
  myservo.write(90);
 
}

int ping(){
  // Clears the trigPin
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  // Sets the trigPin on HIGH state for 10 micro seconds
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  // Reads the echoPin, returns the sound wave travel time in microseconds
  duration = pulseIn(echoPin, HIGH);
  // Calculating the distance
  distance= duration*0.034/2;
  // Prints the distance on the Serial Monitor
  return distance;
}         



program L293d

int motor1Pin1 = 2;
int motor1Pin2 = 3;
int enable1Pin = 4;
int motor2Pin1 = 5;
int motor2Pin2 = 6;
int enable2Pin = 7;
int state;
int flag=0;
int stateStop=0;
void setup() {
    // Set Motor DC sebagai output:
    pinMode(motor1Pin1, OUTPUT);
    pinMode(motor1Pin2, OUTPUT);
    pinMode(enable1Pin, OUTPUT);
    pinMode(motor2Pin1, OUTPUT);
    pinMode(motor2Pin2, OUTPUT);
    pinMode(enable2Pin, OUTPUT);
    // Set Enable pada 2 buah Motor DC
    digitalWrite(enable1Pin, HIGH);
    digitalWrite(enable2Pin, HIGH);
    // inisialisasi komunikasi serial
    Serial.begin(9600);
}

void loop() {
    // Jika data diterima, maka dimasukkan ke variabel state
    if(Serial.available() > 0){   
      state = Serial.read(); 
      flag=0;
    } 
    // Jika state = F, maka Motor DC bergerak maju
    if (state == 'F') {
        digitalWrite(motor1Pin1, HIGH);
        digitalWrite(motor1Pin2, LOW);
        digitalWrite(motor2Pin1, LOW);
        digitalWrite(motor2Pin2, HIGH);
        if(flag == 0){
          Serial.println("MAJU TAK GENTAR!");
          flag=1;
        }
    }
   
    // Jika state = L, maka Motor DC berbelok ke kiri
    else if (state == 'L') {
        digitalWrite(motor1Pin1, HIGH);
        digitalWrite(motor1Pin2, LOW);
        digitalWrite(motor2Pin1, HIGH);
        digitalWrite(motor2Pin2, LOW);
        if(flag == 0){
          Serial.println("BELOK KIRI GAN!");
          flag=1;
        }
        delay(1500);
        state=3;
        stateStop=1;
    }
    // Jika state = S, maka Motor DC akan berhenti
    else if (state == 'S' || stateStop == 1) {
        digitalWrite(motor1Pin1, LOW);
        digitalWrite(motor1Pin2, LOW);
        digitalWrite(motor2Pin1, LOW);
        digitalWrite(motor2Pin2, LOW);
        if(flag == 0){
          Serial.println("BERHENTI DULU");
          flag=1;
        }
        stateStop=0;
    }
    // Jika state = R, maka Motor DC berbelok ke kanan
    else if (state == 'R') {
        digitalWrite(motor1Pin1, LOW);
        digitalWrite(motor1Pin2, HIGH);
        digitalWrite(motor2Pin1, LOW);
        digitalWrite(motor2Pin2, HIGH);
        if(flag == 0){
          Serial.println("BELOK KANAN GAN!");
          flag=1;
        }
        delay(1500);
        state=3;
        stateStop=1;
    }
    // Jika state = B, maka Motor DC bergerak mundur
    else if (state == 'B') {
        digitalWrite(motor1Pin1, LOW);
        digitalWrite(motor1Pin2, HIGH);
        digitalWrite(motor2Pin1, HIGH);
        digitalWrite(motor2Pin2, LOW);
        if(flag == 0){
          Serial.println("MUNDUR BUKAN BERARTI KEKALAHAN");
          flag=1;
        }
    }
}





servo bluettoth enam channel

#include <SoftwareSerial.h>

#include <Servo.h>
Servo myservo1, myservo2, myservo3, myservo4, myservo5, myservo6;

int bluetoothTx = 7;
int bluetoothRx = 8;

SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);

void setup()
{
  myservo1.attach(9);
  myservo2.attach(10);
  myservo3.attach(11);
  myservo4.attach(3);
  myservo5.attach(5);
  myservo6.attach(6);
  //Setup usb serial connection to computer
  Serial.begin(9600);

  //Setup Bluetooth serial connection to android
  bluetooth.begin(9600);
}

void loop()
{
  //Read from bluetooth and write to usb serial
  if(bluetooth.available()>= 2 )
  {
    unsigned int servopos = bluetooth.read();
    unsigned int servopos1 = bluetooth.read();
    unsigned int realservo = (servopos1 *256) + servopos;
    Serial.println(realservo);
   
    if (realservo >= 1000 && realservo <1180){
    int servo1 = realservo;
    servo1 = map(servo1, 1000,1180,0,180);
    myservo1.write(servo1);
    Serial.println("servo 1 ON");
    delay(10);

    }
   
    if (realservo >=2000 && realservo <2180){
      int servo2 = realservo;
      servo2 = map(servo2,2000,2180,0,180);
      myservo2.write(servo2);
      Serial.println("servo 2 On");
      delay(10);
     
    }
   
    if (realservo >=3000 && realservo < 3180){
      int servo3 = realservo;
      servo3 = map(servo3, 3000, 3180,0,180);
      myservo3.write(servo3);
      Serial.println("servo 3 On");
      delay(10);
    }
    if (realservo >=4000 && realservo < 4180){
      int servo4 = realservo;
      servo4 = map(servo4, 4000, 4180,0,180);
      myservo4.write(servo4);
      Serial.println("servo 4 On");
      delay(10);
    }
   
    if (realservo >=5000 && realservo < 5180){
      int servo5 = realservo;
      servo5 = map(servo5, 5000, 5180,0,180);
      myservo5.write(servo5);
      Serial.println("servo 5 On");
      delay(10);
    }
   
    if (realservo >=6000 && realservo < 6180){
      int servo6 = realservo;
      servo6 = map(servo6, 6000, 6180,0,180);
      myservo6.write(servo6);
      Serial.println("servo 6 On");
      delay(10);
    }

  }


}


progam control relay bluetooth



#include <SoftwareSerial.h>
SoftwareSerial BT(0, 1); // RX dan TX
const int pinLampu = 7;
String dataDikirim;

void setup()
{
 Serial.begin(9600);
 BT.begin(9600);
 pinMode(pinLampu, OUTPUT);
 digitalWrite(pinLampu, HIGH);
}

void loop()
{
 while (BT.available())
 {
 delay(10);
 char c = BT.read();
 dataDikirim += c;
 }
 if (dataDikirim.length() > 0)
 {
 Serial.println(dataDikirim);

 if (dataDikirim == "A1")
 {
 digitalWrite(pinLampu, LOW);
 }
 else if (dataDikirim == "A")
 {
 digitalWrite(pinLampu, HIGH);
 }
 dataDikirim = "";
 }
}





control bluetooth led 4 channel



char val;
void setup() {
  pinMode(2,OUTPUT);
  pinMode(3,OUTPUT);
  pinMode(4,OUTPUT);
  pinMode(5,OUTPUT);
   pinMode(6,OUTPUT);
  Serial.begin(9600);
}

void loop() {
if( Serial.available() >0 ) {
    val = Serial.read();
    Serial.println(val);
}
  if( val == 'F' ) {
    digitalWrite(2,HIGH); }
  else if( val == 'A1' ) {
    digitalWrite(3,HIGH); }
  else if( val == 'A2' ) {
    digitalWrite(4,HIGH); }
  else if( val == 'A3' ) {
    digitalWrite(5,HIGH); }
  else if( val == 'A4' ) {
     digitalWrite(6,HIGH); }
  else if( val == 'A5' ) {
    digitalWrite(2,HIGH);
    digitalWrite(3,HIGH);
    digitalWrite(4,HIGH);
    digitalWrite(5,HIGH);
    digitalWrite(6,HIGH);
 }
  else if( val == 'a' ) {
    digitalWrite(2,LOW); }
  else if( val == 'b' ) {
    digitalWrite(3,LOW); }
  else if( val == 'c' ) {
    digitalWrite(4,LOW); }
  else if( val == 'd' ) {
    digitalWrite(5,LOW); }
  else if( val == 'e' ) {
     digitalWrite(6,LOW); }
  else if( val == 'f' ) {
    digitalWrite(2,LOW);
    digitalWrite(3,LOW);
    digitalWrite(4,LOW);
    digitalWrite(5,LOW);
    digitalWrite(6,LOW);
  }
}

Control led dengan suara

#include <SoftwareSerial.h>
SoftwareSerial BT(0,1);
String perintah;




void setup() {
  BT.begin(9600);
 pinMode(2,OUTPUT);
 pinMode(3,OUTPUT);
  pinMode(4,OUTPUT);
   pinMode(5,OUTPUT);
   Serial.begin(9600);
 
 
}

void loop() {
while (BT.available()){
  delay(10);
  char c =BT.read();
  perintah +=c;
 
}
if(perintah.length()>0){
  Serial.println(perintah);
}


if(perintah=="hidupkan lampu "){
  digitalWrite(2,HIGH);}
  else if (perintah=="LED kamar mati"){
     digitalWrite(2,LOW);}

   
     else if (perintah=="lampu dapur hidup"){
      digitalWrite(3,HIGH);}
       else if (perintah=="led dapur mati"){
      digitalWrite(3,LOW);}


 else if (perintah=="hidupkan kipas angin"){
      digitalWrite(4,HIGH);}
       else if (perintah=="matikan kipas angin"){
      digitalWrite(4,LOW);}

      else if (perintah=="hidupkan komputer"){
      digitalWrite(5,HIGH);}
       else if (perintah=="matikan komputer"){
      digitalWrite(5,LOW);}

 else if (perintah=="hidupkan semua"){
   digitalWrite(2,HIGH);
      digitalWrite(3,HIGH);
      digitalWrite(4,HIGH);
      digitalWrite(5,HIGH);
 }
       else if (perintah=="matikan semua"){
   digitalWrite(2,HIGH);
      digitalWrite(3,HIGH);
      digitalWrite(4,HIGH);
      digitalWrite(5,HIGH);
       }
 }