Arama butonu
Bu konudaki kullanıcılar: 1 misafir
1
Cevap
517
Tıklama
0
Öne Çıkarma
Doğru çalışan arduino 5dk sonra hatalı çalışıyor
O
4 yıl
Teğmen
Konu Sahibi

Merhabalar,

Arkadaşlar arduino uno klon kullanıyorum. Projemde arduino belli bir süre düzgün çalıştıktan sonra hata moduna geçiyor ve ne yaparsam yapayım bir türlü düzelmiyor ancak bilgisayara bağlayıp kodu içerisine tekrar attıktan sonra düzeliyor.


Arduino da kodu size açıklayayım,

Bir adet dc motor var bu motor bir tırpan işlevinde çalışıyor ve yani ince dalları buduyorum. İlk önce butona basılıp basılmadığını arduinodan okuyup daha sonra akım değerini okuyorum(acs712) eğer 19 amperden düşük ise motoru çalıştır, akım yüksek ise durdur(kalın dallarda motor tıkanıp motor yanmaması için). Temelde bu amaç üzerine kuruldu. Sahaya teste çıktığımda 5 - 10 dakika normal çalışıyor daha sonra motor sürücüsüne anlık pulse yollar gibi bir tepki veriyor makina ve sürekli bu modda kalıyor. Diğer fonksiyonlar çalışmıyor. Arduino yu resetliyorum yada arduinonun pilini çıkartıp takıyorum bazen düzeliyor bir süre sonra yine aynı hata ve daha sonra hiç düzelmiyor.

Acaba sorun nerede olabilir ?




Devre bağlantım

< Resime gitmek için tıklayın >





Ardunio daki kod:


#include "ACS712.h"
#define butonoku A1 // A1 pininden butona basılıp basılmadığı okunacak
int butondegeri = 0;
int motor = 13;


//aşağıda fonksiyonda A0 pini akım okuma için atandı
ACS712 ACS(A0, 5.0, 1023, 66); // acs712 fonksiyonu için hazır yazılmış.Burada "66" değeri 30 amperlik versiyon içindir


void setup() {

Serial.begin(9600);
pinMode(motor, OUTPUT);
ACS.autoMidPoint(); // ACS712 fonksiyonunu çağır
}


void loop()
{



int mA = ACS.mA_DC(); // fonksiyon değerini mili amper cinsinden hesapladı

butondegeri = analogRead(butonoku); //butona basılıp basılmadığını kontrol et

if (butondegeri==0) // Butona basılmadıysa motoru durdur
{
 Serial.println("butona basilmadi");
 Serial.println(butondegeri);
 digitalWrite(motor,LOW);
 delay(200);
}

else // Butona basıldığında motoru enerjilendir. Akım değerini oku
{ Serial.println("******butona basildi******* ");


Serial.println("akim ma:");
Serial.println(mA);
digitalWrite(motor,HIGH);


if (mA>19001)
{
 digitalWrite(motor,LOW);
 Serial.println("akim çok yüksek motor koruması");
 delay(5000); 
}

else if (mA<=19000) {
 digitalWrite(motor,HIGH);
 Serial.println("motor calisiyor ve akim normal"); }
 delay(200);

}
 }



B
4 yıl
Onbaşı

Besleme yetersiz olabilir mi? Pil olarak ne kullanıyorsunuz?



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.