!!!Arduıno kod yardım

nasıl yani, hangi yöne gittiğine bakmadan ters yöne mi dönsün istiyorsun? Eğer öyleyse bir bayrakla motorun yönünü takip etmen gerek

C++:
#define R1PWM 5
#define L1PWM 6
#define R1EN 7
#define L1EN 8

#define R2PWM 9
#define L2PWM 10
#define R2EN 11
#define L2EN 12

#define ILERI 1
#define GERI 0

#define sensor 2
#define sensorarka 3
int pot1, hiz;
bool yon;

void setup() {
  Serial.begin(9600);
  pinMode(R1PWM, OUTPUT);
  pinMode(L1PWM, OUTPUT);
  pinMode(L1EN, OUTPUT);
  pinMode(R1EN, OUTPUT);
  digitalWrite(R1EN, HIGH);
  digitalWrite(L1EN, HIGH);
  Serial.begin(9600);
  pinMode(R2PWM, OUTPUT);
  pinMode(L2PWM, OUTPUT);
  pinMode(L2EN, OUTPUT);
  pinMode(R2EN, OUTPUT);
  digitalWrite(R2EN, HIGH);
  digitalWrite(L2EN, HIGH);
  pinMode(sensor, INPUT);
  pinMode(sensorarka, INPUT);
}

void loop() {
  pot1 = analogRead(A0);
  hiz = map(pot1, 0, 1023, 0, 255);
  if (digitalRead(sensor) && !digitalRead(sensorarka))
      yon = motor_sur(ILERI);

  if (!digitalRead(sensor) && digitalRead(sensorarka))
      yon = motor_sur(GERI);
 
  if (!digitalRead(sensor) && digitalRead(sensorarka))
      yon = motor_sur(yon);
}
bool motor_sur(bool myon){
    if(myon){
        analogWrite(R1PWM, hiz);
        digitalWrite(L1PWM, LOW);
        digitalWrite(R2PWM, LOW);
        analogWrite(L2PWM, hiz);
    }
    else{
        analogWrite(L1PWM, hiz);
        digitalWrite(R1PWM, LOW);
        analogWrite(R2PWM, hiz);
        digitalWrite(L2PWM, LOW);
    }
    return !myon;
}
şöyle ;
if ((digitalRead(sensor) == 1) && (digitalRead(sensorarka) == 0)) {

analogWrite(R1PWM, hiz);
digitalWrite(L1PWM, LOW);
digitalWrite(R2PWM, LOW);
analogWrite(L2PWM, hiz);
}
burda sensor 1 oldugunda R1PWM sinyal yolluyor çalışıyor ancak sensor==1 ve Sensorarka==1 oldugunda motor yön değiştiriyor. Senor==1 ve Sensorarka==1 oldugunda hangi yönde gidiyorsa devam etsin istiyorum bu mümkün mü yoksa bayraklar ile yeni bir kod mu yazmalıyım
 
Sen olayı hiç anlamıyon demekki.
C++:
if (!digitalRead(sensor) && digitalRead(sensorarka))
      yon = motor_sur(yon);

Burayı
C++:
if (digitalRead(sensor) && digitalRead(sensorarka))
      yon = motor_sur(!yon);

Olarak değiştir.
 

Forum istatistikleri

Konular
129,834
Mesajlar
930,598
Kullanıcılar
452,662
Son üye
Yılmaz Çetiner

Yeni konular

Geri
Üst