#include <Servo.h>
int LEDhijau = A3, LEDmerah = A2, LEDcampur = A4;
Servo servoku13;
Servo servoku2;
Servo servoku3;
Servo servoku4;
Servo servoku5;
Servo servoku6;
Servo servoku7;
Servo servoku8;
Servo servoku9;
Servo servoku10;
Servo servoku11;
Servo servoku12;
void setup() {
pinMode(LEDmerah, OUTPUT); //Set LEDmerah sebagai output
pinMode(LEDhijau, OUTPUT); //Set LEDhijau sebagai output
pinMode(LEDcampur, OUTPUT); //Set LEDhijau sebagai output
servoku13.attach(13);
servoku2.attach(2);
servoku3.attach(3);
servoku4.attach(4);
servoku5.attach(5);
servoku6.attach(6);
servoku7.attach(7);
servoku8.attach(8);
servoku9.attach(9);
servoku10.attach(10);
servoku11.attach(11);
servoku12.attach(12);
}
void loop() {
servoku4.write(130); //atas
servoku5.write(40);
servoku6.write(115);
servoku13.write(70); //atas
servoku2.write(35);
servoku3.write(70);
servoku7.write(130); //tengah //kaki belakang
servoku8.write(150);
servoku9.write(93);
servoku10.write(120); //tengah //kaki belakang
servoku11.write(40);
servoku12.write(60);
////=====kaki tegak belakang====////
servoku13.write(70); //atas
servoku2.write(70);
servoku3.write(105);
servoku4.write(130); //atas
servoku5.write(15);
servoku6.write(90);
servoku7.write(160); //tengah //kaki belakang
servoku8.write(150);
servoku9.write(95);
servoku10.write(80); //tengah //kaki belakang
servoku11.write(20);
servoku12.write(45);
///=================////tegak belok kiri///===
servoku4.write(130); //atas
servoku5.write(20);
servoku6.write(90);
servoku13.write(70); //atas
servoku2.write(50);
servoku3.write(95);
servoku7.write(130); //tengah //kaki belakang
servoku8.write(150);
servoku9.write(93);
servoku10.write(120); //tengah //kaki belakang
servoku11.write(40);
servoku12.write(60);
}
Kamis, 20 Desember 2018
pemrograman robt quadruped ciptaan tatang xman putra recpeck 619
(belok kiri)
#include <Servo.h>
int LEDhijau = A3, LEDmerah = A2, LEDcampur = A4;
Servo servoku13;
Servo servoku2;
Servo servoku3;
Servo servoku4;
Servo servoku5;
Servo servoku6;
Servo servoku7;
Servo servoku8;
Servo servoku9;
Servo servoku10;
Servo servoku11;
Servo servoku12;
void setup() {
pinMode(LEDmerah, OUTPUT); //Set LEDmerah sebagai output
pinMode(LEDhijau, OUTPUT); //Set LEDhijau sebagai output
pinMode(LEDcampur, OUTPUT); //Set LEDhijau sebagai output
servoku13.attach(13);
servoku2.attach(2);
servoku3.attach(3);
servoku4.attach(4);
servoku5.attach(5);
servoku6.attach(6);
servoku7.attach(7);
servoku8.attach(8);
servoku9.attach(9);
servoku10.attach(10);
servoku11.attach(11);
servoku12.attach(12);
}
void loop() {
servoku13.write(90); //bawah
delay(100);
servoku2.write(30);
servoku8.write(140);
delay(50);
servoku13.write(30); //atas
servoku7.write(140); //tengah //kaki belakang
delay(100);
servoku5.write(50);
servoku2.write(50);
delay(50);
servoku4.write(100); //atas
servoku13.write(60); //tengah
delay(100);
servoku11.write(20);
delay(50);
servoku10.write(60); //atas //kaki belakang
delay(100);
servoku5.write(30);
delay(50);
servoku4.write(120); //tengah
servoku13.write(90); //bawah
servoku7.write(160);
delay(100);
servoku8.write(170);
delay(50);
servoku7.write(100); //atas //kaki belakang
delay(100);
servoku8.write(140);
servoku11.write(40);
delay(50);
servoku7.write(140); //tengah //kaki belakang
servoku10.write(100); //tengah //kaki belakang
servoku4.write(150); //bawah
delay(100);
servoku6.write(110);
servoku3.write(95);
servoku9.write(93);
servoku12.write(50);
}
{belok kanan}
#include <Servo.h>
int LEDhijau = A3, LEDmerah = A2, LEDcampur = A4;
Servo servoku13;
Servo servoku2;
Servo servoku3;
Servo servoku4;
Servo servoku5;
Servo servoku6;
Servo servoku7;
Servo servoku8;
Servo servoku9;
Servo servoku10;
Servo servoku11;
Servo servoku12;
void setup() {
pinMode(LEDmerah, OUTPUT); //Set LEDmerah sebagai output
pinMode(LEDhijau, OUTPUT); //Set LEDhijau sebagai output
pinMode(LEDcampur, OUTPUT); //Set LEDhijau sebagai output
servoku13.attach(13);
servoku2.attach(2);
servoku3.attach(3);
servoku4.attach(4);
servoku5.attach(5);
servoku6.attach(6);
servoku7.attach(7);
servoku8.attach(8);
servoku9.attach(9);
servoku10.attach(10);
servoku11.attach(11);
servoku12.attach(12);
}
void loop() {
servoku4.write(90); //bawah
delay(200);
servoku5.write(40);
servoku11.write(40);
delay(50);
servoku4.write(150); //atas
servoku10.write(100); //tengah //kaki belakang
servoku7.write(100); //bawah //kaki belakang
delay(200);
servoku5.write(20);
servoku2.write(30);
delay(50);
servoku13.write(110); //atas
servoku4.write(120); //tengah
servoku10.write(60); //bawah
delay(200);
servoku8.write(170);
servoku2.write(50);
delay(50);
servoku7.write(177); //atas //kaki belakang
servoku13.write(90); //tengah
servoku4.write(130); //bawah
delay(200);
servoku11.write(20);
servoku8.write(150);
delay(50);
servoku10.write(120); //atas //kaki belakang
servoku7.write(150); //tengah //kaki belakang
servoku13.write(50); //bawah
delay(200);
servoku6.write(85);
servoku3.write(95);
servoku9.write(93);
servoku12.write(60);
}
{maju}
#include <Servo.h>
int LEDhijau = A3, LEDmerah = A2, LEDcampur = A4;
Servo servoku13;
Servo servoku2;
Servo servoku3;
Servo servoku4;
Servo servoku5;
Servo servoku6;
Servo servoku7;
Servo servoku8;
Servo servoku9;
Servo servoku10;
Servo servoku11;
Servo servoku12;
void setup() {
pinMode(LEDmerah, OUTPUT); //Set LEDmerah sebagai output
pinMode(LEDhijau, OUTPUT); //Set LEDhijau sebagai output
pinMode(LEDcampur, OUTPUT); //Set LEDhijau sebagai output
servoku13.attach(13);
servoku2.attach(2);
servoku3.attach(3);
servoku4.attach(4);
servoku5.attach(5);
servoku6.attach(6);
servoku7.attach(7);
servoku8.attach(8);
servoku9.attach(9);
servoku10.attach(10);
servoku11.attach(11);
servoku12.attach(12);
}
void loop() {
servoku8.write(170);
delay(50);
servoku7.write(100); //atas //kaki belakang
delay(200);
servoku8.write(140);
delay(50);
servoku2.write(15);
delay(50);
servoku13.write(30); //atas
delay(200);
servoku2.write(35);
delay(70);
servoku13.write(60); //tengah
servoku7.write(120); //tengah //kaki belakang
servoku10.write(50); //bawah //kaki belakang
servoku4.write(70); //bawah
delay(200);
/////////////============kaki kanan======///////
servoku11.write(20);
delay(50);
servoku10.write(120); //atas //kaki belakang
delay(200);
servoku11.write(40);
delay(50);
servoku5.write(60);
delay(50);
servoku4.write(130); //atas
delay(200);
servoku5.write(40);
delay(70);
servoku4.write(100); //tengah
servoku7.write(150); //bawah //kaki belakang
servoku13.write(100); //bawah
servoku10.write(100); //tengah
delay(200);
servoku3.write(70);
servoku9.write(90);
servoku6.write(115);
servoku12.write(60);
}
{mundur}
#include <Servo.h>
int LEDhijau = A3, LEDmerah = A2, LEDcampur = A4;
Servo servoku13;
Servo servoku2;
Servo servoku3;
Servo servoku4;
Servo servoku5;
Servo servoku6;
Servo servoku7;
Servo servoku8;
Servo servoku9;
Servo servoku10;
Servo servoku11;
Servo servoku12;
void setup() {
pinMode(LEDmerah, OUTPUT); //Set LEDmerah sebagai output
pinMode(LEDhijau, OUTPUT); //Set LEDhijau sebagai output
pinMode(LEDcampur, OUTPUT); //Set LEDhijau sebagai output
servoku13.attach(13);
servoku2.attach(2);
servoku3.attach(3);
servoku4.attach(4);
servoku5.attach(5);
servoku6.attach(6);
servoku7.attach(7);
servoku8.attach(8);
servoku9.attach(9);
servoku10.attach(10);
servoku11.attach(11);
servoku12.attach(12);
}
void loop() {
servoku2.write(50);
delay(50);
servoku13.write(130); //atas
delay(200);
servoku2.write(70);
delay(50);
servoku8.write(170);
delay(50);
servoku7.write(170); //atas //kaki belakang
delay(200);
servoku8.write(150);
delay(70);
servoku7.write(150); //tengah //kaki belakang
servoku13.write(80); //tengah
servoku10.write(110); //bawah //kaki belakang
servoku4.write(130); //bawah
delay(200);
//////////================//////////
servoku5.write(35);
delay(50);
servoku4.write(80); //atas
delay(200);
servoku5.write(15);
delay(50);
servoku11.write(0);
delay(50);
servoku10.write(70); //atas //kaki belakang
delay(200);
servoku11.write(20);
delay(70);
servoku4.write(110); //tengah
servoku10.write(90); //tengah //kaki belakang
servoku13.write(50); //bawah
servoku7.write(130); //bawah //kaki belakang
delay(200);
servoku7.write(130);
servoku6.write(80);
servoku3.write(105);
servoku12.write(50);
}
Rabu, 12 Desember 2018
program kontrol motor dc dan motor servo dengan android
#include <Servo.h>
Servo myservo1, myservo2, myservo3;
String readdata;
void setup() {
Serial.begin(9600);
myservo1.attach(7);
myservo2.attach(8);
myservo3.attach(9);
pinMode(4, OUTPUT);
pinMode(2, OUTPUT);
pinMode(5, OUTPUT);
pinMode(3, OUTPUT);
}
//-----------------------------------------------------------------------//
void loop() {
while (Serial.available()){
delay(10);
char c = Serial.read();
readdata += c;
}
if (readdata.length() > 0) {
Serial.println(readdata);
if(readdata == "maju")
{
digitalWrite(4, HIGH);
digitalWrite (2, HIGH);
digitalWrite(5,LOW);
digitalWrite(3,LOW);
delay(100);
}
else if(readdata == "mundur")
{
digitalWrite(4, LOW);
digitalWrite(2, LOW);
digitalWrite(5, HIGH);
digitalWrite(3,HIGH);
delay(100);
}
else if (readdata == "kanan")
{
digitalWrite (4, LOW);
digitalWrite (2, HIGH);
digitalWrite (5, HIGH);
digitalWrite (3, LOW);
delay (100);
}
else if ( readdata == "kiri")
{
digitalWrite (4,HIGH);
digitalWrite (2,LOW);
digitalWrite (5,LOW);
digitalWrite (3,HIGH);
delay (100);
}
else if (readdata == "stop")
{
digitalWrite (4, LOW);
digitalWrite (2, LOW);
digitalWrite (5, LOW);
digitalWrite (3, LOW);
delay (100);
}
///////////+++++++batas lengan+++++///////////
else if(readdata == "rebah") //posisi kedua
{
myservo1.write(120); ///rebah
myservo2.write(100);
myservo3.write(20);
{
delay(1500);
}
myservo1.write(120); //buka
myservo2.write(125);
myservo3.write(30);
{
delay(1500);
}
}
else if (readdata == "jepit") //posisi ke 3
{
myservo1.write(120); ///jepit
myservo2.write(125);
myservo3.write(70);
{
delay(1500);
}
myservo1.write(100); //posisi angkat belakang
myservo2.write(180);
myservo3.write(70);
{
delay(1500);
}
myservo1.write(20); //posisi buang
myservo2.write(180);
myservo3.write(70);
{
delay(1500);
}
}
else if ( readdata == "buka") //posisi 4
{
myservo1.write(20); //posisi buka
myservo2.write(180);
myservo3.write(30);
{
delay(1500);
}
}
else if (readdata == "otomatis") //posisi 5
{
myservo1.write(0); //posisi awal
myservo2.write(0);
myservo3.write(70);
{
delay(1500);
}
myservo1.write(50); //posisi awal 2
myservo2.write(0);
myservo3.write(70);
{
delay(1500);
}
myservo1.write(120); ///rebah
myservo2.write(100);
myservo3.write(20);
{
delay(1500);
}
myservo1.write(120); //buka
myservo2.write(125);
myservo3.write(30);
{
delay(1500);
}
myservo1.write(120); ///jepit
myservo2.write(125);
myservo3.write(70);
{
delay(1500);
}
myservo1.write(100); //posisi angkat belakang
myservo2.write(180);
myservo3.write(70);
{
delay(1500);
}
myservo1.write(20); //posisi buang
myservo2.write(180);
myservo3.write(70);
{
delay(1500);
}
myservo1.write(20); //posisi buka
myservo2.write(180);
myservo3.write(30);
{
delay(1500);
}
}
else if ( readdata == "1") //posisi 4
{
myservo1.write(140); ///rebah
myservo2.write(140);
myservo3.write(20);
}
readdata="";}} //Reset the variable
Servo myservo1, myservo2, myservo3;
String readdata;
void setup() {
Serial.begin(9600);
myservo1.attach(7);
myservo2.attach(8);
myservo3.attach(9);
pinMode(4, OUTPUT);
pinMode(2, OUTPUT);
pinMode(5, OUTPUT);
pinMode(3, OUTPUT);
}
//-----------------------------------------------------------------------//
void loop() {
while (Serial.available()){
delay(10);
char c = Serial.read();
readdata += c;
}
if (readdata.length() > 0) {
Serial.println(readdata);
if(readdata == "maju")
{
digitalWrite(4, HIGH);
digitalWrite (2, HIGH);
digitalWrite(5,LOW);
digitalWrite(3,LOW);
delay(100);
}
else if(readdata == "mundur")
{
digitalWrite(4, LOW);
digitalWrite(2, LOW);
digitalWrite(5, HIGH);
digitalWrite(3,HIGH);
delay(100);
}
else if (readdata == "kanan")
{
digitalWrite (4, LOW);
digitalWrite (2, HIGH);
digitalWrite (5, HIGH);
digitalWrite (3, LOW);
delay (100);
}
else if ( readdata == "kiri")
{
digitalWrite (4,HIGH);
digitalWrite (2,LOW);
digitalWrite (5,LOW);
digitalWrite (3,HIGH);
delay (100);
}
else if (readdata == "stop")
{
digitalWrite (4, LOW);
digitalWrite (2, LOW);
digitalWrite (5, LOW);
digitalWrite (3, LOW);
delay (100);
}
///////////+++++++batas lengan+++++///////////
else if(readdata == "rebah") //posisi kedua
{
myservo1.write(120); ///rebah
myservo2.write(100);
myservo3.write(20);
{
delay(1500);
}
myservo1.write(120); //buka
myservo2.write(125);
myservo3.write(30);
{
delay(1500);
}
}
else if (readdata == "jepit") //posisi ke 3
{
myservo1.write(120); ///jepit
myservo2.write(125);
myservo3.write(70);
{
delay(1500);
}
myservo1.write(100); //posisi angkat belakang
myservo2.write(180);
myservo3.write(70);
{
delay(1500);
}
myservo1.write(20); //posisi buang
myservo2.write(180);
myservo3.write(70);
{
delay(1500);
}
}
else if ( readdata == "buka") //posisi 4
{
myservo1.write(20); //posisi buka
myservo2.write(180);
myservo3.write(30);
{
delay(1500);
}
}
else if (readdata == "otomatis") //posisi 5
{
myservo1.write(0); //posisi awal
myservo2.write(0);
myservo3.write(70);
{
delay(1500);
}
myservo1.write(50); //posisi awal 2
myservo2.write(0);
myservo3.write(70);
{
delay(1500);
}
myservo1.write(120); ///rebah
myservo2.write(100);
myservo3.write(20);
{
delay(1500);
}
myservo1.write(120); //buka
myservo2.write(125);
myservo3.write(30);
{
delay(1500);
}
myservo1.write(120); ///jepit
myservo2.write(125);
myservo3.write(70);
{
delay(1500);
}
myservo1.write(100); //posisi angkat belakang
myservo2.write(180);
myservo3.write(70);
{
delay(1500);
}
myservo1.write(20); //posisi buang
myservo2.write(180);
myservo3.write(70);
{
delay(1500);
}
myservo1.write(20); //posisi buka
myservo2.write(180);
myservo3.write(30);
{
delay(1500);
}
}
else if ( readdata == "1") //posisi 4
{
myservo1.write(140); ///rebah
myservo2.write(140);
myservo3.write(20);
}
readdata="";}} //Reset the variable
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);
}
}
//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.
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
#define m2 5
#define m3 9
#define m4 10
int arrow =0;
void setup() {
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);
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 == 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== LOW))
{
//belok kiri
motorOut(0,100,2);
}
if((lsensor==HIGH)&&(rsensor==
HIGH))
{
motorOut(0,100,2);
//belok kiri
{
motorOut(0,100,2);
//belok kiri
}
if((lsensor== LOW)&&(rsensor==LOW))
{
//belok kanan
motorOut(100,0,2);
}
}
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);
}
}
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();
}
}
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);
}
#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
#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);
}
}
#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);
}
}
Selasa, 23 Oktober 2018
STRUKTUR DATA PROGRAM INPUT DATABSE MAHASISWA MENGGUNAKAN APLIKASI DEV C++ 5.1.1
MAKALAH
STRUKTUR DATA
PROGRAM INPUT
DATABSE MAHASISWA MENGGUNAKAN
APLIKASI DEV C++ 5.1.1
Disusun
0leh:
Ambok tatang (1560100207)
Suci rahmadiany (1660100148)
Doli juliadi (1660100174)
Dosen Pengampuh:
Eka Sahputra, S.kom, M.kom
FAKULTAS TEKNIK
PROGRAM STUDI
INFORMATIKA
UNIVERSITAS
MUHAMMADIYAH BENGKULU
2018-2019
KATA PENGANTAR
Puji serta syukur
kehadirat Allah SWT, karena dengan
rahmat dan hidayah-Nyalah kami dapat menyelesaikan makalah ini tepat pada
waktunya. Shalawat beriring salam selalu
kita panjatkan kepada Rasullullah SAW, karena
kegigihan beliau dan ridho-Nyalah kita dapat merasakan kenikmatan dunia seperti
sekarang ini.
Adapun tujuan dari
penulisan makalah ini adalah
untuk memenuhi tugas yang diberikan olah
Bapak Eka Sahputra S.kom,M.kom. selaku dosen
pembimbing. makalah ini juga bertujuan untuk
menambah pengetahuan dan wawasan bagi pembaca sekalian.
Kami sekelompok mengucapkan terima kasih kepada Bapak Eka Sahputra
S.kom,M.kom selaku dosen pembimbing mata kuliah Struktur data.
Kami sekelompok menyadari bahwasanya makalah ini masih jauh
dari kesempurnaan, oleh karena itu kritik
dan saran penulis harapkan dari pembaca sekalian demi terciptanya kesempurnaan
dalam penyusunan makalah ini. Semoga makalah ini bermanfaat bagi yang
membacanya.Terimakasih.
Bengkulu, 23 Oktober 2018
Penyusun
…………………
DAFTAR ISI
KATA PENGANTAR................................................................................................... ..i
DAFTAR ISI ................................................................................................................... ii
BAB 1 PENDAHULUAN................................................................................................ 1
1.1.Latar belakang........................................................................................................... 1
1.2.Rumusan masalah...................................................................................................... 1
1.3.Tujuan....................................................................................................................... 1
BAB II............................................................................................................................. 2
2.1.Dasar teori................................................................................................................. 2
a.Algoritma.......................................................................................................... 2
b.StrukturData...................................................................................................... 2
BAB III PEMROGRAMAN DAN HASIL........................................................................ 3
3.1Pemrograman procedural........................................................................................... 3
3.2Prosedur...................................................................................................................... 3
3.3Array /larik................................................................................................................. 3
3.4Gambaran umum
program........................................................................................ 4
3.5Flowchat program....................................................................................................... 4
3.6Source Code............................................................................................................... 5
PENUTUP........................................................................................................................ 8
KESIMPULAN................................................................................................................ 8
SARAN............................................................................................................................ 8
DAFTAR PUSTAKA....................................................................................................... 9
BAB I
PENDAHULUAN
1.1 Latar belakang
Perkembangan teknologi saat ini
sangat berkembang dengan pesat. Setiap jam, menit, detik selalu berkembang dan
terus berkembang. Hal ini dapat kita lihat di kehidupan kita sehari-hari dimana
kita tidak bisa lepas dari namanya handphone, komputer, pc tablet, iphone dan
lain-lain.
Dengan kemajuan jaman maka saat
ini pendataan mahasiswa dengan menggunakan penulisan manual dapat membuang
banyak waktu, tenaga, dan juga biaya yang dikeluarkan.Dengan menggunakan
teknologi saat ini maka kita dapat menggunakan komputer sebagai alat atau media
untuk menginput dan menyimpan data-data mahasiswa.Sehingga dapat menghemat
waktu, tenaga, dan juga biaya yang dikeluarkan.
Dengan menggunakan bahasa
pemrograman pascal kita dapat melakukan pendataan mahasiswa secara
komputerisasi. Sehingga dapat membantu para staff dalam melakukan pendataan
mahasiswa.Pascal sendiri Pascal sebagai salah satu bahasa tingkat tinggi
(high-level language) untuk dapat dapat dikenali oleh computer harus diterjemahkan
menjadi bahasa mesin. Untuk itu dikembangkan sebuah program penerjemah yang
disebut dengan kompilator (compiler).
1.2 Rumusan masalah
Berdasarkan latar belakang yang
telah dipaparkan di atas, maka penulis telah menentukan beberapa rumusan
masalah dalam pembuatan program perhitungan nilai akhir dan data
mahasiswa.yaitu:
1. Gambaran umum program;
2. Flow Chart program;
3. Koding program;
4. Lay out program.
1.3
Tujuan
Sejalan dengan rumusan masalah di
atas, makalah ini disusun dengan tujuan untuk mengetahui dan mendeskripsikan:
1.
Pembaca dapat mengerti fungsi prosedur
pada pascal;
2.
dapat / bisa menjalankan program aplikasi database mahsiswa;
3.
Implementasi sebuah program.
BAB II
PEMBAHASAAN
2.1 Dasar Teori
A.
Algoritma
Ditinjau dari asal-usul katanya,
kata Algoritma sendiri mempunyai sejarah yang aneh. Orang hanya menemukan kata
algorism yang berarti proses menghitung dengan angka arab. Anda dikatakan
algorist jika Anda menghitung menggunakan angka arab. Para ahli bahasa berusaha
menemukan asal kata ini namun hasilnya kurang memuaskan. Akhirnya para ahli
sejarah matematika menemukan asal kata tersebut yang berasal dari nama penulis
buku arab yang terkenal yaitu Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi.
Al-huwarizmi dibaca orang barat menjadi Algorism. Al-Khuwarizmi menulis buku
yang berjudul Kitab Al Jabar Wal-Muqabala yang artinya “Buku pemugaran dan
pengurangan” (The book of restoration and reduction).Dari judul buku itu kita
juga memperoleh akar kata “Aljabar” (Algebra).Perubahan kata dari algorism
menjadi algorithm muncul karena kata algorism sering dikelirukan
denganarithmetic, sehingga akhiran –sm berubah menjadi –thm. Karena perhitungan
dengan angka Arab sudah menjadi hal yang biasa, maka lambat laun kata algorithm
berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara umum,
sehingga kehilangan makna kata aslinya. Dalam bahasa Indonesia, kata algorithm
diserap menjadi algoritma.“Algoritma adalah urutan langkah-langkah logis
penyelesaian masalah yang disusun secara sistematis dan logis”.
Kata logis merupakan kata kunci dalam
algoritma.Langkah-langkah dalam algoritma harus logis dan harus dapat
ditentukan bernilai salah atau benar.Dalam beberapa konteks, algoritma adalah
spesifikasi urutan langkah untuk melakukan pekerjaan tertentu.Pertimbangan
dalampemilihan algoritma adalah, pertama, algoritma haruslah benar. Artinya
algoritma akan memberikan keluaran yang dikehendaki dari sejumlah masukan yang
diberikan. Tidak peduli sebagus apapun algoritma, kalau memberikan keluaran yang
salah,
B. Struktur Data
Dalam istilah ilmu komputer, sebuah
Struktur adalah cara penyimpanan, penyusunan dan pengaturan data di dalam media
penyimpanan komputer sehingga data tersebut dapat digunakan secara efisien.
Dalam teknik pemrograman, struktur data berarti tata letak data yang berisi
kolom-kolom data, baik itu kolom yang tampak oleh pengguna (user) atau pun
kolom yang hanya digunakan untuk keperluan pemrograman yang tidak tampak oleh
pengguna.Setiap baris dari kumpulan kolom-kolom tersebut dinamakan catatan
(record).Lebar kolom untuk data dapat berubah dan bervariasi.Ada kolom yang
lebarnya berubah secara dinamis sesuai masukan dari pengguna, dan juga ada
kolom yang lebarnya tetap.Dengan sifatnya ini, sebuah struktur data dapat
diterapkan untuk pengolahan database (misalnya untuk keperluan data keuangan)
atau untuk pengolah kata (word processor) yang kolomnya berubah secara
dinamis.Contoh struktur data dapat dilihat pada berkas-berkas lembar-sebar
(spreadsheet), pangkal-data (database), pengolahan kata, citra yang dipampat
(dikompres), juga pemampatan berkas dengan teknik tertentu yang memanfaatkan
struktur data.
BAB III
PEMROGRAMAN DAN
HASIL
3.1 Pemrograman
Prosedural
Pada pemrograman dikenal beberapa
paradigma yang dipakai dalam memecahkan suatu masalah. Penggunaan suatu
paradigm ditujukan sebagai cara pemrogram dalam memandang setiap entitas dalam
dunia nyata dan relasi antara entitas tersebut, sehingga memudahkannya dalam
menerjemahkannya menjadi suatuprogram. Di sisi lain, penggunaan suatu paradigma
akan membatasi/mempersempit cara pandang pemrogram. Dalam tulisan ini akan
digunakan pemrograman dengan paradigma prosedural.
Pemrograman prosedural didasari
oleh konsep mesin Von Neumann yang disebut stored program concept. Suatu
program terdiri atas dua bagian yaitu algoritma dan struktur data. Bagaimana
cara kerja dari suatu program ditentukan oleh sekumpulan perintah yang akan dilaksanakan
secara sekuensial oleh suatu pemroses tunggal. Inilah yang disebut algoritma.
Dalam proses pelaksanaan sampai mengeluarkan suatu hasil, program membutuhkan
data yang akan diolahnya. Data tersebut akan disimpan dalam memory komputer.
Dalam program data tersebut akan distrukturisasikan sehingga akan memudahkan
dalam pengolahannya. Inilah yang disebut struktur data. Paradigma prosedural
membatasi cara penyusunan algoritma dan strukturisasi data sehingga dekat
dengan konsep mesin Von Neumann. Meskipun pemrograman ini sangat tidak
manusiawi, namun sangat efisien karena kedekatannya dengan mesin.
3.2Prosedur
Adalah suatu program terpisah
dalam blok sendiri yang berfungsi sebagai subprogram (program bagian). Diawali dengan kata PROCEDURE didalam bagian deklarasi prosedur . Prosedur banyak digunakan pada program yang terstruktur karena merupakan penerapan konsep program modular,
yaitu memecah-mecah program yang rumit menjadi program-program bagian yang lebih sederhana dalam bentukm
prosedur-prosedur . Untuk hal-hal yang sering dilakukan berulang-ulang, cukup dituliskan sekali saja dalam prosedur
dan dapat dipanggil atau dipergunakan sewaktu-waktu bila diperlukan.
3.3 Array / Larik
Adalah tipe terstruktur yang
terdiri dari sejumlah komponen komponen yang mempunyai tipe data yang sama.
Array dapat bertipe sederhana byte, word, integer, real, boolean, char, string
dan tipe scalar atau subrange. Suatu array mempunyai jumlah komponen yang
banyaknya tetap dan ditunjukkan oleh suatu indeks yang disebut index type (tipe
indeks) Setiap komponene dalam array dapat diakses dengan menunjukkan nilai
indeksnya atau disebut juga dengan istilah subscrip.
3.4 Gambaran umum program
Program Database mahasiswa ini dibuat untuk memudahkan dalam
pendataan , dimana seorang guru atau dosen dengan mudah dan cepat memasukan
atau mencari data mahasiswa, Program ini dibuat dengan menggunakan bahasa
pemrograman Pascal dan ditulis dengan aplikasi Dev C++ For Window dengan lay
out program yang sederhana sehingga user dapat dengan mudah mengoperasikannya.
Gambar 1. Pemrograman dev C++
3.5 Flowchat Program
Diagram alur (flowchart)
merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar
proses beserta instruksinya. Bagan ini dinyatakan dengan simbol. Dengan emikian
setiap simbol menggambarkan proses tertentu sedangkan hubungan antar proses
digambarkan dengan garis penghubung. Simbol-simbol diagram alur.
Flowchat
program database mahasiswa :
3.6 Source code
Pada
Pembuatan Program database mhs ini ketentuan yang saya buat adalah seperti ini
:
Nama : ...........
Alamat :..........
Tempat Lahir :.........
Tanggal Lahir :..........
NPM :.........
Jurusan :..........
Jenis Kelamin :..........
Atau
Tidak seperti ini juga tidak apa kalian tinggal ganti saja sesuai apa yang
kalian inginkan ketentuan diatas hanya contoh saja untuk source codenya bisa
dilihat dibwah ini :
#include<iostream>
#include<stdio.h>
#include<conio.h>
using namespace std;
int main()
{
char nm[20];
char alm[100];
char tmplhr[30];
char tgllhr[30];
char npm[40];
char jrs[30];
char jk[40];
{
cout<<"\tPROGRAM DATA DIRI
"<<endl;
cout<<"*****************************"<<endl;
cout <<" Nama\t\t : ";
cin.getline(nm, sizeof(nm));
cout <<" Alamat\t\t : ";
cin.getline(alm, sizeof(alm));
cout <<" Tempat Lahir\t :
";
cin.getline(tmplhr, sizeof(tmplhr));
cout <<" Tanggal Lahir\t :
";
cin.getline(tgllhr, sizeof(tgllhr));
cout <<" NPM\t\t : ";
cin.getline(npm, sizeof(npm));
cout <<" Jurusan\t : ";
cin.getline(jrs, sizeof(jrs));
cout <<" Jenis Kelamin\t :
";
cin.getline(jk, sizeof(jk));
cout<<endl;
cout<<"***************************************"<<endl;
cout<<" Data Pribadi
Saya"<< endl;
cout <<" Nama Anda\t\t :
"<< nm << endl;
cout <<" Alamat Anda\t\t :
"<< alm << endl;
cout <<" Tempat Lahir Anda\t :
"<< tmplhr << endl;
cout <<" Tanggal Lahir Anda\t :
"<< tgllhr << endl;
cout <<" NPM Anda\t\t :
"<< npm << endl;
cout <<" Jurusan\t\t :
"<< jrs << endl;
cout <<" Jenis Kelmin Anda\t :
"<< jk << endl;
cout <<"
By<Budiman_Blog>"<<endl;
}
getch();
}
Setelah
itu kita compile program tersebut jika sudah dicompile maka tinggal kita Run
programnya maka akan seperti ini :
Gambar
2. Hasil akhir pemrograman devC++
PENUTUP
4.1KESIMPULAN
Program hitung nilai akhir dan
database mahasiswa ini dibuat untuk memudahkan dalam pekerjaan dimana seorang
user dengan mudah dan cepat dalam menghitung nilai akhir dan menginputkan data
mahasiswa.Program ini dibuat dengan menggunakan bahasa pemrograman Pascal.
Diagram alur (flowchart) merupakan gambar atau bagan yang memperlihatkan urutan
dan hubungan antar proses beserta instruksinya. Koding program adalah perintah
program dengan struktur pemrograman bahasa Pascal dan Lay out program adalah
hasil akhir dari pemrograman yang akan diimplementasikan.
4.2SARAN
sesuai dengan pepatah “tiada
gading yang tak retak” dengan demikian kami kelompok 3 menyadari sepenuhnya
bahwa makalah ini masih sangat jauh dari kesempurnaan, hal ini dikarenakan
keterbatasan wawasan maupun sumber-sumber data yang dimiliki penulis, dengan
demikian kritik dan saran dari berbagai pihak sangat dinanti guna penyempurnaan
malah ini.
DAFTAR PUSTAKA
Bryon Goffried,
1986. Programming with PASCAL, Schaum Series, New York.
http://www.wikipedia.com
http://www.nusinau.com
Langganan:
Postingan (Atom)
