atmega328 etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
atmega328 etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

26 Ağustos 2015 Çarşamba

Kapasitif ve Rezistif Ekran Nedir?

Kapasitif ve Rezistif Ekran Nedir?

Kapasitif Ekran ile Rezistif Ekran Arasında Ki Farklar Nelerdir?
Rezisitif dokunmatik ekranlar
Dokunmatik ekranlarda en çok rastlanan tür, rezistif ekranlardır. Modern telefon, tablet ve trackpad'ler dışındaki birçok dokunmatik ekran, aslında resistiftir. Bu tür ekran, adından da anlaşılabileceği gibi dirençseldir ve ekranın tepki vermesi için ona baskı uygulamanız gerekir. Rezistif ekranlarda ince bir boşlukla ayrılan ikin ince katman bulunur (ancak bu ekranlarda başka katmanlar da vardır). Bu iki katman da tek yüzünde bir kaplamaya sahiptir. Bu kaplamalar birbirine dönüktür. Bu iki katman birbirine dokunduğunda elektrik iletilir ve dokunma, bir sinyal olarak işlenir. Bu nedenle rezistif ekranlarda eldiven, tırnak, kalem ve yeteri baskıyı oluşturacak herhangi bir nesneyi kullanabilirsiniz.
Rezistif ekranKapasitif Dokunmatik Ekran
Kapasitif dokunmatik ekranlar rezistif dokunmatik ekranlara göre biraz daha farklı bir sistemle çalışırlar. Ekranın yapısı aslında daha basittir rezistif ekrana göre, saydam iletkenle kaplı yalıtkan malzeme. Yalıtkan malzemenin cam olması bu ekranı dayanıklı kılar.kapasitif ekran
Kapasitif Dokunmatik Ekranın temel çalışma prensibi Nasıl çalıştığına gelelim. Ekranın dört köşesinden uygulanan gerilimle ekran yüzeyinde elektrostatik alan oluşturulur. Yüzeyin herhangi bir yerine yük depolayabilen bir iletken temas ettirildiğinde bu elektrostatik alanda oluşan değişim köşelere yerleştirilmiş osilatörler tarafından gözlenebilir hale gelir. Osilatörlerden toplanan veriler işlem birimine gönderilerek koordinat verisi haline çevrilir ve sisteme aktarılır.
Kapasitif Dokunmatik Ekranların Artı ve Eksileri:
+ Birden fazla dokunmanın algılanmasına izin verir, ve sürükleme yaparken de rahatlık sağlar.
+ Rezistif ekranlara göre çok daha hassastır.
+Üst yüzeyin esnek olması gerekmediğinden sertlik ve çizilmezlik konusunda başarılı yalıtkanlar kullanılarak dayanıklılık
arttırılabilir.
-Maliyetlidir.
-Parmakla dokunmanız gerekir.
-Rezistif ekranlara göre uyarlanmış işletim sistemlerini çoklu dokunmatik kapasitif ekranla kullanamazsınız.
-Rezistif'e göre daha fazla enerji harcar.
Kaynak: padopia.com


Arduino İle Neler Yapılabilir?

Merhabalar Arkadaşlar
Bugün Arduinoyla yapılabilecek projeleri inceleyeceğiz.Fırsat ve imkan buldukça bu projeleri yapıp nasıl yapıldığını yayınlamaya çalışacağım.Arduino ile neler neler yapılabileceğine hep beraber göz atalım.
1. 3 Boyutlu Yazıcı


3 boyutlu yazıcı çoğumuzun da bildiği üzere 3 boyutlu cisimlerin bir nevi çıktısının alınması yani içine konulan sarf malzemesi ile üretim yapılabilmesi imkanı sunuyor.Hatta adamlar öyle abartmışlar ki 3b objeler , armatürler , münyatürler ,  kulak , burun , boğaz derken kalp yapmaya kadar gitmişler ; çalışıyor mu çalışmıyor mu orasını bilmiyorum ama yapmışlar.Velhasıl Arduino ile 3B yazıcı yapmak çok ta hayal ürünü değil ancak biraz pahalı.Ancak yazdıracağınız objeler hayal gücünüze ve 3b çizim yeteneğinize kalmış.

