#define buton A1 // bir pin 5 buton
#define potans A0 //10k potansiyometre
#define M1_Ena 11 // Enable1 L298 for PWM bu onemli hızı ayarlatan pin
#define M1_in1 10 // In1 L298
#define M1_in2 9 // In2 L298
int potans_oku =0;
int potans_dongu;
int set = 0;
byte buton_bul(int x)
{
int buton_numarasi = 0;
if (x > 950)
buton_numarasi = 1;
else if (x > 880 && x < 980)
buton_numarasi = 2;
else if (x > 800 && x < 900)
buton_numarasi = 3;
else if (x > 750 && x < 820)
buton_numarasi = 4;
else if (x > 700 && x < 800)
buton_numarasi = 5;
else
buton_numarasi = 0;
return buton_numarasi;
}
void dur()
{
digitalWrite(M1_in1, LOW); // Motoru durdur
digitalWrite(M1_in2, LOW);
}
void buton2(int hiz)
{
analogWrite(M1_Ena, potans_dongu); // Motor hızını potans ile ayarla
digitalWrite(M1_in1, HIGH); // Motoru sürekli döndür
digitalWrite(M1_in2, LOW);
}
void buton3(int hiz)
{
analogWrite(M1_Ena, potans_dongu); // Motor hızını potans ile ayarla
digitalWrite(M1_in1, HIGH); // Motoru sürekli döndür
digitalWrite(M1_in2, LOW);
}
void buton4(int hiz)
{
analogWrite(M1_Ena, potans_dongu); // Motor hızını potans ile ayarla
digitalWrite(M1_in1, HIGH); // Motoru sürekli döndür
digitalWrite(M1_in2, LOW);
}
void buton5(int hiz)
{
for (int i = 0; i < 20 /*soldaki süre dongü süresi bu süre boyunca stop çalışmıyor.*/; i++)
{
analogWrite(M1_Ena, potans_dongu);
digitalWrite(M1_in1, potans_dongu); // Motoru sürekli döndür
digitalWrite(M1_in2, LOW);
delay(1500);
digitalWrite(M1_in1, LOW); // Motoru sürekli döndür
digitalWrite(M1_in2, LOW);
delay(1000);
}
}
void setup()
{
Serial.begin(9600);
pinMode(buton, INPUT);
pinMode(M1_Ena, OUTPUT);
pinMode(M1_in1, OUTPUT);
pinMode(M1_in2, OUTPUT);
pinMode(potans, INPUT);
}
void loop()
{
int buton_deger = analogRead(buton);
Serial.print("okunan_deger = ");
Serial.println(buton_deger);
Serial.print("basilan buton = ");
byte basilan_buton = buton_bul(buton_deger);
Serial.println(basilan_buton);
Serial.println("-------------------------");
potans_oku = analogRead(potans);
potans_dongu = map(potans_oku, 0, 1023, 0, 200); // 200 degeri 255 idi. verilen voltaj maksimum idi ben kendime gore 1200 ile gırdım.maksimum voltajı dusurdum.
analogWrite(M1_Ena, potans_dongu);
switch (basilan_buton)
{
case 1:
// İlk butona basıldığında motoru durdur
dur();
break;
case 2:
// İkinci butona basıldığında motoru potans ile bir hızda döndür
buton2(255);
break;
case 3:
// Üçüncü butona basıldığında motoru potans ile bir hızda döndür
buton3(255);
break;
case 4:
// Dördüncü butona basıldığında motoru potans ile bir hızda döndür
buton4(255);
break;
case 5:
// Beşinci butona basıldığında motoru potans ile bir hızda döndür
buton5(255);
break;
default:
break;
}
delay(50);//süre kısayken misal 50 daha iyi butonlar tepki veriyor.Artırmak iyi değil gibi
}