Arduino, dijital giriş okuma sorunu

Başlatan neo, 23 Nisan 2018, 16:16:06

neo

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);
  }
}

Have you ever questioned the nature of your reality?

crazy

Dahili pull-up'un  aktif hale gelmesi lazım yada harici pull-up pull-down direnci kullanman gerekiyor.
pinMode(9, INPUT_PULLUP);

94onur94

#2
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.

fide

Pinin girişi ike gnd arasına 56k yada 100k ile arası bir direnc koy. Beslemeyi kesince pini gnd seviyesine çeker, gecikme olmaz.
Her birimiz, geride bıraktığımız eserler kadar ölümsüzüz. Evlat gibi, talebe gibi, icatlar gibi...   http://fidenetgaraj.blogspot.com

neo

Have you ever questioned the nature of your reality?

mg1980

#5
Sayın crazy'nin önerisi yeterli sanırım...delay(10)'u biraz uzatsanız iyi olmaz mı ?

mg1980

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 ?

Cemre.

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 :)