Prusa i3 modeli açık kaynak kodlu olması ve yabancı dildeki kaynaklar olsun Türkçe kaynaklar olsun çok rahat bulunabilmesi nedeniyle en çok tercih edilen 3 boyutlu yazıcı modeli.Maliyeti ise yaklaşık 1200-1300 lira civarına geliyor olması biraz üzücü.Tabi ki farklı alternatifler ile bu maliyeti 800 liraya kadar düşürmemiz mümkün.Buradan kit halinde temin edbilirsiniz.(Not:Ürün Arduino içermiyor.Arduino ve ramps kullanılarak yapılan yazıcı için kendi devrelerini üretmişler.Arduinoyla kiti çalıştırmak isterseniz biraz uğraştırabilir.)
2.Multicopter

Multicopter birden fazla kaldırma mekanizmasına sahip olan cisimlere verilen genel isimdir.Arduino ile multicopter yapımı hem eğlenilecek hem de Arduinonun kodlanmasında ve sensörlerin Arduinoyla beraber kullanılmasında öğrenilecek bir çok şeyi barındıran  güzel bir proje olduğunu düşünüyorum.Burada ki gibi sizi takip edebilecek bir quadcopter yapmakta tabi ki mümkün.
Buradan plastik parçaları temin edebilirsiniz.Arduino ,brushless motor ,mpu 6050 sensörü ,batarya ,kumanda vs ekledinizmi artık bir quacopteriniz var demektir.Maliyeti ise 500 - 1000 lira arasında değişmekte olup aldığınız parçalara, siteye göre değişiklik göstermekte.İnternette yapımıyla ilgili pek fazla Türkçe kaynak bulabilirsiniz.
3.Wireless Kamera

Piyasada 150-400 lira arasında wireless kamera bulmak oldukça kolay.Bunu Arduino ile yapmak size çok daha ucuza mal olabilir ki bir sonraki yazımda wireless kamera yapımını anlatmayı düşünüyorum.Maliyeti de o yazıda daha detaylı bir şekilde görebilirsiniz. 
Arduino ile projeyi gerçekleştirdikten sonra akıllı telefonunuzda yada C# yardımı ile bilgisayarınızdan da görüntülemeniz mümkün.Hatta webden de görüntüleyebilirsiniz.
4.Park Sensörü

Park sensörü ile araç park etmek oldukça keyifli bir hale dönüşüyor.Daha seri bir şekilde aracınızı park edebiliyorsunuz.Gelelim Arduinoyla yapımına ucuza mal edebilceğiniz, kodlama açısından da teorik bilgileri hayata dökebileceğiniz ve maliyet açısından da gayet uygun bir projedir. Satış fiyatlarını da burada da görebileceğiniz gibi gayet makul. 
Son iki projeyi birleştirerek ortaya güzel bir şey (Kameralı park sensörü) çıkarmakta mümkün.
5.Çalar Saat

Arduino ile yapılacak olan bu çalar saat diğerlerinden biraz farklı olacak siz onu yakalamaya çalıştıkça sizden kaçacak.Arkadaşı buradan daha yakından tanıyabilirsiniz.Arduinoyla yapılmış halini fırsat bulurda yaparsam hep beraber inceleme şansımız olacak.
Arduinoyla milyonlarca farklı proje geliştirmek mümkün fırsat buldukça bu konuya devam etmeye çalışacağım ve geliştirebildiğim kadarıyla da yayınlayacağım.Arduino ile ufkumuzu açmak için şimdilik bu kadarı yeterli sanırım.

Vakit ayırdığınız için teşekkürler.
Abdullah DEVECİ
İstanbul Üniversitesi – Elektrik &Elektronik Mühendisliği




Arduino ile Termometre Yapımı

