Arduino Uno Çalışma kararsızlığı

Başlatan Soner_45, 19 Ocak 2021, 01:35:41

Soner_45

Merhaba Aranıza yeni katıldım.
Adım Soner 32 yaşında Endüstriyel Elektrik teknisyeniyim.
Arabamda kullanmak üzere Uno r3 ile yaptığım bir projem ile ilgili sorum olacak

HC-06 bluetooth modül ile 4ch Röle kontrolü yapan projemde
Arduinonun besleme gerilimini kesip geri açtığumda OUTPUTLAR lojik (1) olarak geliyor
tâki Bluetooth ile bağlantı kurulup her hangi bir butona basıldığında normale dönüp tüm çıkışlar lojik (0) oluyor. Röle kartının kendi üzerinde optocouplerleri ve pulldown bağlantısı olduğunu düşündüğüm dirençleri var.
Haricen pull-down kullanmammı lazım yoksa kod kısmında mı bir sıkıntı var çözemedim.
Yardımcı olabilirmisiniz ?
Teşekkürler iyi günler dilerim.
Kodlar aşşağıdaki şekilde;

char gelenkarakter;
const int Role1=10,Role2=11,Role3=12,Role4=9;

  void setup(){
  pinMode(Role1,OUTPUT);
  pinMode(Role2,OUTPUT);
  pinMode(Role3,OUTPUT);
  pinMode(Role4,OUTPUT);
  Serial.begin(9600);
}
void loop() {
while(Serial.available()>0){
gelenkarakter=Serial.read();
if (gelenkarakter=='1')
{
digitalWrite(Role1,LOW);
}
if (gelenkarakter=='0')
{
digitalWrite(Role1,HIGH);
}
if (gelenkarakter=='2')
{
digitalWrite(Role2,LOW);
}
if (gelenkarakter=='0')
{
digitalWrite(Role2,HIGH);
}
if (gelenkarakter=='3')
{
digitalWrite(Role3,LOW);
}
if (gelenkarakter=='0')
{
digitalWrite(Role3,HIGH);
}
if (gelenkarakter=='4')
{
digitalWrite(Role4,HIGH);
}
if (gelenkarakter=='5')
{
digitalWrite(Role4,LOW);
}
}}



selimkoc

setup() fonksiyonu içinde digitalWrite(pin,LOW); ile istediğiniz pinleri low yapın.

Soner_45

Denedim üstad açılışta geçen yaklaşık 1 sn lik sürede bu sorun oluyor sonrasında düzeliyor.

Kabil ATICI

bu anlattığınız durumu arduino bilgisayara bağlı iken yapar. Çünkü arduino ilk açıldığında bilgisayara bootloader modunda bağlanır, daha sonra arduino normal çalışma modunda devam eder.

aslında buradaki sorun röle kartınızın çalışma şeklinden kaynaklanıyor. Şemasını bulup incelerseniz,  sorunu görebilirsiniz.

Opto kuplör olduğu için lojik 0'a çekildiği zaman röle çekiyor. Ama arduino pinleri ilk açılışta lojik o veya giriş olarak tanımlıdır.

Sizin istediğiniz gibi çalışması için optonun iptal edilmesi uygun opto bacaklarının kısadevre edilmesi ve kodun ona göre düzenlenmesi gerekir.
ambar7

ipek

bir forumda denk gelmiştim,bu tip sorunları Arduino'nun bootloaderi'ini iptal edip Hex dosyasını Usbapp programmer ile yüklüyorlar.bu Ardu'ya bootloader prosesi için kaybettirdiği zamanı telafi ediyor,bu biraz zor konu muhtemelen denemeler yapar iken sigorta haritasına zarar verip wall tabir edilen işlemciyi komaya sokabilirsiniz,bir dahada geri gelmez, ben sadece okuduklarımı aktardım,bilgi düzeyim sizden bir tık yukarıda,en iyisi konuya hakim arkadaşlardan öneri beklemek..

volkanunal

Merhabalar hocam bootloader üzerinden ayağa kalkarken tx pinin high durum da iken diğer bir çok pin float durumda kalıyor. Dilerseniz usbasp üzerinden bootloader iptalini sağlayıp kodu atabilirsiniz.
Primum nil nocere

muhendisbey

@Kabil ATICI benim yazacaklarımı yazmış. Röle kartın çok büyük ihtimalle lojik 0 tetiğine sahip olarak tasarlanmış. Lojik 0 olarak tetiklenen röle kartları ilk açılışta çekip bırakabilir. Bunu yapmasını istemiyorsan röle kartının beslemesini sistem oturduktan sonra vermen gerekli. Bootloader ile olan ilişkisi ise beslemesini yeni derdiğiniz bootloader'lı kartların gecikme ile işlem yapması. Bu gecikme, DTR sinyali ile resetlenen MCU'nun programlama isteği olup olmadığını kontrol etmek için kullanılır. Bu durumda pin durumuna çok dikkat edilmemiş olabilir.

Elinizde iki adet arduino uno varsa ya da ödünç bulabilirseniz kartınıza güncel bootloader yüklemeyi deneyebilirsiniz. Fakat bu dediğim gibi yine tam bir çözüm olmaz. Active High ve Active Low olarak ayarlanabilen röle kartı bulabilirsiniz ya da en güzeli delikli pertinaks üzerine ya da ütü ile PCB oluşturarak kendi röle devrenizi kurabilirsiniz.
Zulmü alkışlayamam, zalimi asla sevemem; Gelenin keyfi için geçmişe kalkıp sövemem.

asma

Merhaba
Sorunun kaynağını bulup çözmek yerine etkisini gidermekte bir çözüm olur mu.
Röle kartındaki (sarı) jumper sökülürse , durum ledleri yanar söner ama röleler çekmez. jumper pinlerini anahtarlayarak devreyi çalıştırırız.
Yani her enerji verildiğinde 1,5sn sonra röleleri devreye sokmak ta bir çözüm olur mu?

ismail kaya

Hocam bluetooth modülünü RX TX pinlerine değilde Softwareserial kütüphanesini dahil edip, D10 ve D11 pinlerinden deneyebilirmisin.

mustafacan

#9
Sorununuz veriyi okurken data kirliliğşnden kaunağı seri okurken yaşanabiliyor.
Karakterlerin hepsini birleyip string olarak kullanın. String parçalama ile ile byte ları parçalayın. Bitlerı karakterlere atayın.
İletiişm esnasındaki enterferansdan yani yaşadığınız kararsızlıktan kurtulacaksınız.
Keşfedilecek çok teknoloji var. Boş Vaktim Yok!