Açıklama
Sabitler Arduino dilinde önceden tanımlanmış ifadelerdir. Programların okunmasını kolaylaştırmak için kullanılırlar. Sabitleri gruplar halinde sınıflandırırız:
Mantıksal Düzeyleri Tanımlama: true and false (Boolean Sabitler)
Arduino dilinde gerçeği ve sahteliği temsil etmek için kullanılan iki sabit vardır: true
ve false
.
yanlış
false
, ikisinin tanımlanması daha kolaydır. false, 0 (sıfır) olarak tanımlanır.
doğru
true
genellikle true
olarak 1 olarak tanımlanır, ancak true daha geniş bir tanımlamaya sahiptir. Boolean anlamında sıfır olmayan herhangi bir tam sayı doğrudur. Dolayısıyla -1, 2 ve -200'ün tümü Boole anlamda da doğru olarak tanımlanır.
true
ve false
sabitlerin HIGH
, LOW
, INPUT
ve OUTPUT
farklı olarak küçük harflerle yazıldığını unutmayın.
Pin Seviyelerini Tanımlama: YÜKSEK ve DÜŞÜK
Bir dijital pini okurken veya yazarken, bir pimin alabileceği / ayarlanabileceği yalnızca iki değer vardır: HIGH
ve LOW
.
YÜKSEK
Anlamı HIGH
(bir pim referans olarak) bir pim, bir ayarlanmış olup olmamasına bağlı olarak biraz farklı INPUT
veya OUTPUT
. Bir pim bir şekilde yapılandırıldığında INPUT
ile pinMode()
ve birlikte okunan digitalRead()
, Arduino (ATmega) bildirir HIGH
ise:
pimde 3.0V'den daha yüksek bir voltaj var (5V panoları)
pimde 2.0V volttan daha yüksek bir voltaj var (3.3V panoları)
Bir pim aynı zamanda, bir giriş olarak konfigüre edilebilir pinMode()
, ve daha sonra yüksek yapılan digitalWrite()
. Bu, harici devre tarafından LOW
çekilmezse giriş pimini HIGH
okumaya çekecek dahili 20K çekme dirençlerini etkinleştirir. Bu alternatif olarak, aşağıdaki "Dijital Pimler modlarını tanımlama: INPUT, INPUT_PULLUP ve OUTPUT" bölümünde daha ayrıntılı olarak açıklandığı gibi INPUT_PULLUP
pinMode()
işlevine argüman olarak ileterek yapılabilir.
Bir pim ile ÇIKIŞI yapılandırıldığında pinMode()
ve ayarlanmış HIGH
ile digitalWrite()
, pim yer alır:
5 volt (5V panoları)
3.3 volt (3.3V kartlar)
Bu durumda akımı kaynaklayabilir, örneğin bir seri direnç yoluyla toprağa bağlı bir LED yakabilir.
DÜŞÜK
LOW
anlamı, bir iğnenin INPUT
veya OUTPUT
olarak ayarlanmasına bağlı olarak farklı bir anlama sahiptir. Bir pim bir şekilde yapılandırıldığında INPUT
ile pinMode()
ve birlikte okunan digitalRead()
, Arduino (ATmega) LOW olmadığını bildirecektir:
pimde 1.5V'den daha düşük bir voltaj var (5V panoları)
pimde (3.3V kartlar) 1.0V (Yaklaşık) 'dan daha düşük bir voltaj var
Bir pim yapılandırıldığında OUTPUT
ile pinMode()
ve ayarlanmış LOW
ile digitalWrite()
pim 0 volt (her ikisi de 5V ve 3.3V panoları) yer almaktadır. Bu durumda akımı batırabilir, örneğin bir seri rezistör aracılığıyla +5 volta (veya +3,3 volta) bağlı bir LED yakabilir.
Dijital Pin modlarını tanımlama: INPUT, INPUT_PULLUP ve OUTPUT
Dijital pinler INPUT
, INPUT_PULLUP
veya OUTPUT
. pinMode()
ile bir pimi değiştirmek, pimin elektriksel davranışını değiştirir.
INPUT olarak Yapılandırılmış Pinler
pinMode()
ile INPUT
olarak yapılandırılan Arduino (ATmega) pinlerinin yüksek empedans durumunda olduğu söylenir. INPUT
olarak yapılandırılan pinler, pim önünde 100 Megohm'luk bir seri rezistansa eşdeğer olarak örnekledikleri devrede son derece küçük talepler yapar. Bu, onları bir sensörü okumak için yararlı kılar.
PIN kodunuzu INPUT
olarak yapılandırdıysanız ve bir anahtar okuyorsanız, anahtar açık durumdayken giriş pimi "yüzer" ve bu da öngörülemeyen sonuçlarla sonuçlanır. Anahtar açıkken doğru bir okuma sağlamak için bir çekme veya çekme direnci kullanılmalıdır. Bu direncin amacı, anahtar açıkken pimi bilinen bir duruma çekmektir. Genellikle 10 K ohm'luk bir direnç seçilmiştir, çünkü kayan bir girişi güvenilir bir şekilde önlemek için yeterince düşük bir değerdir ve aynı zamanda anahtar kapatıldığında çok fazla akım çekmeyecek kadar yüksek bir değerdir. Daha fazla bilgi için Dijital Okuma Dizisi eğitimine bakın.
Bir aşağı çekme direnci kullanılırsa, anahtar açıkken giriş pimi LOW
ve anahtar kapatıldığında HIGH
.
Bir çekme direnci kullanılırsa, anahtar açıkken giriş pimi HIGH
ve anahtar kapalı olduğunda LOW
.
INPUT_PULLUP olarak Yapılandırılmış Pinler
Arduino'daki ATmega mikrodenetleyici, erişebileceğiniz dahili çekme dirençlerine (dahili olarak güce bağlanan dirençler) sahiptir. Bunları harici çekme dirençleri yerine kullanmayı tercih ederseniz, INPUT_PULLUP
pinMode()
içindeki INPUT_PULLUP
bağımsız değişkenini kullanabilirsiniz.
Kullanımdaki bunun bir örneği için Giriş Çekme Dizisi öğreticisine bakın.
INPUT
veya INPUT_PULLUP
ile giriş olarak yapılandırılan INPUT_PULLUP
, yerin altındaki (negatif voltajlar) veya pozitif güç rayının (5V veya 3V) üzerindeki voltajlara bağlanırsa hasar görebilir veya yok edilebilir.
OUTPUT olarak yapılandırılmış pinler
pinMode()
ile OUTPUT
olarak yapılandırılan pinMode()
düşük empedans durumunda olduğu söylenir. Bu, diğer devrelere önemli miktarda akım sağlayabilecekleri anlamına gelir. ATmega pinleri diğer cihazlara / devrelere kadar 40 mA (miliamper) akım kaynaklayabilir (akım sağlayabilir) veya batabilir (akımı emebilir). Bu, LED'lere güç sağlamak için onları kullanışlı hale getirir, çünkü LED'ler genellikle 40 mA'den daha az kullanır. 40 mA'nın üzerindeki yükler (örn. Motorlar) bir transistör veya başka bir arayüz devresi gerektirir.
Çıkış olarak yapılandırılan pimler, toprağa veya pozitif güç raylarına bağlanırsa hasar görebilir veya yok edilebilir.
Yerleşik öğeleri tanımlama: LED_BUILTIN
Çoğu Arduino kartında, bir dirençle seri olarak yerleşik bir LED'e bağlı bir pim vardır. Sabit LED_BUILTIN
, yerleşik LED'in bağlı olduğu pim sayısıdır. Çoğu kartta bu LED dijital pim 13'e bağlanmıştır.