Merhabalar Arkadaşlar
Bugün Arduino ile lcd ekran kontrolünü ve akabinde sıcaklık sensörü yardımıyla ölçülen sıcaklık değerini lcd ekrana yazdıran ugulamamızı yapacağız.Devrenin simülasyonunu buradan görüntüleyebilirsiniz.Sol üstte Start simulation yazan kısımdan simülasyonu başlatabilirsiniz.

İhtiyacımız olan malzemeler

1-Herhangi bir Arduino devre kontrol kartı (Arduino Uno , Mega  2560 , Nono , Pro Mini vs. )

2-Lcd ekran ( LCD 16x2 WH1602B-TMI-ET )



3-Sıcaklık Sensörü(TMP36)

4-Potansiyometre(10K)



5-Direnç(160Ω)

Devreyi Autodeskin geliştirmiş olduğu sanal labaratuarda kuracağım.Çok fazla imkan sunmamışlar ancak Arduino öğrenmeye başlamak için yeterli modüller var.
Üreticiler ürettikleri parçların kimliği niteliğinde olan sensörü yada elektronik parçayı tanıyabileceğimiz datasheet denilen bir nevi kılavuz yayınlarlar.

Datasheet Nedir?

Lcd ekranın yada sıcaklık sensörünün yanındaki kod adına bakarak parçanın üzerinden geçmesi gereken maximum yada minumum gerilimi ısıya ne kadar dayanıklı olduğunu devre haritasını üzerinden geçmesi gereken akım değerini bacakların nasıl bağlanacağını Google Translate  yardımı ile rahatlıkla öğrenebilirsiniz.

Lcd ekran nasıl bağlanır?


1-GND                          Ground yani toprak demektir.(-) ucun bağlanacağı kısımdır.
2-VDD                          Besleme gerilimi anlamına gelir yani (+) ucun bağlandığı kısımdır.
3-Contrast                    Kontrastı yani ekranın parlaklığını ayarlayacağımız kısımdır.
4-RS                              Register Select yani lcd ekranın ne yapacağını gösteririr.
5-R/W                           Pinleri okuma yada yazma modunun ayarlandığı kısımdır.
6-Enable                       Okuma modunu aktif hale getirir.
7-14 DB0-DB7              Bit değerlerinin okunduğu kısımdır.
15 -16                            Arka plan aydınlatmasını sağlayan (+) ve (-) uçlardır.






Devrenin Arduino Kodları


Kodları indirmek için link.
Sağ altta download code  diyerek kodu indirebilirsiniz.
Yada sol üstten code editör diyerek arduino kodlarınızı görüntüleyebilirsiniz.

Elimden geldiğince anlaşılabilir anlatmaya çalıştım.
Bir başka konuda görüşmek üzere . . .
Abdullah DEVECİ

İstanbul Üniversitesi –Elektrik&Elektronik Mühendisliği


21 Temmuz 2015 Salı

Atmega328P ___ Atmega328 FARK NE?

Atmega328 - Atmega328P

Atmega328P ___ Atmega328
Fark Ne?


Bu güne kadar Atmega entegrelerinin ilginç isimlendirmelerine fazla kafa yormamıştım. Dün Atmega328 satın almak için web'de gezinirken Atmega328P ve Atmega328 arasındaki farklılıkları anlayarak satın alma kararı verme gereği duydum :) (ne aldığımı en ince ayrıntısına kadar bilmeyi severim). İlk gözüme çarpan fiyat farkı oldu. Net farkı anlamak için www.atmel.com'a girip karşılaştırma yaptım. Atmel 1000 adet fiyatını vermiş, o yüzden ucuz gibi görünebilir, normalde bu fiyatlara bulmak pek mümkün değil. ATMEGA328-PU 1.69$ iken ATMEGA328P-PU 1.85$. Türkiye şartlarında satın alırken bu fiyatlar 9 TL ve 12 TL gibi oluyor, yani 1$ civarı fark var. Peki bu fiyat farkı neden var? Umarım bu bilgiler faydalı olur :)




