Amacım, joystick ile DC motoru ileri ve ters yönde çalıştırıp, motora bağlı olan cismin yukarısında ve aşağısında bulunan sensörlere yaklaşınca motorun durmasıdır.
Joystick'i ileri ve ters yönde kontrol edebiliyorum ancak; joystick y ekseninde belirli bir açıyı geçince, joystick'i serbest bıraksam bile motor çalışıp cisim mesafe sensörüne yaklaşınca durması gerekiyor.
Yani belirli bir açıya kadar joystick'i elle basılı tutarak(manuel olarak), belirli bir açıyı geçip joystick'i bıraksam bile(otomatik olarak) motorun çalışıp cisim mesafe sensörüne yaklaşınca durmasını istiyorum, yardımcı olursanız sevinirim. Şu ana kadar bu kadar yapabildim:
Joystick'i ileri ve ters yönde kontrol edebiliyorum ancak; joystick y ekseninde belirli bir açıyı geçince, joystick'i serbest bıraksam bile motor çalışıp cisim mesafe sensörüne yaklaşınca durması gerekiyor.
Yani belirli bir açıya kadar joystick'i elle basılı tutarak(manuel olarak), belirli bir açıyı geçip joystick'i bıraksam bile(otomatik olarak) motorun çalışıp cisim mesafe sensörüne yaklaşınca durmasını istiyorum, yardımcı olursanız sevinirim. Şu ana kadar bu kadar yapabildim:
Kod:
int y_durum;
int ust_mesafe;
int alt_mesafe;
void setup()
{
Serial.begin(9600);
pinMode(A0,INPUT);
pinMode(A1,INPUT);
pinMode(A2,INPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
}
void loop()
{
y_durum = analogRead(A0);
ust_mesafe = analogRead(A1);
alt_mesafe = analogRead(A2);
if(y_durum<515 && 100<y_durum)
{
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
if(ust_mesafe<=300)
{
digitalWrite(7, LOW);
digitalWrite(8, LOW);
}
}
else if(y_durum>525 && 900>y_durum)
{
digitalWrite(7, HIGH);
digitalWrite(8, LOW);
if(alt_mesafe<=300)
{
digitalWrite(7, LOW);
digitalWrite(8, LOW);
}
}
else
{
digitalWrite(7, LOW);
digitalWrite(8, LOW);
}
}