PROGRAM ROBOTIK

 

1 ok

 

void setup() {

 

  pinMode(7, OUTPUT);

  pinMode(8, OUTPUT);

  pinMode(10, OUTPUT);

  pinMode(11, OUTPUT);

 

  // KIRI

  digitalWrite(7, HIGH);

  digitalWrite(8, LOW);

 

  // KANAN

  digitalWrite(10, HIGH);

  digitalWrite(11, LOW);

}

 

void loop() {

}

 

// ======================================================

// ROBOT 4WD BLUETOOTH

// ARDUINO UNO + L298N + HC-05 / HC-06

// ======================================================

//

// KONTROL:

// F = MAJU

// B = MUNDUR

// L = KIRI

// R = KANAN

// S = STOP

//

// KECEPATAN:

// 1 = 80

// 2 = 130

// 3 = 180

// 4 = 220

// 5 = 255

// ======================================================

 

// ======================================================

// LIBRARY BLUETOOTH

// ======================================================

 

#include <SoftwareSerial.h>

 

// RX Arduino = D2

// TX Arduino = D3

SoftwareSerial bluetooth(2, 3);

 

// ======================================================

// PIN L298N

// ======================================================

 

// MOTOR KIRI

#define ENA 6

#define IN1 7

#define IN2 8

 

// MOTOR KANAN

#define ENB 9

#define IN3 10

#define IN4 11

 

// ======================================================

// KECEPATAN AWAL

// ======================================================

 

int speedMotor = 180;

 

// ======================================================

// SETUP

// ======================================================

 

void setup() {

 

  // Motor kiri

  pinMode(ENA, OUTPUT);

  pinMode(IN1, OUTPUT);

  pinMode(IN2, OUTPUT);

 

  // Motor kanan

  pinMode(ENB, OUTPUT);

  pinMode(IN3, OUTPUT);

  pinMode(IN4, OUTPUT);

 

  // Bluetooth

  bluetooth.begin(9600);

 

  // Serial Monitor

  Serial.begin(9600);

 

  // Pastikan robot berhenti

  stopMotor();

 

  delay(1000);

 

  Serial.println("================================");

  Serial.println(" ROBOT 4WD BLUETOOTH");

  Serial.println(" HC-05 / HC-06");

  Serial.println("================================");

  Serial.println("F = MAJU");

  Serial.println("B = MUNDUR");

  Serial.println("L = KIRI");

  Serial.println("R = KANAN");

  Serial.println("S = STOP");

  Serial.println("1-5 = KECEPATAN");

}

 

// ======================================================

// LOOP

// ======================================================

 

void loop() {

 

  // Jika ada data dari Bluetooth

  if (bluetooth.available()) {

 

    char command = bluetooth.read();

 

    Serial.print("Perintah: ");

    Serial.println(command);

 

    kontrolRobot(command);

  }

 

  // Bisa juga dikontrol dari Serial Monitor

  if (Serial.available()) {

 

    char command = Serial.read();

 

    kontrolRobot(command);

  }

}

 

// ======================================================

// KONTROL ROBOT

// ======================================================

 

void kontrolRobot(char command) {

 

  // Ubah huruf kecil menjadi huruf besar

  if (command >= 'a' && command <= 'z') {

    command = command - 32;

  }

 

  switch (command) {

 

    // ==========================

    // MAJU

    // ==========================

 

    case 'F':

 

      maju();

 

      bluetooth.println("MAJU");

 

      break;

 

    // ==========================

    // MUNDUR

    // ==========================

 

    case 'B':

 

      mundur();

 

      bluetooth.println("MUNDUR");

 

      break;

 

    // ==========================

    // KIRI

    // ==========================

 

    case 'L':

 

      kiri();

 

      bluetooth.println("KIRI");

 

      break;

 

    // ==========================

    // KANAN

    // ==========================

 

    case 'R':

 

      kanan();

 

      bluetooth.println("KANAN");

 

      break;

 

    // ==========================

    // STOP

    // ==========================

 

    case 'S':

 

      stopMotor();

 

      bluetooth.println("STOP");

 

      break;

 

    // ==========================

    // KECEPATAN 1

    // ==========================

 

    case '1':

 

      speedMotor = 80;

 

      bluetooth.println("KECEPATAN 1");

 

      break;

 

    // ==========================

    // KECEPATAN 2

    // ==========================

 

    case '2':

 

      speedMotor = 130;

 

      bluetooth.println("KECEPATAN 2");

 

      break;

 

    // ==========================

    // KECEPATAN 3

    // ==========================

 

    case '3':

 

      speedMotor = 180;

 

      bluetooth.println("KECEPATAN 3");

 

      break;

 

    // ==========================

    // KECEPATAN 4

    // ==========================

 

    case '4':

 

      speedMotor = 220;

 

      bluetooth.println("KECEPATAN 4");

 

      break;

 

    // ==========================

    // KECEPATAN 5

    // ==========================

 

    case '5':

 

      speedMotor = 255;

 

      bluetooth.println("KECEPATAN 5");

 

      break;

  }

}

 

// ======================================================

// MAJU

// ======================================================

 

void maju() {

 

  // SISI KIRI

  digitalWrite(IN1, HIGH);

  digitalWrite(IN2, LOW);

 

  // SISI KANAN

  digitalWrite(IN3, HIGH);

  digitalWrite(IN4, LOW);

 

  analogWrite(ENA, speedMotor);

  analogWrite(ENB, speedMotor);

}

 

// ======================================================

// MUNDUR

// ======================================================

 

void mundur() {

 

  // SISI KIRI

  digitalWrite(IN1, LOW);

  digitalWrite(IN2, HIGH);

 

  // SISI KANAN

  digitalWrite(IN3, LOW);

  digitalWrite(IN4, HIGH);

 

  analogWrite(ENA, speedMotor);

  analogWrite(ENB, speedMotor);

}

 

// ======================================================

// BELOK KIRI

// ======================================================

 

void kiri() {

 

  // KIRI MUNDUR

  digitalWrite(IN1, LOW);

  digitalWrite(IN2, HIGH);

 

  // KANAN MAJU

  digitalWrite(IN3, HIGH);

  digitalWrite(IN4, LOW);

 

  analogWrite(ENA, speedMotor);

  analogWrite(ENB, speedMotor);

}

 

// ======================================================

// BELOK KANAN

// ======================================================

 

void kanan() {

 

  // KIRI MAJU

  digitalWrite(IN1, HIGH);

  digitalWrite(IN2, LOW);

 

  // KANAN MUNDUR

  digitalWrite(IN3, LOW);

  digitalWrite(IN4, HIGH);

 

  analogWrite(ENA, speedMotor);

  analogWrite(ENB, speedMotor);

}

 

// ======================================================

// STOP

// ======================================================

 

void stopMotor() {

 

  digitalWrite(IN1, LOW);

  digitalWrite(IN2, LOW);

 

  digitalWrite(IN3, LOW);

  digitalWrite(IN4, LOW);

 

  analogWrite(ENA, 0);

  analogWrite(ENB, 0);

}

=====================================================================

Tombol/karakterFungsi robot
FMaju
BMundur
LBelok kiri
RBelok kanan
SStop
1Kecepatan rendah
2Sedang
3Cepat
4Lebih cepat
5Maksimal

 

Post a Comment

0 Comments