1. Atmega328 ve Atmega328P aynı mimari yapıya sahip olduğu için 328'i 328P yerinde ya da tam tersi şekilde kullanabilirsiniz.


Atmega328P-PU


2. Atmega328P Atmega328'e göre daha az enerji tüketiyor. Datasheet'leri incelediğimde 328P'nin 60nm işlemle üretildiğini gördüm, 328 ise 90nm ile üretiliyor. Yani bir kaç mikroamper daha az güç tüketimi için biraz daha fazla ödememiz gerekiyor :) 

Atmega328-PU


3. 328P ile 328'in çip imzaları farklı. Arduino IDE'deki avrdude programı gibi bir program iki çip arasındaki farkı anlayabilir, eğer bu çiplerden birini zorunlu kılan bir durum varsa diğerini taktığınızda hata ile karşılaşabilirsiniz. Yani çip imzasına dikkat!


QFN Paketleme



4. 2 numaralı konuda ifade ettiğim gibi üretim sürecindeki hassasiyetten kaynaklanan bir durum daha var; QFN paketleme. QFN paketleme üretim hassasiyetten dolayı sadece 328P'de var. Daha küçük çip için daha iyi üretim gerekiyor.  

5. Sonuç: Bir kaç mikroamper önemli değil, 1$ 1$'dır diyosanız Atmega328 sizin için ideal. Güç tüketimi önemli ve ya SMD kullanacaksanız Atmega328P size göre. Tabi çip imzalarına da dikkat edin :) 


Kaynak: www.atmel.com  


20 Haziran 2015 Cumartesi

Arduino’da Güç Tasarrufu ve Interrupt Kavramı


Arduino tek başına kullanıldığında 60mA gibi oldukça fazla güç harcayabilen bir yapıya sahip ancak bunu düşürmekte bir o kadar kolay.
Öncelikle Arduino’yu direkt pil ile çalıştırabileceğinizi düşünüyorsanız maalesef yanılıyorsunuz. Evet, pratikte bu mümkün, 9v bir pili bağlarsınız ve işte çalışır. Hepsi bu! Gerçekten mi evet gerçekten çalışır ama yaklaşık 5 saat kadar çünkü 9v piller yaklaşık 250mA güçtedir ve Arduino’nuz 50mA güç tüketse piliniz bu zulme kabaca 5 saat dayanabilir. Peki ya sonra? Sonra yeni bir pil.
Tabi ki böyle bir durum kabul edilebilir değil. Peki, ne yapabiliriz? Burada iki çözümümüz var birincisi Arduino’muzun normal çalışma şartlarında daha az enerji tüketmesini sağlamalıyız. İkincisi ise çalışmadığı zamanlarda uyumasını sağlamalıyız ki pilimiz aylarca devremizi çalıştırabilsin. Tabi projeye göre hangi pili kullanacağımızı da belirlemeliyiz.
Arduino’yu sadeleştirmek
Aslında Arduino oldukça sade bir yapıdadır. Board her ne kadar işimizi kolaylaştırsa da proje haline getirilmesi gereken bir iş için çok gereksiz ve hantaldır. 

Arduino Uno bildiğiniz gibi Atmega328 ile çalışır. Ve bu 28 ayaklı entegrenin çalışması için aslında 2 GND, 2 VCC 2, Kristal ayağı ve 1 Reset ayağının yani toplamda 7 ayağın bağlanması yeterlidir. Bizim de ilk yapmamız gereken budur. Bunu da bir breadboard üzerinde kolayca yapabiliriz. Peki, neden bunu yaptık? En önemli sebebi aslında bir 5v ve 3v3 regülatörlerini, bir kez kullandıktan sonra ihtiyacımız kalmayacak programlayıcı entegresini ve hatta gereksiz LEDleri istemiyoruz. Çünkü bunların hepsi gereksiz yere akım tüketiyorlar. Biz çok daha uzun süre pille çalışabilecek bir yapı istiyoruz.
Breadboard üzerinde Arduino programlamak
Tabi bu istediğimiz yapıyı kurmanın bazı bedelleri var yani  şimdi nasıl programlayacağız diye düşünüyorsanız o iş hala çok kolay. Tek ihtiyacınız olan bir FT232 USB-Serial dönüştürücü. Ben programlayıcı konusuna fazla girmiyorum aslında bu başka bir yazı konusu. Tabi bu programlamayı yapmak için ATmega328’e bootloader yüklenmiş olmalı. ATmega328 entegresini boardunuzdan sökmenizi tavsiye edebilirim. 

