30 Aralık 2017 Cumartesi

4WD ROBOT ARAÇ KODLARI - ARALIK 2017

/* 
 *  Tarih: 30.12.2017
 *  Yazan: Abidin CAN
 *  L298P Motor Sürücü Kartı ile Bluetooth Araç Kontrolü 
 *  Bluetooth üzerinden robot kontrol edilebilir
 *  Kodları yükleme aşamasında bluetooth bağlantısını kesiniz.
 *  Bluetooth beslemesi için +5V pinini jumper ile sağlayınız.
 *  -------------------------------------------------
 *  Dahili Bağlantılar:
 *  L298P motor sürücü kartı bağlantıları:
 *  Buzzer                       4. pine bağlanmıştır
 *  ENA (Sağ motor PWM pini)    10. pine bağlanmıştır
 *  ENB (Sol motor PWM pini)    11. pine bağlanmıştır
 *  INA (Sağ motor yön pini)    12. pine bağlanmıştır
 *  INB (Sol motor yön pini)    13. pine bağlanmıştır
 *  -------------------------------------------------
 *  Harici bağlantılar: 
 *  Ön Lamba                     5. pine bağlanmıştır
 *  Arka Lamba                   6. pine bağlanmıştır
 *  Park Lamba                   7. pine bağlanmıştır
 *  -------------------------------------------------
 */

int ENA = 10;  // MotorA çıkışı için pwm kontrol pini -  sağ motor hız
int ENB = 11;  // MotorB çıkışı için pwm kontrol pini -  sol motor yön
int INA = 12;  // MotorA çıkışı için yön kontrol pini -  sağ motor yön
int INB = 13;  // MotorB çıkışı için yön kontrol pini -  sol motor yön

int buzzerPin=4;  // buzzer 4. pine bağlandı
int onlamba = 5;  // onlamba 5. pine bağlandı
int arkalamba =6; // arkalamba 6. pine bağlandı
int parklamba=7;  // parklamba 7. pine bağlandı
int hiz = 150;    // başlangıç hız değeri 150 olarak belirlendi

void setup()
{
  Serial.begin(9600);
  pinMode(ENA, OUTPUT);  
  pinMode(ENB, OUTPUT);
  pinMode(INA, OUTPUT);
  pinMode(INB, OUTPUT);
  pinMode(buzzerPin, OUTPUT);
  pinMode(onlamba, OUTPUT);
  pinMode(arkalamba, OUTPUT);
  pinMode(parklamba, OUTPUT);
  analogWrite(ENA, 0); 
  analogWrite(ENB, 0);
}

void loop()

  if (Serial.available() > 0) {   // Bluetooth’tan veri geldi mi?
    char tus = (char)Serial.read(); // Seri porttan gelen tus verisini oku
    Serial.println(tus);    // tus verisini seri port ekranında göster
    if( tus == 'F' )  ileri();
    if( tus == 'B' )  geri();
    if( tus == 'S' )  dur();
    if( tus == 'L' )  SolaDon();
    if( tus == 'R' )  SagaDon();
    if( tus == 'G' )  ileriSolaDon();
    if( tus == 'I' )  ileriSagaDon();
    if( tus == 'H' )  geriSolaDon();
    if( tus == 'J' )  geriSagaDon();
    if( tus == 'V' )  buzzerCalistir();
    if( tus == 'v' )  buzzerDur();
    if( tus == 'W' )  digitalWrite(onlamba,HIGH);
    if( tus == 'w' )  digitalWrite(onlamba,LOW);
    if( tus == 'U' )  digitalWrite(arkalamba,HIGH);
    if( tus == 'u' )  digitalWrite(arkalamba,LOW);
    if( tus == 'X' )  digitalWrite(parklamba,HIGH);
    if( tus == 'x' )  digitalWrite(parklamba,LOW);

    if( tus == '0' )  hiz=0;
    if( tus == '1' )  hiz=40;
    if( tus == '2' )  hiz=60;
    if( tus == '3' )  hiz=75;
    if( tus == '4' )  hiz=100;
    if( tus == '5' )  hiz=125;
    if( tus == '6' )  hiz=150;
    if( tus == '7' )  hiz=175;
    if( tus == '8' )  hiz=200;
    if( tus == '9' )  hiz=225;
    if( tus == 'q' )  hiz=255;
  }
}

// --------------Fonksiyonlar-----------------
void ileri() 

  digitalWrite(INA, HIGH);  
  digitalWrite(INB, HIGH); 
  analogWrite(ENA, hiz);    
  analogWrite(ENB, hiz);
}

void geri()
{
  digitalWrite(INA, LOW);   
  digitalWrite(INB, LOW);
  analogWrite(ENA, hiz);    
  analogWrite(ENB, hiz); 
}

void SagaDon() 

  digitalWrite(INA, HIGH);  
  digitalWrite(INB, HIGH);    
  analogWrite(ENA, hiz);    
  analogWrite(ENB, 0);
}

void SolaDon() 

  digitalWrite(INA, HIGH);  
  digitalWrite(INB, HIGH);  
  analogWrite(ENA, 0);    
  analogWrite(ENB, hiz);
}
void ileriSagaDon() 

  digitalWrite(INA, HIGH);  
  digitalWrite(INB, HIGH);  
  analogWrite(ENA, hiz);    
  analogWrite(ENB, 40);
}

void ileriSolaDon() 

  digitalWrite(INA, HIGH);  
  digitalWrite(INB, HIGH);  
  analogWrite(ENA, 40);    
  analogWrite(ENB, hiz);
}

void geriSagaDon() 

  digitalWrite(INA, LOW);  
  digitalWrite(INB, LOW);  
  analogWrite(ENA, hiz);    
  analogWrite(ENB, 40);
}

void geriSolaDon() 

  digitalWrite(INA, LOW);  
  digitalWrite(INB, LOW);  
  analogWrite(ENA, 40);    
  analogWrite(ENB, hiz);
}

void dur() 

  digitalWrite(INA, LOW);   
  digitalWrite(INB, LOW); 
  analogWrite(ENA, 0);    
  analogWrite(ENB, 0); 
}

void buzzerCalistir() 

  for(int i=0;i<5;i++)
  {
    melodi(200);
  }
}

void buzzerDur() 

  digitalWrite(4, LOW); 
}

int melodi(int dly)
{
  tone(buzzerPin, 440);
  delay(dly);
  noTone(buzzerPin);
  delay(dly);
}

Hiç yorum yok:

Yorum Gönder