Merhaba,
ses kontrollü araç yapmaya çalışıyoruz, devreleri bağladık kodları hazırladık. Arduino kablo ile bilgisayara bağlı olduğunda sesle gönderdiğimiz komutlar çalışıyor fakat kabloyu çıkardığımızda herhangi bir komut gönderemiyoruz.
Problemin nerede olduğunu anlayamıyorum, yardımcı olursanız sevinirim
Kodlar:
#include <SoftwareSerial.h>
SoftwareSerial BT(0, 1); //bt giriş
const int in1 = 11;
const int in2 = 10;
const int in3 = 9;
const int in4 = 8;
int speed = 255;
char junk;
String voice = "";
void setup()
{
BT.begin(9600);
Serial.begin(9600);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
}
void turnLeft(int speed1, int speed2){
digitalWrite(in1, speed1);
digitalWrite(in2, speed1);
digitalWrite(in3, speed2);
digitalWrite(in4, speed1);
}
void turnRight(){}
void mStop()
{
digitalWrite(in1, HIGH);
digitalWrite(in2, HIGH);
digitalWrite(in3, HIGH);
digitalWrite(in4, HIGH);
}
void loop()
{
voice = "";
/*
if(Serial.available()){
while(Serial.available())
{
voice = Serial.readString();
}
}
*/
while (BT.available()){
Serial.println("girdi1");
delay(1);
char c = BT.read();
if (c == '#') {break;}
voice += c;
}
if (voice.length() > 0) {
//voice.toLowerCase();
Serial.println("girdi3");
Serial.println(voice);
delay(1);
//----------------- İLERLE ----------------------------//
if(voice.indexOf("İleri") > 0 || voice.indexOf("ileri") > 0)
{
Serial.println("ileri gitti");
delay(1);
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
delay(1);
}
//----------------- GERİ ----------------------------//
if(voice.indexOf("Geri") > 0 || voice.indexOf("geri") > 0)
{
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
delay(1);
}
if(voice.indexOf("Sola dön") > 0 || voice.indexOf("sola dön") > 0)
{
Serial.println("sola döndü");
turnLeft(speed, 40);
delay(1000);
mStop();
delay(1);
Serial.println("sola bitti");
delay(1);
}
if(voice.indexOf("Dur") > 0 || voice.indexOf("dur") > 0)
{
Serial.println("durdu");
delay(1);
digitalWrite(in1, 0);
digitalWrite(in2, 0);
digitalWrite(in3, 0);
digitalWrite(in4, 0);
delay(1);
}
}
}