Bu konu size AVR mikroişlemcisi olan Atmega8/168/328’lerle kendi arduino’nuzu nasıl tasarlayabileceğinizi ve hayata geçirebileceğinizi anlatacaktır. Öncelikle gerekli malzemelere bakalım:
Arduino Yapacak Kadar Gerekli Malzemeler
– 1 adet Breadboard
– Yeteri kadar Zil teli (RJ45 kablosuda olur)
– 2 adet LED
– 2 adet 220 Ohm direnç
– 1 adet 10K direnç – 2 adet 10μF kondansatör
– 16Mhz Kristal
– 2 adet 22pF kondansatör
– 1 adet normalde kapalı buton
USB Seri İletişim Kartı
Arduino’nuza kodlarınızı yüklemek için FTDI Basic Breakout kartına ihtiyacınız var. Piyasada birçok hazır FTDI bulunmakta. Ya da kendi FTDI’nızı yapabilirsiniz. Aşağıdaki şemayı inceleyebilir, gerekli parçaları temin ettikten sonra kendinize bir FTDI kartı yapabilirsiniz.
FTDI kartınız için gerekli malzemeler:
– 1 adet FT232RL entegresi
– 1 adet Dişi USB konnektör
– 1 adet 10μF kondansatör
– 2 adet 0.1μF kondansatör
– Seçici anahtar (3v veya 5v çıkış almayı ayarlamak için)
FTDI Devre Şeması:
SJ2 normalde jumperdır. Siz onun yerine bir VEYA anahtarı ile hangi voltajı istiyorsanız Arduino’ya onun gitmesini sağlayabilirsiniz.
Power pininin avantajı ek bir güç kaynağı olmadan Arduino’nuzu USB den gelen enerji ile çalıştırabilirsiniz. Burada dikkat etmeniz gereken büyük güçlerdeki projeleriniz için ek güç kaynağı kullanmanız. Bazen enerji yetmeyebilir.
Bread Board’a Güç Ekleme
Gerilim regüle devresini nereye kuracaksanız oraya GND ve Vcc kablolarını koyalım. (siyah-GND, kırmızı 7-16V)
Breadboard’unuzun mavi kısmı GND kırmızı olan tarafı +7-16V tur.İki tarafada bu gerilimi dağıtıyoruz.
Şekildeki şema ile uygulama arasında bazı farkları bulunmakta. Sağdaki devre şemasında önlem almak için diyot bağlanmış. İsterseniz siz de bağlayabilirsiniz. Çıkış 5V olmaktadır. 7805 Güç regülatörü kullanıldı.
Bizim uygulama devresinde 10 dışındaki kondansatörler eklenmemiştir. Sebebi girişten 7 ile 16V arası sabit DC gerilim geldiği için. Eğer sizin kullandığınız güç kaynağı şekildeki gibi 12V ile 24V arası ise Şekildeki ek kondansatörleri de devrenize uygulayınız.
Ve güç koruma devremiz tamamlanmış oldu.
Atmega8/168/328 Ekleme
Mikroişlemcinizi breadboard a eklemeden önce hangi Atmega’nızda hangi pinler var iyi öğrenin. Atmel firmasının sitesine girip datasheet ini inceleyebilirsiniz. Ben sadece Atmega328 in pin diyagramını paylaşıyorum sizle.
Reset girişine +5V ile arasına 10k ohm luk diren. Bağladık. RESET pini negatif gerilim gelirse Arduino’muz resetleme işlemi yapıyor. Bu nedenle +5V a bağlı şuan. İlerideki aşamalarda buraya bir buton ekleyeceğiz.
Yukarıdaki şemaya bakarak pinleri kontrol edin. Biz yine de buraya hatırlatalım.
Pin 7 – Vcc Pin 8 – GND
Pin 22- GND Pin 21 – AREF
Pin 20 – Avcc Pin 1 – RESET
Arduino’nuzu resetlemek için direnç ile Atmega arasına bir buton bağladık. Arduino’nun ilk uygulamasında LED yakıp söndürme uygulaması yapılır. Bunun için Arduino üzerindeki LED kullanılır ve onun 13. pin’e bağlı olduğu söylenir. Aslında bu sadece Arduino’nun 13. pin’idir. Atmega’nın 13. pin’i değil. Atmega’da bu led 19. pin’e bağlanmıştır. Uygulama yaparken şaşırmayın.
Atmega328’in 8 ile 9. pin’leri arasına 16Mhz lik kristalimizi bağladık. Her bir ayağına da 10μF kondansatör bağladık ve kondansatörlerin diğer bacağını GND ye bağladık. Atmega’nın 7. pin’i Vcc ye 8. pin’i GND ye bağladık.
Arduino’nun Son Hali
İşlemimiz bitti. Şimdi tek yapmanız gereken Arduino’ nuzu boot’lamak. Eğer alırken boot’lu ise direk kullanabilirsiniz. Ben sıfır atmega328 aldığınızı düşünerek yeniden boot’lama yollarını göstereceğim.
Atmega’yı Boot Etmenin Yolları
Şimdi sıra geldi FTDI kartınızı eklemeye. Yukarıda nasıl yapacağınızı anlatmıştık. Bizim uygulamada hazır FTDI bulunmaktadır.
Yukarıdaki FTDI hazır FTDI kartıydı
, Sparkfun firmasına ait. Pin çıkışları devrenin altında mevcut. Belki bunu alma için problem yaşayanlar olabilir o nedenle ben size sadece gerekli pin isimlerini vereceğim siz o isimlere göre Atmega328 inize bağlayabilirsiniz.
Sparkfun’ın bu ürününde Rx ve Tx pin’lerini Atmega’nızın Rx ve Tx pinlerine bağlamanız ve FTDI devresinin Vcc sini ve GND sini güç regüle devresinin çıkışına bağlıyorsunuz, eğer kendi devrenizi yukarıda anlattığımız şekle göre kurduysanız.
Bağlantılarınızı şu şekilde yapınız;
FTDI’ın GND pin’ini güç kaynağınızın GND’sine bağlayın POWER pin’ini güç kaynağının Vcc’sine bağlayın (güç regüle devresinin çıkışındaki 5V’luk çıkışın GND ve Vcc’si). CTS pin’ini Atmega nızın 7. Ve 8. pin’ine ve FTDI’ın GND pin’ine bağlayın. Yalnız burada Atmega kısa devre olmasın diye 7. ve 8. pin arasına 100μF’lık kondansatör bağlamanız gerekiyor. Tx ve Rx’ler yukarıdaki resimdeki gibi Atmega nın Tx ve Rx’ine bağlanıyor. Ve FTDI’ın DTR pininin ucuna 100μF’lık kondansatör ekleyerek Atmega nın 1. Pin’i olan RESET’e bağlıyoruz.
BoodLoad işlemini yapmadan önce 5. aşamayı çok dikkatli kontrol edin. Diyelim ki elinizde FTDI yok. Peki nasıl programlayacağız biz bu mereti? 🙂 Yedekte bir Arduino’nuz varsa eğer onunla da programlayabilirsiniz Atmega’nızı. Tek yapmanız gereken, aşağıdaki bağlantıları yapmanız.
ARDUINO—–>Atmega328p
SS(pin 10)-> RESET(pin 1)
MISO(pin 11)->MISO(pin 17)
MOSI(pin 12)->MOSI(pin 18)
SCK(pin 13)->SCK(pin 19)
Kısaca şunu diyebilirim, ISP ile programlıyoruz arkadaşlar. Bu pin ler Arduino Uno içindi. Eğer farklı bir Arduino kullanıyorsanız Arduino mega gibi, pinlerin güzelce kontrol edip Atmeganın belirtilen pinlerine bağlamanız yeterli.
Kod Yazma Kısmı:
Tools>Board bölümüne geliyorsunuz. Hangi Arduino yu tasarladıysanız onu seçiyorsunuz. Genellikle Diecimilia yı kullansanız iyi olur. Çünkü en çok tercih edilen o dur.
Daha sonra Burn Bootloader>AVRISP mkll yi seçiniz. İşlem birkaç dakika sürebiliyor. Size “Burning bootloader to I/O Board (this may take a minute)..” diyor. Bu işlem bazen bir kaç dakika sürebiliyor. Acele etmeyin. AVRtinyISP en hızlı olan. Fakat bunu kullanınca Atmeganızı yakma ihtimaliniz var. siz siz olun o kadar para verdiğiniz entegreyi 5 dk bekleme için yakmayın 🙂
İşlem bitince “Done burning bootloader” mesajını görebilirsiniz.
ARDUINO’NUZ HAYIRLI OLSUN… 🙂
KAYNAK: Bu makale http://www.cyber-warrior.org/Forum/cw-arduino-kendi-arduino-nuzu-yapin_493327,0.cwx adresinden alıntıdır
Merhabalar,
kendi arduinomu yapmak istiyorum ve yazınız beni bu konuda oldukça aydınlattı.
Aklıma takılan bir kaç soru var.
1-FTDI Basic USB to UART Converter ile bootloader yakma ve programlama işlemi gerçekleştirilebiliyor mu?
2-FTDI Basic Breakout – 3,3 bootloader yakma ve programlama işlemi gerçekleştirilebiliyor kullanmışsınız acaba 5V lukta işe yarar mı?
3-Bu iki ürün aynı mı yoksa bu işler için başka arabirim mi kullanmak gerekir.
Merhaba,
Maalesef bu sorduğunuz sorular hakkında pek bir fikrim yok, yanlış yönlendirmek istemem. Yazının sonunda da belirttiğim gibi alıntı bir yazıdır 🙂