Bu dersimizde arduino çıkışları lojik sıfır olduğunda çıkışı aktif yapmayı öğreneceğiz. Buna neden gerek var derseniz açıklayalım. Normal şartlarda arduino çıkışları lojik 1 (5Volt) olduğunda çıkışına aaşağıdaki şekilde görüldüğü gibi bir led bağlarız. Çıkış lojik 1 olduğunda led yanar, çıkış lojik 0 olduğunda ise led sönecektir.



Bu şemaya ait yazılım:
scription">Kod:
void setup() 
{
pinMode(13, INPUT);   // DİJİTAL 0 PİNİNE BUTON BAĞLANACAK
pinMode(0, OUTPUT);  // DİJİTAL 13 PİNİNE LED BAĞLANACAK
}
int sensor=1;
void loop()
{
sensor = digitalRead(13);  // BUTONDAKİ LOJİK SEVİYEYİ OKU
digitalWrite(0, sensor); // BUTONDAKİ SEVİYEYİ ÇIKIŞA AKTAR
}
Buraya kadar her şey normal. Ancak dikkat ederseniz arduinoya ilk defa besleme gerilimi uygulandığında ya da arduino resetlendiğinde arduino çıkışları istem dışı 1 saniye gibi çok kısa bir sürelojik 1 seviyesini almakta ve sonra kendiliğinden normale dönmekte. Bu durum eğitim ortamlarında bir sorun olarak görünmese de özellikle ticari ve endüstriyel kullanımlarda büyük güvenlik risklerine ve hesapta olmayan donanımsal arızalara neden olabilir. Bunun önüne geçebilmek devre şemasında ve yazılımda aşağıdaki örnekte görüldüğü gibi bir değişiklik yaparak arduino çıkışları lojik 0 olduğunda çıkış almamız gerekir. Belki bu problemi çözmek için yazılımsal ya da donanımsal başka çözümler de vardır. Ancak şu an benim bilgim dahilinde değil. Eğer ki daha bir çözüm yolu öğrenirsem yine bu konu altından çözümüpaylaşırım.




Bu bağlantıya ait yazılım:
description">Kod:
void setup() 
{
pinMode(13, INPUT);   // DİJİTAL 0 PİNİNE BUTON BAĞLANACAK
pinMode(0, OUTPUT);  // DİJİTAL 13 PİNİNE LED BAĞLANACAK
}
int sensor=1;
void loop()
{
sensor = digitalRead(13);  // BUTONDAKİ LOJİK SEVİYEYİ OKU
digitalWrite(0, !sensor); // BUTONDAKİ SEVİYEYİ ÇIKIŞA AKTAR
}
Her iki bağlantı ve yazılımda da devremiz aynı işlevi yerine getirmektedir.

İhtiyaç olması halinde konuya ait dosyalar orjinal konu ekinde mevcuttur. (Üyelik gerektirir.)