ACİL YARDIM LÜTFEN (ARDUİNO TÜBİTAK PROJESİ)

yagiz.baba.dw

80+ Bronze
Katılım
30 Nisan 2021
Mesajlar
528
Reaksiyon skoru
203
arkadaşlar ilk öncelikle selamlar. bir projem var ve 1 aydan kısa sürem var projemin ismi oto fan kısaca size şöyle anlatayım:

"bi robot var robotun üstündede ısı sensörü ortam sıcaklığı belirli bi dereceyi aştığında robot harekete geçecek ve üstündeki hava üfleyen fan ile etrafı soğutacak"
proje kısaca böyle malzeme olarak şunları kullanıyorum

LM35 Sıcaklık sensörü
HC-SR04 mesafe sensörü (mesafe sensörünü robotun bi yerlere çarpmaması için ekledim)
L293B Motor sürücü
2 tane hobi tahrik motoru (büyük sarı bi motor)
1 tane sarhoş teker
1 tane robot ünitesi


malzemeler böyle allaha şükür malzeme problemim yok ama kodlarda büyük bi sıkıntım var. şimdi mantığını şöyle yaptım : engelden kaçan robot ısı sensörü ve bi tane rüzgar üfleyen fanı birleştirdim ve hareket eden vantilatör ortaya çıkardım ama kodlarda ısı belirli bi sıcaklığı aştığında hareket etmesi olayını yapamıyorum, teknik olarak elektriği verdiğim anda ve kodu yüklediğim anda normal bir engelden kaçan robot gibi hareket edecektir ama ben dediğim gibi ısı belirli sıcaklığı aştığında hareket etmesini istiyorum ve bunun mantığını bi türlü kavrayamadım "else-if" komutlarını falan kullanmak gerekiyor böyle şeylerde biliyorum ama kodları yazıyorum hata buluyor hatayı çözemiyorum

Kodlar şimdilik böyle:

const int trig = 10; //sensör pinleri tanımlandı
const int echo = 8;

const int sol_i = 2; // motor sürücü pinleri tanımlandı
const int sol_g = 3;
const int sag_i = 4;
const int sag_g = 5;

int sure = 0; // mesafe hesabından kullanılacak olan değişkenler tanımladı
int mesafe = 0;


void setup()
{

pinMode(trig , OUTPUT); // sensörün trigger pini çıkış olarak ayarlandı
pinMode(echo , INPUT ); // sensörün echo pini giriş olarak ayarlandı

pinMode(sol_i, OUTPUT); // motor sürücü pinleri çıkış olarak ayarlandı
pinMode(sol_g, OUTPUT);
pinMode(sag_i, OUTPUT);
pinMode(sag_g, OUTPUT);

Serial.begin(9600);
}

void loop()
{

digitalWrite(trig , HIGH); // hc-sr04 kullanılarak mesafe hesaplandı
delayMicroseconds(1000); // mesafe hesabının ayrıntıları için videoya bakınız
digitalWrite(trig , LOW); // http://lezzetlirobottarifleri.com/video/hc-sr04-mesafe-sensoru-ve-29-1-degeri

sure = pulseIn(echo , HIGH);
mesafe = (sure / 2) / 28.5;

int oku = analogRead(A0);

if (mesafe < 30 ) // mesafe 30cm den küçük ise robotu geri al ve döndür
{
digitalWrite(sol_i , LOW);
digitalWrite(sol_g , HIGH);
digitalWrite(sag_i , LOW);
digitalWrite(sag_g , HIGH);
delay(150);

digitalWrite(sol_i , LOW);
digitalWrite(sol_g , HIGH);
digitalWrite(sag_i , HIGH);
digitalWrite(sag_g , LOW);
delay(250);
}
else // mesafe 30cm den büyük ise düz git
{
digitalWrite(sol_i , HIGH);
digitalWrite(sol_g , LOW);
digitalWrite(sag_i , HIGH);
digitalWrite(sag_g , LOW);
}
}


float gerilim = oku * 5.0;
gerilim /= 1024.0;

Serial.print(gerilim); Serial.println(" volt");

//Santigrat çevirme işlemi yapıyoruz
float c = (gerilim - 0.5) * 100 ;
Serial.print(c); Serial.println(" Derece C ");


delay(1000);
}


ARDUİNO BİLEN ARKADAŞLAR LÜTFEN ACİL YARDIM!
Mesajlar otomatik olarak birleştirildi:

lezzetli robot tarifleri adlı kanaldan aldığım için kodu link falan paylaşmış kodun içerisinde bi sıkıntı çıkarıyorsa böyle şeyler forumda özür dilerim
Mesajlar otomatik olarak birleştirildi:

lezzetli robot tarifleri adlı kanaldan aldığım için kodu link falan paylaşmış kodun içerisinde bi sıkıntı çıkarıyorsa böyle şeyler forumda özür dilerim
 

Ekler

  • Glorious Gaaris.png
    Glorious Gaaris.png
    161 KB · Hit: 78
Başarılar dilerim. Önce hata aldığın veya işlemeyen bölümü tesbit etmelisin. Sonra o bölümü diğer kodlardan ayrı test etmelisin. Ve düzenledikten sonra tekrar test etmelisin. Kullanılan programlama dili Processing. Arduino sürümü belki biraz farklı olabilir. Processing hakkında Türkçe kaynak, bildiğim kadarıyla yok.
 
Sıcaklığa göre harekete geçecekse void loop fonksiyonunda ilk önce sıcaklığı kontrol ettir. if döngüsü ile örnegin sıcaklık 30dan yüksekse o döngünün içine hareket ettiren kodları yerleştir.
pseudo code:
JavaScript:
void loop(){
sicaklıgı oku...
if(sicaklik>30){
hareket ettiren kodlar...
}
}

else kullanmana gerek yok sanırım çünkü loop fonksiyonu olduğundan sürekli tekrarlanacak kodlar ve her if döngüsünden çıkışta tekrardan sıcaklığı kontrol edeceginden else kullanımına gerek yok diye düşünüyorum.
 
Yeni mesajlar Yeni Konu Aç  

   

SON KONULAR

Forum istatistikleri

Konular
1,174,421
Mesajlar
10,587,075
Üyeler
186,485
Son üye
chainfoot
Geri
Top