Arduino 2
Arduino yazı dizisinin devamı |
KAKY (Kendi Arduino’nu Kendin Yap) (*1)
Merhaba,
Geçen ayki yazımda, hazırı varken en azından ilk Arduino'nuzu satın alın demiştim ama eli havya ve lehim tutan, demir üç klorürün, yanık pastanın kokusunu seven, tekerleği yeniden icat etmekten hoşlanan okurlar için de bir çözümümüz olmalıydı. Bu yazı ile meraklı Arduino-severleri bilgilendirmeye çalışacağım.
Örnek alınan baskılı devre ve şema tasarımı, Severino olarak da anılan Arduino S3V3’e aittir. (*2)
ARDUINO S3v3 özellikleri:
– Shield devreler ile uyumlu
– ADC gürültüsünü azaltmak için AVcc alçakgeçiren filtresi
– Otomatik reset özelliği (jumper ile seçilebilir)
– Arduino Diecimila ile uyumlu Reset bacağı
– 13 no’lu sayısal bacak üzerinde LED
– RS232 TX ve RX LED’leri
– Güç kaynağı LED’i
– Seri iletişimi iptal için jumper (0 ve 1 no’lu sayısal bacakların diğer sayısal bacaklar gibi kullanılması için)
– Tüm benzer komponentlerin dizilim yönleri aynıdır. Montajda kolaylık sağlar.
– Kısa devre ihtimalini azaltmak için pad’ler arasında bağlantı yolları yoktur.
– Kolay lehimleme ve dayanıklılık için pad’ler ve yollar kalın olacak şekilde tasarlanmıştır.
– Sadece üç jumper’lı devre kartı tasarımı
– TTL devresine seri bağlı elektrolitik kondansatör bipolar tip ile değiştirilerek seri kablo takılı olmadığında yaşanan evrilmiş voltaj problemi giderilmiştir.
– Jumper bacakları Shield kartlarla rahat kullanım için 90 derece tip ile tasarlanmıştır.
PCB:
EagleCAD dosyalarına erişmek için tıklayınız. (Arduino_S3v3_R2.brd ve Arduino_S3v3_R2.sch)
• Mavi toner transfer kağıdı ile plaket hazırlamak isteyenler: tıklayınız. (Arduino_S3v3_R2_A4_4x2.png)
Parça Yerleşim Planı:
Delik Planı:
Şematik Tasarım:
• EagleCAD kullanmayanlar için şematik: (ArduinoSeverinoSchematic.png)
Malzemelerin Temini:
TEK TARAFLI SERİ ARDUİNO KARTI İÇİN MALZEME LİSTESİ
Malzemelerinizi online olarak http://www.direnc.net adresinden satın alabilirsiniz. (tavsiye değil öneridir; ben çoğu parçayı oradan aldım)
Bunlara ek olarak:
1. Tek taraflı bakır plaka
2. Bilgisayarınızda seri port yoksa usb-seri çevirici (öneri: http://www.digitus.info/en/products/archiv/digitus-usb-to-serial-adaptor-usb-20/ )
3. Pcb’yi kendiniz imal edecekseniz mavi toner transfer kağıdı veya pozitif20 ve ilgili kimyasalları, demir üç klorür (granül yerine derişik solüsyanları tercih edebilirsiniz)
Mavi Toner transfer kağıdı ile pcb imalatı: Youtube video (http://www.youtube.com/watch?v=tT1scMpFHcM)
Pozitiv20 ile pcb imalatı: Youtube video (http://www.youtube.com/watch?v=p2kFazl-aEE)
Bağlantı Noktaları:
X1
DE-9 seri konnektör. Bilgisayara (veya başka arduino’lara ve çevre bileşenlerine) RS232 standartlarına uygun olarak bağlamak için kullanılır. Bağlantı için seri kabloya ve bilgisayarınızda seri porta ihtiyaç duyulur. Yukarıda belirtilen usb-seri çevirici ile de kullanılabilir. Seri bağlantıda en az 2,3,4 ve 5 no’lu pinlerin bağlı olması gerekir. Sadece JP0 2-3 pozisyonunda takılı olduğunda çalışır.
DC1
2.1 mm. Güç bağlantısı. Harici güç kaynağına bağlamak için kullanılır. Orta iletken pozitiftir. Voltaj regülatör +7 ile +20 V Dc ile çalışmakla beraber 9-12V aralığında kalmanız tavsiye edilir. Güç bağlantısı için 9V ve 5V pinler de kullanılabilir. (Bkz: Güç bağlantısı uçları)
ICSP
2×3 header bağlantısı. Atmega işlemcisine bootloader yüklemek için kullanılır. Devrenin her iki tarafındaki 1 sayısı kablonun 1 no’lu bacağını temsil eder. Bootloader olmayan Atmega çiplerine yükleme yapmak için Arduino IDE 0011 ve 0012 versiyonları gereklidir.
JP0
3 bacaklı jumper. 2-3 pozisyonunda iken X1 konnektörü üzerinden seri iletişimi etkinleştirir. Varsayılan konumu bu olmalıdır.
1-2 pozisyonunda iken seri iletişimi devre dışı bırakır ve pin0(RX) ve pin1(TX) bacaklarındaki harici pull-down dirençlerini etkinleştirir. Bunu sadece RX üzerinde programın başlamasını etkileyen bir gürültü olması durumunda kullanınız.
Bu jumper çıkarılırken seri iletişim kesilir, pin0 ve pin1 float eden normal dijital pinlere dönüşür. Daha fazla dijital pine ihtiyaç duyduğunuzda seri iletişimi iptal ettiğinizi akıldan çıkarmamak kaydı ile bu metoda başvurabilirsiniz. Bu tip kullaımda harici pull-up, pull-down direnci gerekir.
JP4
İki bacaklı jumper. 1-2 pozisyonunda iken otomatik reset özelliğini aktif yapar. Bu özellik sayesinde programı Arduino’ya yükledikten sonra S1 anahtarına basmaya gerek kalmadan otomatik olarak restlenmesini sağlar.
Bilgisayarda COM port ayarı 19200 bps yapılmazsa düzgün çalışmayacaktır. Jumper çıkarıldığı zaman otomatik reset özelliği iptal olur. Bu sayede seri iletişime ihtiyaç duyan programların gereksiz resetlenmemesini sağlar.
Otomatik reset COM port’un dört no’lu bacağında bulunan DTR sinyalini kullanır. Bazı durumlarda Arduino COM portuna bağlanırken veya bazı yazılımlar başlangıç ve kapanış yaparken gereksiz yere DTR sinyali alıp otomatik olarak resetlenebilir.
S1
Reset Butonu. Bu anahtar Arduino’yu resetleyerek yüklü programı yeniden başlatır veya otomatik reset aktif değilken Arduino’yu seri porttan yüklemeye hazır hale getirir.
LED’ler
Gösterge LED’leri.
POWER LED: Arduino DC1, +9V bacağı veya +5V bacağı üzerinden güç aldığı zaman yanar.
RX LED: Bilgisayardan veya başka bir cihazdan seri port üzerinden veri akışı olduğunda yanıp söner.
TX LED: Bilgisayara veya başka bir cihaza seri port üzerinden veri akışı olduğunda yanıp söner.
L LED: Dijital pin 13’e akım sınırlayıcı bir direnç ile bağlıdır. Pin 13’ün çalışmasını engellemez. Programları test etmek için faydalıdır. Bootloading sırasında yanıp sönmesi normaldir.
POWER bacakları
6 bacaklı header
RST bacağı
GND’a bağlandığında Atmega çipini resetler. Shield devreler veya harici reset tasarımlarınız için kullanılabilir.
NC bacağı
Devremizde bu bacak herhangi bir yere bağlı değildir. Arduino Diecimila ve üzeri kartlarda bu bacakta 3.3V mevcuttur.
+9v bacağı
Arduino DC1 konnektörü üzerinden adaptör veya batarya ile bağlandığında bu bacakta besleme voltajından 0.7V daha az bir gerilim mevcuttur. Bu bacaktan çekilebilecek toplam akım, harici güç kaynağının kapasitesine bağlıdır.
DC1’e herhangi bir güç kaynağı bağlı değilken regüle edilmiş bir beslemenin artı ucu bu bacağa; GND ucu da 0V bacağına bağlanarak güç verilebilir. Bu durumda +5V bacağı Vout bacağı olacak ve 5V sağlayacaktır.
+5v bacağı
Arduino DC1 üzerinden batarya veya adaptör ile beslendiğinde, +5V bacağı Vout bacağı olarak +5V sağlar.
Toplam çekilebilecek akım kullanılan 7805 regülatör entegresine bağlı olarak 1 Amper’dir. Dikkat: Bu akım sadece +5V bacağı için geçerlidir. Atmega giriş/çıkış bacaklarından çekilebilecek maksimum akım her bir bacak için 40mA’dir.
Arduino DC1 üzerinden beslenmiyorsa bu bacak ve 0V bacağı üzerinden regüle edilmiş +5V bağlanabilir. Bu durumda +9V bacağı aktif değildir.
0v bacağı (GND)
+5V ve +9V bacakları arasında iki; Aref bacağı yanında bir tane olmak üzere üç adet 0V bağlantı bacağı mevcuttur.
Arduino DC1 üzerinden beslendiğinde 0V bacağı, +5V ve +9V bacakları için 0V referansıdır. (GND)
DC1 bağlı değilken; yani +5V veya +9V bacakları üzerinden besleniyorsa, harici güç kaynağının GND kısmı ile irtibatlandırılmalıdır.
Sayısal Giriş/Çıkış bacakları
8 bacaklı header (x2)
8 adet sayısal giriş/çıkış bacağı: 0-7 (Atmega Port D)
0 ve 1 no’lu bacaklar seri iletişim için kullanılabilir.
3, 5 ve 6 no’lu bacaklar PWM için kullanılabilir (Sadece Atmega 168!)
6 adet sayısal giriş/çıkış bacağı: 8-13 (Atmega Port B)
10-13 arası bacaklar SPI (Serial Programming Interface: Seri Programlama Arabirimi) için kullanılır.
10 numaralı bacak: SS
11 numaralı bacak: MOSI
12 numaralı bacak: MISO
13 numaralı bacak: SCK
9, 10 ve 11 numaralı bacaklar PWM için kullanılabilir (Atmega8 ve Atmega168)
ANALOG IN (Analog Giriş) bacakları
6 bacaklı header
6 analog giriş: 0-5 (Atmega Port C)
4 numaralı bacak (SDA) ve 5 numaralı bacak (SCL) I2C arabirimi için kullanılabilir.
14-19 arası analog bacaklar, sayısal bacaklar gibi de kullanılabilir.
AREF bacağı
Aref, Avcc’ye ayarlanabilir (varsayılan; dahili 2,56V Atmega8, dahili 1,1V Atmega168, veya harici Aref)
Avcc veya dahili Aref olması durumunda, Aref bacağı daha iyi gürültü performansı için harici dekuplaj kondansatörü bağlanarak kullanılabilir.
Harici Aref durumunda, Aref bacağı haricireferans voltajı bağlamak için kullanılır.
Harici Aref kullanmadan önce wiring.c dosyasının değiştirilmesi ve programın tekrar yüklenmesi gerektiğini unutmayınız.
(1) Yazı tamamen Arduino CC ilkeleri doğrultusunda ve www.arduino.cc adresinden alınan belgelerin Türkçeleştirilmesi ile oluşturulmuştur.
(2) (Telif hakları için bkz: http://creativecommons.org/licenses/by-sa/2.5/ )
TB2CLX (Bahri Tiftikci – bahri@tiftikci.com)