#include <ESP32Servo.h> /* Servo kutuphanesi projeye dahil edildi */
#include <ESP32Tone.h>
Servo servoNesnesi;
#define buton1 33 /* Birinci butonun bağlı olduğu pin */
#define buton2 25 /* İkinci butonun bağlı olduğu pin */
#define buton3 2 /* Üçüncü butonun bağlı olduğu pin */
#define buton4 15 /* Dördüncü butonun bağlı olduğu pin */
#define buzzerPin 4
#define STEPS 100 /* Motorun adım sayısı */
#define DIR 12 /* Motor yön kontrol pini */
#define STEP 14 /* Motor adım kontrol pini */
int butonDurumu1 = 0; /* Birinci butonun durumu */
int butonDurumu2 = 0; /* İkinci butonun durumu */
int butonDurumu3 = 0; /* Üçüncü butonun durumu */
int butonDurumu4 = 0; /* Dördüncü butonun durumu */
int pozisyon = 10; /* Motorun başlangıç pozisyonu */
// A4988 motor sürücü kartı için Arduino kütüphanesi
#include <AccelStepper.h>
// AccelStepper nesnesi oluşturma
AccelStepper stepper(AccelStepper::DRIVER, STEP, DIR);
void setup() {
pinMode(buton1, INPUT);
pinMode(buton2, INPUT);
pinMode(buton3, INPUT);
pinMode(buton4, INPUT);
pinMode(buzzerPin, OUTPUT);
Serial.begin(9600);
servoNesnesi.attach(13);
servoNesnesi.write(0);
stepper.setMaxSpeed(1000);
stepper.setAcceleration(500);
stepper.setCurrentPosition(pozisyon * STEPS);
}
void loop() {
// Birinci buton kontrolü
if (digitalRead(buton1) == HIGH && butonDurumu1 == 0) {
butonDurumu1 = 1;
Serial.println("Butona 1 basildi!");
servoNesnesi.write(90);
// Motoru 1 tur döndürme
stepper.move(STEPS);
stepper.runToPosition();
// Servo açısı değiştirme
delay(1000);
servoNesnesi.write(0);
}
// İkinci buton kontrolü
if (digitalRead(buton2) == HIGH && butonDurumu2 == 0) {
butonDurumu2 = 1;
Serial.println("Butona 2 basildi!");
// Motoru başlangıç pozisyonuna döndürme
stepper.moveTo(pozisyon * STEPS);
stepper.runToPosition();
// Servo açısı değiştirme
servoNesnesi.write(0);
}
// Üçüncü buton kontrolü
if (digitalRead(buton3) == HIGH && butonDurumu3 == 0) {
////////////////////////////////////////
// Butona 3 basıldığında
butonDurumu3 = 1;
Serial.println("Butona 3 basildi!");
// Motoru artı yönde hareket ettir
stepper.move(STEPS);
stepper.runToPosition();
stepper.stop();
servoNesnesi.write(0);
// Buton durumu değişkenini sıfırla
butonDurumu3 = 0;
}
if (digitalRead(buton4) == HIGH && butonDurumu4 == 0) {
////////////////////////////////////////
// Butona 3 basıldığında
butonDurumu4 = 1;
Serial.println("Butona 4 basildi!");
// Motoru artı yönde hareket ettir
stepper.move(-STEPS);
stepper.runToPosition();
stepper.stop();
butonDurumu4 = 0;
}
}