Arama butonu
Bu konudaki kullanıcılar: 1 misafir
3
Cevap
310
Tıklama
0
Öne Çıkarma
Bluetooth Kontrollü Araba Yapımı.
R
7 yıl
Er
Konu Sahibi

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.

Videoyu izlemek için tıklayınız
< Resime gitmek için tıklayın >
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;
}

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



G
7 yıl
Yarbay

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;
}
}



R
7 yıl
Er
Konu Sahibi

Sizin yazdığınız da atama benim yazdigimda karşılaştırma var fark budur.



< Bu ileti DH mobil uygulamasından atıldı >

R
7 yıl
Er
Konu Sahibi

Aslında sizin yaptığınız gibi de olabilir elbette. Denemek gerek.



< Bu ileti DH mobil uygulamasından atıldı >

DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.