Attiny85’i Arduino ile Programlama
Atmel’in piyasaya sürmüş olduğu Attiny24/45/85 serisinden olan Attiny85 Arduino ile uğraşmaya başlayan herkesin bir süre sonra karşılacağı entegrelerden bir tanesi. Düşük güç tüketimi, basit yapısı, kolay programlanabilirliği ile Attiny85 küçük projelerde vazgeçilmez olmaya başladı bile. Bugün sizlere Attiny85 entegremizi Arduino ile nasıl programlayabiliriz sorusunu cevaplayacağız.
Araç-Gereçler
1 x Atmel Attiny85
1 x Arduino Uno
Yeterince Kablo (Erkek-Erkek)
1 x Led
1 x 220 Ohm Direnç
2 x Breadboard
1 x 10 uF / 25V Elektrolit Kondansatör
Arduino IDE
İnternet ve biraz sabır 🙂
1. Arduino Uno’nun programlamaya hazır hale getirilmesi
Attiny85 entegremizi Arduino ile programlayacağımız için, önce onu bu programlamaya hazır hale getirmemiz gerekiyor. Bunun için Arduino Uno’ya hiçbir bağlantı yapmadan bilgisayara bağlıyoruz. Arduino IDE’yi açıp, Dosya -> Örnekler -> 11. ArduinoISP -> ArduinoISP örneğini açıyor ve yükle diyoruz. Artık Arduino Uno Attiny85 entegresini programlamaya hazır hale geldi.

Attiny85 Tercihler
2. Gerekli dosyaların indirilmesi
1. adımı gerçekleştirdikten sonra Arduino IDE’mize Attiny entegremizi tanıtmamız gerekiyor. Öncelikle Dosya->Tercihler ile ayarları açıyoruz. Ek Devre Kartları Yöneticisi URL’leri kutucuğuna şu adresi kopyalayıp yapıştırıyoruz: https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
Tamam deyip pencereyi kapatıyoruz.
Araçlar->Kart:xxxx->Kart Yönetici kısmını açıp, arama sekmesine attiny yazıyoruz ve bu kartı kur diyerek, Arduino’ya kuruyoruz.

Kart Yöneticisi

Attiny85 Kartı Ekle
3. Arduino Uno ve Attiny85’in bağlantılarının yapılması
Bağlantıları aşağıdaki resimde gördüğünüz gibi yapınız:

Attiny85 ISP Şeması
Arduino IDE -> Araçlar -> Kart -> Attiny25/45/85 ‘i seçiyoruz.
Araçlar -> İşlemci: -> Attiny85 ‘i seçiyoruz.
Araçlar -> Clock -> Internal 16 Mhz ‘yi seçiyoruz. İsterseniz Attiny85’i 1 MHz veya 8 MHz de de çalıştırabilirsiniz. Saat hızı düştükçe, güç tüketimi de azalır. Yine isterseniz dışarıdan kristal bağlayarak, Attiny85’i 20 MHz hızda da çalıştırabilirsiniz.
Araçlar -> Programlayıcı -> Arduino as ISP ‘yi seçiyoruz.
Arduino Uno’yu bilgisayara bağlıyor ve Araçlar -> Port -> (Unonun bağlı olduğu port numarası) seçimimizi yaptıktan sonra,
Araçlar -> Önyükleyiciyi Yazdır seçeneğine tıklayarak, Bootloader’ın Attiny85 entegresine atılmasını sağlıyoruz. Sonunda “Önyükleyicinin yazımı tamamlandı” demesi gerekiyor.
Önemli NOT: Attiny85 çipini ilk defa kullanacaksanız Bootloader yüklemesi yapmanız gerekiyor. Attiny85’in çok fazla bacağı olmadığı için, bootloader yükleme dışındaki diğer seçenekleri, Attiny85’e yazdığınız programların yüklemesini yapmadan önce yapmanız gerekiyor. Bu konuda satılan hazır kartlardan da alabilirsiniz. Attiny85 için bir programlama kartı hazırlamayı başka bir yazıya bırakıyorum.
5. Attiny85’e Blink kodlarının yüklenmesi
Az önce yapmış olduğumuz bağlantıları hiç bozmadan, Arduino IDE -> Dosya -> Örnekler -> 01.Basics -> Blink örneğini açıyoruz. Attiny85 entegresinin pinleri şu şekildedir:

Attiny85 Pin Şeması
Açtığımız örneği şu şekilde düzenliyoruz:
/* Blink Turns on an LED on for one second, then off for one second, repeatedly. Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to the correct LED pin independent of which board is used. If you want to know what pin the on-board LED is connected to on your Arduino model, check the Technical Specs of your board at https://www.arduino.cc/en/Main/Products This example code is in the public domain. modified 8 May 2014 by Scott Fitzgerald modified 2 Sep 2016 by Arturo Guadalupi modified 8 Sep 2016 by Colby Newman */ int ledPin = 1; // the setup function runs once when you press reset or power the board void setup() { // initialize digital pin LED_BUILTIN as an output. pinMode(ledPin, OUTPUT); } // the loop function runs over and over again forever void loop() { digitalWrite(ledPin, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(ledPin, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second }
ve kodlarımızı yüklüyoruz.
6. Attiny85 entegresinin başka bir breadboard üzerine alınıp çalıştırılması
Artık Attiny85 entegremizi yerinden çıkartıp, diğer breadboard üzerinde devremizi kurabiliriz. Yeni devre şemamız şu şekilde olacaktır:

Attiny85 Blink Şeması
Önemli NOT: Devreyi besleme geriliminizi Attiny85’in çalışma frekansına uygun seçmeyi unutmayın. Daha detaylı bilgi için Attiny85 data sheet’ini okuyabilirsiniz. Attiny 25/45/85 DataSheet
Son olarak bu da çalışır hali 🙂