List Program :
//Sertakan library Servo
#include <Servo.h>
Servo myservo1;
Servo myservo2;
//variabel untuk perhitungan sudut putar
int sudut1;
int sudut2;
int sudut;
const int trigPin = A0; // Trigger Pin of Ultrasonic Sensor
const int echoPin = A1; // Echo Pin of Ultrasonic Sensor
const int trigPin2 = A4; // Trigger Pin of Ultrasonic Sensor
const int echoPin2 = A5; // Echo Pin of Ultrasonic Sensor
long duration, distance, inches, cm;
long duration2, distance2, inches2, cm2;
void setup() {
Serial.begin(9600);
myservo1.attach(6); // servo terhubung pin 6
myservo2.attach(7);
pinMode(echoPin, INPUT);
pinMode(trigPin, OUTPUT);
pinMode(echoPin2, INPUT);
pinMode(trigPin2, OUTPUT);
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
digitalWrite(trigPin2, LOW);
delayMicroseconds(2);
digitalWrite(trigPin2, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin2, LOW);
duration = pulseIn(echoPin, HIGH);
inches = microsecondsToInches(duration);
cm = microsecondsToCentimeters(duration);
Serial.print(inches);
Serial.print("in, ");
Serial.print(cm);
Serial.print("cm");
Serial.println();
duration2 = pulseIn(echoPin2, HIGH);
inches2 = microsecondsToInches(duration2);
cm2 = microsecondsToCentimeters(duration2);
Serial.print(inches2);
Serial.print("in, ");
Serial.print(cm2);
Serial.print("cm");
Serial.println();
//konversi hasil analog (0-1023) menjadi hasil sudut (0-180)
sudut1 = map(cm, 0, 20, 90, 180);
sudut2 = map(cm2, 0, 20, 90, 180);
if ((cm <= 20) || (cm2 <= 20)) {
if (cm <= cm2) {
//set posisi sudut motor servo
sudut == sudut1;
myservo1.write(sudut);
myservo2.write(180 - sudut);
delay(15);
}
if (cm >= cm2) {
//set posisi sudut motor servo
sudut == sudut2;
myservo1.write(sudut);
myservo2.write(180 - sudut);
delay(15);
}
}
delay(100);
}
long microsecondsToInches(long microseconds)
{
return microseconds / 74 / 2;
}
long microsecondsToCentimeters(long microseconds)
{
return microseconds / 29 / 2;
}
Comments
Post a Comment