Şimdi Ara

Bluetooth Kontrollü Araba Yapımı.

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
5
Cevap
0
Favori
234
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Arkadaşlar yapmış olduğum projelerimi ara ara burada paylaşacağım. Sizin istediğiniz bir proje olursa elimden geldiği kadar bilgiyi burada paylaşarak bir şeyler yapmaya çalışacağım.
    Şimdiki projem ise yaygın olarak kullanılan bluetooth kontrollü arabadır. Bu arabamda arduino ile telefonumuzu haberleştirerek arabamızı kontrol edeceğiz. Videoda ayrıntılı anlatım yaptım . Devre şeması ve kodları buradan paylaşıyorum.Uygulamayı platStoreden indirebilirsiniz.


    Bluetooth Kontrollü Araba Yapımı.
    char dataIn = 'S'; // Durma fonksiyonu için karakter
    int SolMotorileri = 9; //**
    int SolMotorgeri = 10; //**
    int SagMotorileri = 12; //**ARACIN İLERİ ,GERİ, SAĞ ,SOL KOMUT ÇIKIŞ PİNLERİ**
    int SagMotorgeri = 13; //**


    int mavi_bir = 4;
    int mavi_iki = 3;
    int korna = 6;
    int onfar = 7;
    int arkafar = 2;

    int bluetooth_vcc = 8;
    int motor_vcc = 11; //**


    char determinant; //Program dongüsü için karakter
    char det; //Program dongüsü için karakter

    void setup()
    {
    Serial.begin(9600); //HC-07 bluetooth modülü için btu 9600
    pinMode(SolMotorileri, OUTPUT);
    pinMode(SolMotorgeri, OUTPUT);
    pinMode(SagMotorileri, OUTPUT);
    pinMode(SagMotorgeri, OUTPUT);

    pinMode(mavi_bir, OUTPUT);
    pinMode(mavi_iki, OUTPUT);
    pinMode(onfar, OUTPUT);
    pinMode(arkafar, OUTPUT);
    pinMode(korna, OUTPUT);


    pinMode(bluetooth_vcc, OUTPUT);
    pinMode(motor_vcc, OUTPUT);
    digitalWrite(motor_vcc, HIGH);
    digitalWrite(bluetooth_vcc, HIGH);
    }

    void loop()
    {
    det = check();

    Serial.print ("det = "); Serial.println (det);
    while (det == 'F') //İLERİ
    {
    digitalWrite(SolMotorileri, HIGH);
    digitalWrite(SolMotorgeri, LOW);
    digitalWrite(SagMotorileri, LOW);
    digitalWrite(SagMotorgeri, LOW);

    digitalWrite(korna, LOW);
    det = check();
    }
    while (det == 'B') //GERİ

    { digitalWrite(SolMotorileri, LOW);
    digitalWrite(SolMotorgeri, HIGH);
    digitalWrite(SagMotorileri, LOW);
    digitalWrite(SagMotorgeri, LOW);


    det = check();
    }

    while (det == 'L') //SOL
    {

    digitalWrite(SolMotorileri, LOW);
    digitalWrite(SolMotorgeri, LOW);
    digitalWrite(SagMotorileri, HIGH);
    digitalWrite(SagMotorgeri, LOW);
    det = check();
    }
    while (det == 'R') //SAĞ
    {
    digitalWrite(SolMotorileri, LOW);
    digitalWrite(SolMotorgeri, LOW);
    digitalWrite(SagMotorileri, LOW);
    digitalWrite(SagMotorgeri, HIGH);
    det = check();
    }
    while (det == 'G') //İLERİ SOL

    {

    digitalWrite(SolMotorileri, HIGH);
    digitalWrite(SolMotorgeri, LOW);
    digitalWrite(SagMotorileri, HIGH);
    digitalWrite(SagMotorgeri, LOW);
    det = check();
    }
    while (det == 'I') //İLERİ SAĞ
    { digitalWrite(SolMotorileri, HIGH);
    digitalWrite(SolMotorgeri, LOW);
    digitalWrite(SagMotorileri, LOW);
    digitalWrite(SagMotorgeri, HIGH);
    det = check();
    }
    while (det == 'H') //GERİ SOL
    { digitalWrite(SolMotorileri, LOW);
    digitalWrite(SolMotorgeri, HIGH);
    digitalWrite(SagMotorileri, HIGH);
    digitalWrite(SagMotorgeri, LOW);
    det = check();
    }
    while (det == 'J') //GERİ SAĞ
    { digitalWrite(SolMotorileri, LOW);
    digitalWrite(SolMotorgeri, HIGH);
    digitalWrite(SagMotorileri, LOW);
    digitalWrite(SagMotorgeri, HIGH);
    det = check();
    }
    if (det == 'W') // oN LAMBA YAKMA
    { digitalWrite(onfar, HIGH);
    det = check();
    }
    if (det == 'w') // oN LAMBA SoNDÜRME
    { digitalWrite(onfar, LOW);
    det = check();
    }
    if (det == 'U') //ARKA IŞIK YAKMA
    { digitalWrite(arkafar, HIGH);
    det = check();
    }
    if (det == 'u') //ARKA LAMBA SoNDÜRME
    { digitalWrite(arkafar, LOW);
    det = check();
    }
    if (det == 'V')// KORNA ÇALMA
    {
    digitalWrite(korna, HIGH);
    det = check();
    }
    if (det == 'v')//KORNA SUSTURMA
    {
    digitalWrite(korna, LOW);
    det = check();
    }
    if (det == 'X')// DoRTLÜ YAKMA
    {
    digitalWrite(onfar, LOW);
    digitalWrite(arkafar, LOW);
    for (int a = 0; a < 10; a++)
    {
    digitalWrite(mavi_bir, HIGH);
    delay(100);
    digitalWrite(mavi_bir, LOW);
    delay(100);
    digitalWrite(mavi_bir, HIGH);
    delay(100);
    digitalWrite(mavi_bir, LOW);
    delay(100);

    digitalWrite(mavi_iki, HIGH);
    delay(100);
    digitalWrite(mavi_iki, LOW);
    delay(100);
    digitalWrite(mavi_iki, HIGH);
    delay(100);
    digitalWrite(mavi_iki, LOW);
    delay(100);
    }
    det = check();
    }
    if (det == 'x')//DoRTLÜ SoNDÜRME
    {
    digitalWrite(onfar, LOW);
    digitalWrite(arkafar, LOW);
    det = check();
    }
    while (det == 'S') //Telefondaki programda atanmış olan durma fonksiyonun harf eşdeğeri
    {
    digitalWrite(SolMotorileri, LOW);
    digitalWrite(SolMotorgeri, LOW);
    digitalWrite(SagMotorileri, LOW);
    digitalWrite(SagMotorgeri, LOW);

    det = check();
    }

    }

    int check()
    {
    if (Serial.available() > 0) //Serial portun kontrollü
    {
    dataIn = Serial.read(); //Telefondan gelen verilerin kontrollü
    if (dataIn == 'F')
    {
    determinant = 'F';
    }
    else if (dataIn == 'B')
    {
    determinant = 'B';
    }
    else if (dataIn == 'L')
    {
    determinant = 'L';
    }
    else if (dataIn == 'R')
    {
    determinant = 'R';
    }
    else if (dataIn == 'G')
    {
    determinant = 'G';
    }
    else if (dataIn == 'I')
    {
    determinant = 'I';
    }
    else if (dataIn == 'H')
    {
    determinant = 'H';
    }
    else if (dataIn == 'J')
    {
    determinant = 'J';
    }
    else if (dataIn == 'W')
    {
    determinant = 'W';
    }
    else if (dataIn == 'w')
    {
    determinant = 'w';
    }
    else if (dataIn == 'U')
    {
    determinant = 'U';
    }
    else if (dataIn == 'u')
    {
    determinant = 'u';
    }
    else if (dataIn == 'V')
    {
    determinant = 'V';
    }
    else if (dataIn == 'v')
    {
    determinant = 'v';
    }
    else if (dataIn == 'X')
    {
    determinant = 'X';
    }
    else if (dataIn == 'x')
    {
    determinant = 'x';
    }
    else if (dataIn == 'S')
    {
    determinant = 'S';
    }

    }
    return determinant;
    }







  • En sondaki "int check()" fonksiyonunu niçin şu şekilde yazmadığını merak ettim.


    int check()
    {
    if (Serial.available() > 0) //Serial portun kontrollü
    {
    determinant = dataIn = Serial.read(); //Telefondan gelen verilerin kontrollü
    return determinant;
    }
    }
  • Sizin yazdığınız da atama benim yazdigimda karşılaştırma var fark budur.

    < Bu ileti DH mobil uygulamasından atıldı >
  • Aslında sizin yaptığınız gibi de olabilir elbette. Denemek gerek.

    < Bu ileti DH mobil uygulamasından atıldı >
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.