Eğitimler
DigitalPins
Arduino'daki pimler giriş veya çıkış olarak yapılandırılabilir. Bu belge, bu modlardaki pimlerin çalışmasını açıklamaktadır. Bu dokümanın başlığı dijital pinlere atıfta bulunsa da, Arduino (Atmega) analog pinlerinin büyük çoğunluğunun tam olarak dijital pinlerle aynı şekilde yapılandırılabileceğini ve kullanılabileceğini belirtmek önemlidir.
INPUT Olarak Yapılandırılmış Pinlerin Özellikleri
Arduino (Atmega) pinleri varsayılan olarak girişlerdir, bu nedenle giriş olarak kullandığınızda pinMode () ile açıkça giriş olarak bildirilmeleri gerekmez. Bu şekilde yapılandırılan pimlerin yüksek empedans durumunda olduğu söylenir. Giriş pimleri, pimin önündeki 100 megohm'luk bir seri rezistansa eşdeğer olarak örnekledikleri devrede son derece küçük talepler yapar. Bu, giriş pinini bir durumdan diğerine taşımak için çok az akım gerektirdiği ve pinleri kapasitif bir dokunmatik sensör uygulamak, bir LED'i fotodiyot olarak okumak veya bir şemaya sahip bir analog sensörü okumak gibi görevler için yararlı hale getirebileceği anlamına gelir. RCTime gibi .
Bununla birlikte, bu, pinMode (pin, INPUT) olarak yapılandırılmış pinlerin kendilerine bağlı hiçbir şey olmadan veya başka devrelere bağlı olmayan kablolara bağlı olarak, pin durumunda görünüşte rastgele değişiklikler bildirerek elektrik gürültüsünü veya yakındaki bir pimin durumunu kapasitif olarak bağlar.
INPUT olarak yapılandırılmış pinli Pullup Dirençler
Çoğu zaman, eğer bir girdi yoksa, bir giriş pimini bilinen bir duruma yönlendirmek yararlıdır. Bu girişe bir çekme direnci (+ 5V'a) veya bir açılan direnç (toprağa direnç) eklenerek yapılabilir. 10K direnç, çekme veya açılan direnç için iyi bir değerdir.
INPUT_PULLUP Olarak Yapılandırılmış Pinlerin Özellikleri
Atmega çipinde yerleşik olarak yazılımdan erişilebilen 20K çekme direnci bulunmaktadır. Bu yerleşik çekme dirençlerine, pinMode () işlevini INPUT_PULLUP olarak ayarlayarak erişebilirsiniz. Bu, YÜKSEK sensörün kapalı olduğu ve DÜŞÜK sensörün açık olduğu anlamına gelen GİRİŞ modunun davranışını etkili bir şekilde tersine çevirir.
Bu çekmenin değeri kullanılan mikrodenetleyiciye bağlıdır. Çoğu AVR tabanlı kartta, değerin 20kΩ ile 50kΩ arasında olması garanti edilir. Arduino Due'de 50kΩ ile 150kΩ arasındadır. Kesin değer için, kartınızdaki mikro denetleyicinin veri sayfasına bakın.
INPUT_PULLUP ile yapılandırılmış bir pime bir sensör bağlarken, diğer uç toprağa bağlanmalıdır. Basit bir anahtar söz konusu olduğunda, anahtar açıkken pimin YÜKSEK ve düğmeye basıldığında DÜŞÜK okumasına neden olur.
Çekme dirençleri, giriş olarak yapılandırılmış bir pime bağlı bir LED'i loş bir şekilde yakmak için yeterli akım sağlar. Bir projedeki LED'ler çalışıyor gibi görünüyor, ancak çok loşsa, muhtemelen bu oluyor.
Çekme dirençleri, bir pimin YÜKSEK veya DÜŞÜK olup olmadığını kontrol eden aynı kayıtlar (dahili çip bellek konumları) tarafından kontrol edilir. Sonuç olarak, pim bir GİRİŞ olduğunda çekme dirençlerini açacak şekilde yapılandırılmış bir pim, pim daha sonra pinMode () ile bir ÇIKIŞ'a geçirilirse pim YÜKSEK olarak yapılandırılır. Bu diğer yönde de çalışır ve YÜKSEK durumda bırakılan bir çıkış piminde pinMode () ile bir girişe geçilirse çekme dirençleri ayarlanır.
Arduino 1.0.1'den önce dahili pull-up'ları aşağıdaki şekilde yapılandırmak mümkün oldu:
pinMode(pin, INPUT); // set pin to input digitalWrite(pin, HIGH); // turn on pullup resistors
NOT: Dijital pim 13, dijital giriş olarak diğer dijital pimlerden daha zordur, çünkü çoğu panoda karta lehimlenmiş bir LED ve direnç vardır. Dahili 20k çekme direncini etkinleştirirseniz, yerleşik LED ve seri direnç voltaj seviyesini aşağı çeker, yani her zaman DÜŞÜK geri döner, çünkü beklenen 5V yerine 1,7V'da asılı kalır. Dijital giriş olarak pin 13'ü kullanmanız gerekiyorsa, pinMode () işlevini INPUT olarak ayarlayın ve harici bir aşağı çekme direnci kullanın.
ÇIKTI olarak Yapılandırılmış Pinlerin Özellikleri
PinMode () ile OUTPUT olarak yapılandırılan pinlerin 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 kaynağı yapabilir (pozitif akım sağlayabilir) veya batabilir (negatif akım sağlayabilir). Bu, bir LED'i parlak bir şekilde yakmak için yeterlidir (seri direncini unutmayın) veya birçok sensörü çalıştırır, ancak çoğu röleyi, solenoidi veya motoru çalıştırmak için yeterli akım yoktur.
Arduino pimlerindeki kısa devreler veya bunlardan yüksek akım cihazları çalıştırmaya çalışmak, pimdeki çıkış transistörlerine zarar verebilir veya yok edebilir veya tüm Atmega çipine zarar verebilir. Bu genellikle mikrodenetleyicide "ölü" bir pimle sonuçlanır, ancak kalan çip hala yeterli şekilde çalışır. Bu nedenle, belirli bir uygulama için pimlerden maksimum akım çekilmesi gerekmedikçe ÇIKIŞ pimlerini 470Ω veya 1k dirençli diğer cihazlara bağlamak iyi bir fikirdir.