FT232 bağlantısı son derece kolaydır. Bu modül üzerinde genellikle GND, 5V ve 3V3 çıkışları hali hazırda bulunur. Yani boardu pile geçene kadar buradan besleyebilirsiniz. Bunun dışında, kullanacağımız çıkışlar 3 adet; TX, RX ve DTR. TX ve RX zaten USB ile haberleşen ve programımızın geldiği hatlar. Bunları ATmega328’in RX(2. pin) ve TX(3. pin) lerine bağlıyoruz. Burada bir fark var USB dönüştürücüden gelen ve ATmega328 üzerinde olan bağlantılar çaprazlanacak yani TX->RX’e RX->TX e gidecek sonuçta biri alıcı diğeri verici. DTR ise burada önemli, bu pini direkt ATmega328’in RESET(1. pin)’ine bağlamalısınız ki bunu bağlamadan önce RESET-VCC arasına bir 10K direnç atmış olmalısınız yoksa RESET GND ye gittiğinde işlemcimiz resetlenir.
Arduino uyku modu ve kesmeler
Arduino oldukça kolay uyuyabilir. Bunun için yapmanız gereken
1
2
#include <avr/sleep.h>;
#include <avr/power.h>;
kütüphanelerini ekleyip daha sonra
1
2
3
4
5
6
7
void enterSleep(void)
{
   set_sleep_mode(SLEEP_MODE_PWR_DOWN);
   sleep_enable();
   sleep_mode();
   sleep_disable();
}
gibi bir fonksiyon yazıp bunu setup fonksiyonunun sonunda çağırmaktır. Evet, bunu hemen denerseniz görürsünüz ki Arduino -belki artık sadece ATmega328 demek lazım- uyur. Çok da güzel uyur. Ama onu uyandırmanız şuan için imkânsız çünkü bunu için hiç bir şey yapmadınız. Size ilk tavsiyem setup fonksiyonundan sonra enterSleep fonksiyonunu çağırın ve akımı ölçün mili amper görmeniz imkânsız artık mikroamperler seviyesindeyiz 20 belki 10 mikroamper.
Tabi işlemcimiz sonsuza kadar uyumamalı arada bir ya da biz ne zaman dersek uyanıp işini yapmalı sonra tekrar uykusuna dönebilir.
Arduino Nasıl Uyansın?
Bunun tek yolu var o da interrupt yani kesme isteği göndermek. Bunlarda iki ye ayrılıyor dış interrupts ve iç interrupt. Dış dediğimiz direk olarak ayaklarından birinde bir gerilim değişikliği olunca. Diğeri ise içerden bir saat kurarak uyandırmaktır.

