Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => Atmel => Konuyu başlatan: neo - 23 Nisan 2018, 16:16:06

Başlık: Arduino, dijital giriş okuma sorunu
Gönderen: neo - 23 Nisan 2018, 16:16:06
Merhaba, klon arduino uno ile dijital giriş okuyup, okuduğum sinyale göre dijital çıkış vermek istiyorum.

Girişe 1 sinyali verdiğimde anında çıkıştan 1 alabiliyorum,
Ancak girişe verdiğim sinyali fiziksel olarak kestiğimde 5-6 saniye boyunca, giriş pini hala 1 olarak gözüküyor, dolayısıyla çıkış da 1 olmaya devam ediyor.

Neden böyle bir sorun olabilir? Nasıl halledebilirim?

Aynı modelde farklı arduino'yu denedim, farklı giriş-çıkış pinlerini denedim, arduino'yu farklı şekilde beslemeyi denedim. Hala böyle bir gecikme var.

const int pin9 = 9, pin3 = 3;
void setup()
{
  pinMode(pin9, INPUT);
  pinMode(pin3, OUTPUT);
  Serial.begin(9600);
}

void loop()
{
  Serial.println(digitalRead(pin9));
  if (digitalRead(pin9) == HIGH)
  {
    delay(10);
    digitalWrite(pin3, HIGH);
  }
  else
  {
    delay(10);
    digitalWrite(pin3, LOW);
  }
}

(https://i.hizliresim.com/OommO0.png) (https://hizliresim.com/OommO0)
Başlık: Ynt: Arduino, dijital giriş okuma sorunu
Gönderen: crazy - 23 Nisan 2018, 20:59:16
Dahili pull-up'un  aktif hale gelmesi lazım yada harici pull-up pull-down direnci kullanman gerekiyor.
pinMode(9, INPUT_PULLUP);
Başlık: Ynt: Arduino, dijital giriş okuma sorunu
Gönderen: 94onur94 - 23 Nisan 2018, 21:03:07
Pin boşta iken digitalread komutunun rastgele 1 veya 0 döndürmesi normal bu olaya floating deniyor. Nedeni ise input pinlerinin hassasiyetinden dolayı, çevredeki elektriksel değişimleri algılıyor olması. Bunu önlemek için pullup veya pulldown resistörü kullanmalısın. Pin boşta iken lojik-0 okunmasını istiyorsan, pini 10k direnç ile gnd hattına bağla. Direnç bağlamak yerine dahili pullup dirençleri de aktif edebilirsin.
Başlık: Ynt: Arduino, dijital giriş okuma sorunu
Gönderen: fide - 23 Nisan 2018, 21:39:04
Pinin girişi ike gnd arasına 56k yada 100k ile arası bir direnc koy. Beslemeyi kesince pini gnd seviyesine çeker, gecikme olmaz.
Başlık: Ynt: Arduino, dijital giriş okuma sorunu
Gönderen: neo - 23 Nisan 2018, 21:52:57
hallettim, teşekkürler :)
Başlık: Ynt: Arduino, dijital giriş okuma sorunu
Gönderen: mg1980 - 23 Nisan 2018, 22:54:42
Sayın crazy'nin önerisi yeterli sanırım...delay(10)'u biraz uzatsanız iyi olmaz mı ?
Başlık: Ynt: Arduino, dijital giriş okuma sorunu
Gönderen: mg1980 - 24 Nisan 2018, 10:52:53
Enteresan, cevap yazdığımda sayın @fide'nin önerisi vardı en son olarak..Bugün açtığımda sayın @neo,nun "hallettim" cevabı görünüyor..bunu görebilsem zaten cevap yazmazdım..bu nasıl olabiliyor ?
Başlık: Ynt: Arduino, dijital giriş okuma sorunu
Gönderen: Cemre. - 24 Nisan 2018, 11:05:03
Alıntı yapılan: mg1980 - 24 Nisan 2018, 10:52:53Enteresan, cevap yazdığımda sayın @fide'nin önerisi vardı en son olarak..Bugün açtığımda sayın @neo,nun "hallettim" cevabı görünüyor..bunu görebilsem zaten cevap yazmazdım..bu nasıl olabiliyor ?

Moderatör onayı gereken bir mesaj olabilir. Moderatör onayı siz cevap yazdıktan sonra geldiyse mesaj da sizden önce yazılmış gibi gözükmesine rağmen sizden sonra görünür kılınmış olabilir :)