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);
       }
 }











     
 
 


Tidak ada komentar:

Posting Komentar