Dış Interrupts (Kesme İstekleri)
Bir interrupt geldiğinde işlemcimiz uyanır ve kesme isteği ile ilgilenir. Ancak bu her pin için geçerli değil ATmega328 sadece 2 giriş için bunu yapar onlar da Dijital 2 ve Dijital 3 yani 4. ve 5. pinler. Diğer işlemciler için farlı pinler söz konusu buradan bulabilirsiniz. http://arduino.cc/en/Reference/attachInterrupt. Diğer yandan bunlardan gelecek istekleri bir fonksiyon ile ilişkilendirmelisiniz. Bu işlem genellikle setup bölümünde yapılır ve şuna benzer;
1
2
attachInterrupt(0, cagriInterrupt, LOW);
attachInterrupt(1, iptalInterrupt, LOW);
Burada 0 ve 1 nolu interruptlar yani Dijital 2 ve 3 girişleri cagri ve iptal diye birer fonksiyona bağlanmışlardır. Yani bir interrupt alındığında bu fonksiyonlar çağırılır. 3. parametre genelde LOW olarak kullanılır ki bunu kullanabilmek için normalde bu pinin HIGH yani 1 olması gerekir ki bu da bu pine bağlanacak bir 10K – VCC arası direnç ile sağlanabilir. Bu parametre farklı değerlerde alabilir ancak en çok kullanılan budur diye burada değinmiyorum.
Interrupt alındıktan sonra bizim fonksiyonumuz çalışmaya başlar ardından da loop çalışır ta ki siz tekrar enterSleep komutunu çağırana kadar. Burada dikkat edilmesi gereken kesme isteğinin bir kez daha gelmemesi gerekir ki biz işimizi bitirebilelim. Bunun için çok pratik bir fonksiyon var. Diyelim ki 0 nolu kesme isteği geldi yani Dijital 2 (4. pin) LOW oldu cagriInterrupt() fonksiyonumuz çalışır. Bu fonksiyonun başına detachInterrupt(0); eklersek artık butona tekrar tekrar basılsa da hiç bir şey olmaz çünkü artık o kesmeye ilişkili bir fonksiyon yok biz o ilişkiyi bitirdik. Tabi uykudan önce buradan tekrar bir kesme almak istiyorsak tekrar attachInterrupt fonksiyonunu çalıştırmalıyız. Hatta enterSleep fonksiyonunun başında attach yaparsak daha iyi olacaktır. Böylece uyumadan önce interruptlar gerekli fonksiyonlarla ilişkilenir.
İç Interrupt ile uyandırma
Aslında bunu yapmanın bir tek yolu var o da WDT (Watch Dog Timer). Bu aslında işlemcinin kilitlenmesini engellemek için konulmuş bir özelliktir ve çok işlevseldir. Watch Dog yani bekçi köpeği çalıştırılırsa ve ayarlanan süre dolmadan resetlenmezse “havlar” yani işlemciyi resetler ve böylece kısır döngülerden kurtulursunuz ancak bir başka çalışma şekli daha var. Aynı işlemi yapar ancak resetlemez yani belli periyotlar ile örneğin 1sn de bir -ki bunun için farklı zamanlamalar ayarlanabilir- işlemciye bir interrupt gönderir ve uyanıp bir işlem yapmasını sağlayabilir.
Arduino’yu düşük gerilimlerde çalıştırma
Gelelim asıl akımı düşürme konusuna. ATmega328 aslında 1,8v’a kadar düşük gerilimlerle çalışabilir ama Arduino board çalışamaz çünkü bu gerilim seviyelerine inebilmek için işlemcinin hızından ödün vermek gerekiyor. Arduino board her ne kadar 16Mhz bir kristalle çalışıyorsa da ATmega328 daha yüksek ya da düşük kristaller ile de çalışabilir. Maksimum 20Mhz ile de çalışabilir ancak bu durumda 5.5v’a ihtiyaç duyar tabi daha fazla akım harcar. 

Bu ilişkiden yola çıkarsak 2Mhz kristal ile de çalışabilir ki bu durumda daha az gerilim ve akım ile. Benim hedefim 1,5v tek pile düşemeyeceğimiz için 3v. Bu durumda 2Mhz ya da 4Mhz kristal ile hem çalışma akımı hem de uyku akımını çok düşürebiliriz. Böylece iki adet kalem pil ya da CR2032 gibi düğme ya da para pil denilen küçük piller ile devremizi çok küçültebiliriz. Artık pil ile çalıştığımız için herhangi bir regülatöre de ihtiyacımız kalmamıştır.

