#include <NewPing.h>
// Inisialisasi pin untuk sensor ultrasonik
const int trigPin = 9;
const int echoPin = 10;
// Inisialisasi pin untuk motor stepper
const int stepPin = 2;
const int dirPin = 3;
// Inisialisasi objek sensor ultrasonik
NewPing sonar(trigPin, echoPin);
// Inisialisasi variabel untuk motor stepper
int stepsPerRevolution = 200;
int stepNumber = 0;
void setup() {
// Inisialisasi Serial Monitor
Serial.begin(9600);
// Set pin mode untuk sensor ultrasonik
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
// Set pin mode untuk motor stepper
pinMode(stepPin, OUTPUT);
pinMode(dirPin, OUTPUT);
}
void moveStepper(int steps, int direction) {
digitalWrite(dirPin, direction); // 1 untuk searah jarum jam, 0 untuk berlawanan arah jarum jam
for (int i = 0; i < steps; i++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(500); // Sesuaikan dengan kecepatan motor
digitalWrite(stepPin, LOW);
delayMicroseconds(500); // Sesuaikan dengan kecepatan motor
}
}
void loop() {
// Mengukur jarak dengan sensor ultrasonik
int distance = sonar.ping_cm();
// Menampilkan jarak pada Serial Monitor
Serial.print("Distance: ");
Serial.println(distance);
// Menggerakkan motor stepper berdasarkan jarak
if (distance < 10) {
// Jika jarak kurang dari 10cm, motor bergerak lawan arah jarum jam 90 derajat
moveStepper(stepsPerRevolution / 4, 0); // 0 untuk berlawanan arah jarum jam
} else {
// Jika jarak di atas 10cm, motor bergerak 180 derajat searah jarum jam
moveStepper(stepsPerRevolution / 2, 1); // 1 untuk searah jarum jam
}
// Delay untuk stabilitas dan menyesuaikan kecepatan
delay(1000);
}
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
ultrasonic1:VCC
ultrasonic1:TRIG
ultrasonic1:ECHO
ultrasonic1:GND
drv1:ENABLE
drv1:MS1
drv1:MS2
drv1:MS3
drv1:RESET
drv1:SLEEP
drv1:STEP
drv1:DIR
drv1:GND.1
drv1:VDD
drv1:1B
drv1:1A
drv1:2A
drv1:2B
drv1:GND.2
drv1:VMOT
vcc1:VCC
gnd1:GND
stepper1:A-
stepper1:A+
stepper1:B+
stepper1:B-