Arduino ile bilgisi olanlar yardımcı olabilir mi?
Biz şimdi aşağıdaki linklerde olan kodları birleştirmeyi başardık fakat amacımız bluetooth kontrollü aracı hcsr-04 yardımı ile engellerden kaçması. Kodları birleştirdik ancak biz bluetootha bağlanana kadar motorlar boşta dönüyor.. Biz bluetootha bağlanana kadar motorların dönmemesini nasıl sağlarız bir türlü çözemedim.
kullandığımı kodlar:
bluetooth kontrol kodu;
http://lezzetlirobottarifleri.com/video/cep-telefonu-kontrollu-arac
hcsr-04;
http://lezzetlirobottarifleri.com/video/arduino-ile-engelden-kacan-robot-v1-00
bizim yazdığımız kod ise burada;
#include
SoftwareSerial bt_iletisim(6, 7);
#define echoPin 2 //Ultrasonik sensörün echo pini Arduino'nun 12.pinine
#define trigPin 3 //Ultrasonik sensörün trig pini Arduino'nun 13.pinine tanımlandı.
#define sol_ileri 8
#define sol_geri 9
#define sol_hiz 10
#define sag_ileri 13
#define sag_geri 12
#define sag_hiz 11
long sure, uzaklik; //süre ve uzaklık diye iki değişken tanımlıyoruz.
int motorlar_hiz = 255;
byte son_islem;
void setup()
{
// ultrasonik sensör Trig pininden ses dalgaları gönderdiği için OUTPUT (Çıkış),
// bu dalgaları Echo pini ile geri aldığı için INPUT (Giriş) olarak tanımlanır.
pinMode(echoPin, INPUT);
pinMode(trigPin, OUTPUT);
pinMode(sol_ileri, OUTPUT);
pinMode(sag_ileri, OUTPUT);
pinMode(sol_geri, OUTPUT);
pinMode(sag_geri, OUTPUT);
pinMode(sol_hiz, OUTPUT);
pinMode(sag_hiz, OUTPUT);
Serial.begin(9600);
bt_iletisim.begin(9600);
}
void loop(){
{
if (bt_iletisim.available())
{
char data = bt_iletisim.read();
Serial.println(data);
if (data == '1')
{
dur();
delay(10);
ileri();
son_islem = 1;
}
else if (data == '2')
{
dur();
delay(10);
geri();
son_islem = 2;
}
else if (data == '3')
{
dur();
delay(10);
sol();
son_islem = 3;
}
else if (data == '4')
{
dur();
delay(10);
sag();
son_islem = 4;
}
else if (data == '6')
{
dur();
}
else if (data == '0')
{
motorlar_hiz = motorlar_hiz + 25;
if (motorlar_hiz > 255)
{
motorlar_hiz = 255;
}
Serial.print("motorlar hiz= ");
Serial.println(motorlar_hiz);
son_isleme_devam_et();
}
else if (data == '5')
{
motorlar_hiz = motorlar_hiz - 25;
if (motorlar_hiz < 0)
{
motorlar_hiz = 0;
}
Serial.print("motorlar hiz= ");
Serial.println(motorlar_hiz);
son_isleme_devam_et();
}
}
}
digitalWrite(trigPin, LOW); //sensör pasif hale getirildi
delayMicroseconds(5);
digitalWrite(trigPin, HIGH); //Sensore ses dalgasının üretmesi için emir verildi
delayMicroseconds(10);
digitalWrite(trigPin, LOW); //Yeni dalgaların üretilmemesi için trig pini LOW konumuna getirildi
sure = pulseIn(echoPin, HIGH); //ses dalgasının geri dönmesi için geçen sure ölçülüyor
uzaklik = sure / 29.1 / 2; //ölçülen süre uzaklığa çevriliyor
Serial.println(uzaklik);
if (uzaklik < 15) // Uzaklık 15'den küçük ise,
{
geri(); // 150 ms geri git
delay(150);
sag(); // 250 ms sağa dön
delay(250);
}
}
void ileri()
{
digitalWrite(sol_ileri, 1);
digitalWrite(sag_ileri, 1);
digitalWrite(sol_geri, 0);
digitalWrite(sag_geri, 0);
analogWrite(sol_hiz, motorlar_hiz);
analogWrite(sag_hiz, motorlar_hiz);
}
void geri()
{
digitalWrite(sol_ileri, 0);
digitalWrite(sag_ileri, 0);
digitalWrite(sol_geri, 1);
digitalWrite(sag_geri, 1);
analogWrite(sol_hiz, motorlar_hiz);
analogWrite(sag_hiz, motorlar_hiz);
}
void sol()
{
digitalWrite(sol_ileri, 1);
digitalWrite(sag_ileri, 0);
digitalWrite(sol_geri, 0);
digitalWrite(sag_geri, 1);
analogWrite(sol_hiz, motorlar_hiz);
analogWrite(sag_hiz, motorlar_hiz);
}
void sag()
{
digitalWrite(sol_ileri, 0);
digitalWrite(sag_ileri, 1);
digitalWrite(sol_geri, 1);
digitalWrite(sag_geri, 0);
analogWrite(sol_hiz, motorlar_hiz);
analogWrite(sag_hiz, motorlar_hiz);
}
void dur()
{
digitalWrite(sol_ileri, 0);
digitalWrite(sag_ileri, 0);
digitalWrite(sol_geri, 0);
digitalWrite(sag_geri, 0);
analogWrite(sol_hiz, 0);
analogWrite(sag_hiz, 0);
}
void son_isleme_devam_et()
{
if (son_islem == 1)
{
ileri();
}
else if (son_islem == 2)
{
geri();
}
else if (son_islem == 3)
{
sol();
}
else if (son_islem == 4)
{
sag();
}
}
#akış #TeknoYardım
while içinde bişiler dönmesi gerekiyor gibi
Harici adaptör bağladım sorun kalmadı, sanırım usb'den aldığı güç yetersiz geldi. Teşekkür ederim yine de.
vay bee zamanında bende çok uğraştım bu arduino ile falan. güzel günlerdi dolar 3tl idi her şeyi alabiliyorduk 😀 😀
bu video da benden olsun 🙂
https://youtu.be/yc9TTLf24w0