Pil Seçimi
Pil seçimi tamamen size kalmış. Burada karar vermeniz gereken ne kadar küçük bir cihaz istiyorum ve bu pil ile ne kadar uzun süre çalışmasını istiyorum. CR2032 200-250mA arasında bir güç harcar ki bu demek oluyor ki 20uA bir bekleme akımı ile yaklaşık 400 gün bekleyebilir, tabi pratikte sürekli beklemez. 15mA gibi bir çalışma akımı elde edebilirseniz sürekli 15 saat çalışabilir demektir. Yani güç tasarrufunuz yine de işlemcinizin hangi aralıklarla ne kadar süre çalışacağına kalmış. CR2032 sizin için yeterli değilse AA boy bir kalem pil 1000 hatta 2500mA e kadar çıkabilir. Ya da biraz daha küçük olanları yani AAA size olan kalem pillerin şarjlı olanları da 1000mA e kadar çıkabilmektedir. Burada iki adet 1000mA pil kullandığınız için 2000mA olduğu yanılgısına düşmeyin. İki adet 1,5V 1000mA piliniz varsa bu bir adet 3V 1000mA  piliniz var demektir.


Arduino'da Pek Bilinmeyen Bir Sabit (Constant) : LED_BUILTIN

İlginç Bir Sabit : LED_BUILTIN

Çoğu Arduino modeli bir direnç ile seri LED bağlanmış bir pine sahiptir. LED_BUILTIN sabiti LED bağlı bu pinin numarasını alan bir sabittir. Çoğu Arduino kartında bu pin 13'tür.
Bu sabit kullanılarak yapılmış bir "blink" örneği.
/*
* https://www.facebook.com/ArduinoHaber
*
* farklı bir blink:
* LED_BUILTIN örneği
*/


void setup() {
pinMode(LED_BUILTIN,OUTPUT);
}

void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}


ARDUIONO'DA PULL_UP ve PULL_DOWN DİRENCİ KULLANIMI



Arduino Haber - Pull_Up / Pull_Down


     Pull-up dirençler; elektronik devrelerde lojik sistemlere girişlerin (input), eğer dışarıdan bağlı cihazların bağlantısı kesildiyse, umulan lojik seviyelerde kalmalarını sağlamada kullanılır. Pull-up dirençler farklı tipteki lojik cihazlar arasındaki arayüzlerde de kullanılabilir.

     Bir pull-up direnç zayıf şekilde, 5 volta bağlı olduğu kablonun voltajını çeker. Öte yandan direnç, eğer başka bir şey güçlü bir şekilde kabloyu 0 volta çekiyorsa, kablonun 0 volta gitmesine izin verecek derecede zayıftır. Pull-up dirençlerin TTL devrelerde kullanılması tercih edilir.


Arduino Haber - Pull_Up / Pull_Down
     Benzer şekilde, pull-down dirençler başka bir eleman giriş (input) ile iş yapmıyorsa, girişi 0 (low) seviyesinde tutmada kullanılır. Pull-down dirençler pull-up dirençlerden daha az kullanılır. Pull-down dirençler güvenli bir şekilde CMOS lojik kapıları ile birlikte kullanılabilir, çünkü girişler voltaj ile kontrol edilir.

Arduino'da pinleri tanımladığımız bir fonksiyon var pinMode(), şimdi Pull_Up direnç bağlantısı ile bu fonksiyonun ilişkisine bakalım.

pinMode()

Açıklama

Dijital pinlerin giriş ya da çıkış olacağına karar veren fonksiyondur.
Arduino'da dijital pinlerin dahili pull_up dirençleri (20K) vardır. Bu direnci INPUT_PULLUP modu ile devre dışı bırakmak mümkün.

Yazım

pinMode(pin, mode)

Parametreler

pin: pin numarası
mode: INPUTOUTPUT ve INPUT_PULLUP

Örnek

void setup() {
pinMode(2, INPUT_PULLUP);
pinMode(13, OUTPUT);
}

void loop()
int sensorVal = digitalRead(2);

if (sensorVal == HIGH) {
digitalWrite(13, LOW);
}

else {
digitalWrite(13, HIGH);
}
}